본문 바로가기
관리자

Project

(22)
poppin 보호되어 있는 글입니다.
ECR로 Docker Image 옮기기 기존 Dockerhub에서 AWS ECR(Elastic Container Registry)로 Image registry를 옮겼다. Dockerhub에 Image가 노출되는 것은 보안상 좋지 못하기 때문이다. 다만 다른 AZ나 리전으로 데이터 전송 시 비용이 들 수도 있다. ref.) https://sangchul.kr/entry/aws-Amazon-ECR%ED%94%84%EB%9D%BC%EC%9D%B4%EB%B9%97-%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC 1. ECR에서 리포지토리 생성 프라이빗 리포지토리 생성에서 리포지토리 생성 버튼을 누르고 이름만 지정하면 된다. 생성 후 URI 정보를 확인할 수 있다. 이후 다른 곳에서 리포지토리를 이용할 수 있도록 정책..
Kotlin No Args Plugin 및 not nullable on Entity ref.) https://blog.junu.dev/37 lombok에서 Entity들을 참조하기 위해서 인자가 없는 생성자가 필요해서 보통 @NoArgsConstructor를 Entity 클래스에 추가한다. 그런데 코틀린의 경우 위 참조 글에서 처럼 plugin을 추가하면 굳이 @NoArgsConstructor 어노테이션을 추가할 필요가 없다. plugins { id("org.jetbrains.kotlin.plugin.jpa") version "1.8.0" } class명에 빨간 밑줄이 그이긴 하는데, 무시하고 build해도 잘 된다.
스프링부트 Swagger 3.0, JPAAuditing, ZonedDateTime 1. Swagger 3.0 spring 3.0 이상부터는 swagger 3.0이 아닌 springdoc-openapi-ui 라이브러리 import ref.)https://resilient-923.tistory.com/414 공식문서 https://springdoc.org/#getting-started 프로퍼티 공식문서 5번 항목에 있음. application.yml 같은 설정 파일에 추가하라고 나와있다. localhost:8080/swagger로도 접속가능하도록 path 지정. 특정 패키지들은 제외되도록 packagesToExclude 속성에 패키지 경로들을 ',' 구분자로 추가해주었다. https로만 접속을 허용했다면, CORS 에러가 난다. ref.) https://kbwplace.tistory.co..
SpringBoot Kotlin 프로젝트 Docker, AWS로 서버 구성하기-2. RDS, Route 53, 로드밸런서 등 1. RDS 생성 및 설정 RDS를 생성하는 방법은 간단하다. 여러 글들을 참고하여 MYSQL 스택으로 그냥 생성하면 된다. EC2와 보안그룹 연결, 퍼블릭 액세스 허용 중요한 부분은 보안 그룹상 이미 생성되어 있는 EC2와 연결 설정을 해줘야한다는 것과 퍼블릭 액세스를 허용해줘야한다는 것이다. EC2와 보안 그룹상 연결이 안되어 있으면 EC2에서 RDS에 접근할 수 없다. RDS의 퍼블릭 액세스가 불가능하면 EC2 외부(내 로컬 PC)에서 DataGrip, workbench 등 Database 관리 툴을 이용해서 접근이 불가능하다. 퍼블릭 액세스로 열어두는 것이 보안상 우려가 될수도 있으나, ID, PW, URL 등 환경 변수 값을 잘 관리하면 별로 문제는 없어보인다(약간 애매한 문제다. 누군가 악의적..
SpringBoot Kotlin 프로젝트 Docker, AWS로 서버 구성하기-1. docker image, ec2, 환경변수 .env 등 1. 환경 변수 처리 springboot-kotlin 에서 dotenv를 사용해서 환경변수를 처리하는 방법은 아래 링크 글에 적었었음 https://whitepro.tistory.com/891 이제 .env를 제외하고 코드는 github에 올라가있는 상태 2. Docker Image Build Dockerfile 코드 FROM amazoncorretto:17 VOLUME /tmp COPY build/libs/*.jar /app.jar COPY ./.env /.env EXPOSE 8080 ENTRYPOINT ["java", "-Dspring.profiles.active=prod","-jar", "/app.jar"] 이 코드는 build/libs/*.jar라는(*는 모든 파일) 이름의 파일을 이미지로부터 생..
kotlin build file name 변경하기, mainClass 설정 bootJar task 실행 시에 archivesName에 설정해주면 된다. application { mainClass.set("{프로젝트 이름}.src.main.{main 파일 실행 경로}.MainKt") } tasks.named("bootJar") { archivesName.set("app.jar") // app.jar로 build 파일이 만들어지도록 변경 }
SpringBoot-Kotlin 프로젝트에 dotenv 적용하기 1. 파일설정 application.yml # default = local spring: profiles: default: local datasource: url: ${LOCAL_DB_URL} username: ${LOCAL_DB_USERNAME} password: ${LOCAL_DB_PASSWORD} jpa: database: MYSQL show-sql: true properties: hibernate.format_sql: true hibernate.use_sql_comments: true hibernate.highlight_sql: true hibernate: ddl-auto: validate security: oauth2: client: registration: google: client-id: $..