Kotlin + SpringBoot개발 시 Jpa, Querydsl을 사용하는 경우 Gradle로 멀티 모듈 프로젝트를 설정하는 방법을 정리해 보았습니다. 모든코드는 Github 에 올려두었습니다.
버전 Spring Boot 2.6.4 Gradle 7.4 Java 17 Postgres 13 프로젝트 구성 Api프로젝트는 Domain프로젝트를 사용합니다. Api프로젝트에는 Service, Controller가 있고, Domain프로젝트에는 엔티티와 Repository가 들어있습니다. C:. │ .gitignore │ build.gradle.kts │ docker-compose.yml │ gradle.properties │ gradlew │ gradlew.bat │ README.md │ settings.gradle.kts │ ├───api ## Service, Controller │ │ build.gradle.kts │ │ │ └───src │ ├───main │ │ ├───java │ │ ├───kotlin │ │ │ └───com │ │ │ └───study │ │ │ └───jpashop │ │ │ └───api │ │ │ │ │ └───resources │ │ application....
redshift-data cli를 이용해서 sql을 실행할 때 인증방식으로 AWS Secrets Manager를 사용하려고 합니다. Secrets Manager콘솔에서 새 시크릿을 만들고 Redshift의 패스워드를 자동으로 교체하는 설정까지 해보았습니다.
구성 Redshift클러스터는 배스천 서버를 이용해서 외부에서도 접속할 수 있도록 했고, 패스워드를 자동교체하는 람다는 NAT게이트웨이가 아닌 VPC엔드포인트를 통하도록 설정했습니다.
시크릿 생성과 자동교체 설정 새 시크릿을 생성합니다. Redshift 클러스터의 유저명과 패스워드를 입력하고 클러스터를 선택 해 줍니다. KMS키는 디폴트 키를 선택했습니다. 자동교체를 활성화 하고 교체 간격을 선택 해 줍니다. 새 람다함수를 생성합니다....
이전 글에서 CloudFront와 Lambda@Edge를 이용해서 이미지 리사이징하기 를 정리해 보았는데요. AWS SAM을 이용해서 CloudFormation으로 Lambda함수를 배포하는 방법을 정리해 보았습니다.
배포순서 SAM CLI설치 Install SAM CLI 저는 SAM CLI, version 1.23.0을 이용했습니다
template.yaml작성 CloudFormation기반의 템플릿(template.yaml)을 작성합니다.
. ├── index.js ├── node_modules/ ├── template.yaml ├── package-lock.json └── package.json SAM deploy을 이용하여 코드 패키징과 배포 SAM deploy \ --template-file template.yaml \ # Lambda@edge인 경우는 us-east-1리전에 만든 Bucket이 필요합니다. --s3-bucket <zip파일을 업로드 할 Bucket name> \ --s3-prefix SAM \ --stack-name <cloudformation 스택명> \ --capabilities CAPABILITY_NAMED_IAM \ --region <cloudformation을 배포 할 리전> \ --profile <profile name> SAM은 배포 시...
리사이징 된 이미지를 S3에 저장하지 않고 원본만 이용해서 리사이징 하는 방법은 없을까 고민하던차에 Lambda@Edge를 이용해서 이미지 리사이징 하는 방법을 적용해 보았습니다.
Lambda@Edge 동작 원리 Lambda@Edge는 CloudFront에 접근할 때 실행되는 Lambda의 확장판입니다. CloudFront 이벤트가 발생할 때 Lambda 함수를 실행할 수 있습니다. 이벤트는 4가지가 있습니다.
Viewer Request : CloudFront가 뷰어로부터 요청을 받고 요청한 개체가 edge cache에 있는지 확인하기 전에 함수를 실행합니다. Origin Request : CloudFront가 오리진으로 요청을 전달할 때만 실행됩니다. 요청한 개체가 edge cache에 있으면 함수가 실행되지 않습니다....
공식사이트 를 보면서 react.js에 Sentry를 적용해 보았습니다.
버전 react 17.0.1 Sentry @sentry/react 6.2.5 @sentry/tracing 6.2.5 Sentry에 프로젝트 추가 및 설정 Sentry에 로그인 후 프로젝트를 생성합니다.
Client Keys (DSN)메뉴에 있는 DSN키를 복사해둡니다. sentry 패키지 인스톨
npm install --save @sentry/react @sentry/tracing index.js에 Sentry를 초기화해주는 코드를 추가합니다.
import React from "react"; import ReactDOM from "react-dom"; import * as Sentry from "@sentry/react"; import { Integrations } from "@sentry/tracing"; import App from "./App"; import "....