분류 전체보기
-
[JAVA] JAVA 10 주요 변경점JAVA 2024. 9. 15. 22:06
Java 10의 주요 변경사항 총정리Java 10은 2018년 3월에 출시된 단기 지원 버전으로, 여러 가지 새로운 기능과 개선사항을 도입했습니다. 이번 포스트에서는 Java 10의 주요 변경사항들을 자세히 살펴보겠습니다.1. 지역 변수 타입 추론 (var 키워드)Java 10의 가장 큰 변화는 'var' 키워드의 도입입니다. 이를 통해 지역 변수의 타입을 명시적으로 선언하지 않아도 컴파일러가 자동으로 추론할 수 있게 되었습니다.주요 특징:지역 변수에만 사용 가능합니다.초기화가 필요합니다.가독성을 높이고 불필요한 타입 선언을 줄여줍니다.예시 코드:var list = new ArrayList(); // ArrayList 타입으로 추론var number = 42; // int 타입으로 추론var text..
-
[JAVA] JAVA 9 주요 변경점JAVA 2024. 9. 14. 21:00
Java 9의 주요 변경사항 총정리Java 9은 2017년 9월에 출시된 메이저 업데이트로, 많은 새로운 기능과 개선사항을 도입했습니다. 이번 포스트에서는 Java 9의 주요 변경사항들을 자세히 살펴보겠습니다.1. 모듈 시스템(Java Platform Module System) 도입Java 9의 가장 큰 변화는 모듈 시스템의 도입입니다. 이를 통해 Java 플랫폼을 모듈화하고 애플리케이션을 모듈 단위로 개발할 수 있게 되었습니다. 주요 특징: 모듈은 관련 패키지와 리소스를 그룹화하고 의존성을 명시적으로 선언합니다. module-info.java 파일을 통해 모듈을 정의합니다. 캡슐화를 강화하여 내부 API의 사용을 제한할 수 있습니다. 의존성 관리가 개선되어 대규모 애플리케이션 개발이 용이해집니다. 예시..
-
[KOTLIN] InvalidDefinitionException: Cannot construct instance of `XXX` (no CreaKOTLIN 2024. 8. 21. 23:34
코프링(Koltin + Spring)에서 Jackson의 ObjectMapper를 커스텀하게 만들어 사용할 경우 InvalidDefinitionException이 발생할 수 있다.[Cannot construct instance of `XXX` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)] 코틀린의 경우 클래스에 기본 값을 설정하지 않으면, 기본 생성자를 생성하지 않아 발생하는 예외이다. 그렇다고 일일히 클래스에서 기본 값을 설정하는 것은 좋은 방법이 아니다. 이를 해결하기 위해서는 스프링 부트 웹에서 빈으로 등록되는 Objec..
-
[AWS 자동 배포 시스템] 10. Jenkins private subnet EC2(Ubuntu) 배포(Inoticoming)AWS 2022. 3. 14. 13:03
Inoticoming(특정 폴더에 파일을 감지하여 Event를 실행)를 사용하여 Jenkins 서버 -> Public 서버 -> Private 서버에 배포 해보려고 한다. Ubuntu에서만 설치 가능하다. 먼저 Public 서버와 Private 서버에 inoticoming을 설치하자. sudo apt install -y inoticoming 다음으로 Public 서버에 app.jar 라는 파일이 변경됬을 때 실행되는 shell script를 생성하자. app.jar를 Private 서버로 복사한다. #!/bin/sh scp -i ~/.ssh/private-server.pem ~/watch/app.jar ubuntu@10.0.3.31:/home/ubuntu/project/app/app.jar inotico..
-
[GRPC] GRPC Server(JAVA)와 Client(JAVA, NodeJS) 구축카테고리 없음 2022. 2. 25. 16:35
이번 포스팅에서는 GRPC Server 및 Client(Stub)를 구축하려고 한다. 예제 코드를 확인하면 진행해보자. https://github.com/alsdud154/grpc.git GitHub - alsdud154/grpc Contribute to alsdud154/grpc development by creating an account on GitHub. github.com 먼저 GRPC Server(JAVA)를 만들자. build.gradle이다. 작성 시점에서 grpcVresion 1.44.1이 maven repository 최신 버전이다. Quick Start Example Project를 참고하여 만들었으니 설명은 공식 사이트를 참고하자. plugins { id 'application' i..
-
[AWS 자동 배포 시스템] 9. ECS Jenkins 구축AWS 2022. 2. 23. 01:19
이제 마지막으로 ECS Jenkins를 구축하려고 한다. Jenkins Pipeline을 생성한다. Script는 아래 코드를 참고하면 된다. 환경 변수 코드만 본인 설정에 맞게 변경해주면 된다. pipeline { agent any environment { AWS_ACCOUNT_ID="844482743949" AWS_DEFAULT_REGION="ap-northeast-2" IMAGE_REPO_NAME="velnova" IMAGE_TAG="latest" REPOSITORY_URI="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${IMAGE_REPO_NAME}:${IMAGE_TAG}" PROJECT_NAME = 'velnova-server'..
-
[AWS 자동 배포 시스템] 8. ECS 구축AWS 2022. 2. 23. 00:02
이번 포스팅에서는 ECS 구축을 하려고 한다. 먼저 ECS 클러스트에 대한 보안 그룹을 생성하자. 그리고 ecs 작업 정의 시 awsLog를 cloudWatch에 연동시킴으로 ecsInstanceRole 역할에 CloudWathFullAccess 권한을 주자. 다음으로 ECS 클러스터를 생성하자. 필자는 EC2 Linux + 네트워킹 방식을 사용한다. 컨테이너 인스턴스 IAM 역할은 기본 ecs 역할을 사용 후 생성한다. 이제 작업 정의를 설정하자. EC2로 생성한다. 컨테이너를 추가하자. 이미지는 ECR의 latest의 URI를 입력한다. 호스트 포트는 도커 컨테이너의 동적 포트 매핑을 위해 0을 입력 후 컨테이너 포트는 app.jar의 포트를 입력하자. 메모리 제한은 소프트 제한으로 480으로 설정하..
-
[AWS 자동 배포 시스템] 7. ECR 구축AWS 2022. 2. 22. 18:15
이번에는 ECR를 구축하려고 한다. ECR에 도커이미지를 올려 다음 포스팅에서 ECS를 구축 할 것이다. 먼저 ECR를 생성하자. ECR은 ECS를 검색 후 선택해야한다. 이제 ECR Push 테스트를 하자. 추후 포스팅에서 ECS Jenkins 설정하기 위해 Jenkins 서버에서 작업하겠다. Jenkins가 설치된 서버에서 jenkins 계정에 로그인 한다. velnova/build/libs 폴더를 먼저 생성하자. 아직 Jenkins 연동전이니 수동으로 Jenkins 서버에 업로드 후 사용하면 된다. app.jar는 첨부 파일을 열어 db 정보를 변경 후 gradle build 후 사용하자. 또 Dockerfile은 첨부된 파일에서 사용하면 된다. velnova/Dockerfile velnova/bu..