분류 전체보기 96

Query DSL을 사용하기 위한 설정

build.gradle.kts에 다음 의존성을 추가plugins { kotlin("kapt") version "1.9.23"}val queryDslVersion = "5.0.0"dependencies { kapt("com.querydsl:querydsl-apt:$queryDslVersion:jakarta") implementation("com.querydsl:querydsl-jpa:$queryDslVersion:jakarta")} kapt Kotlin Annotation Processing Tool로 Annotation을 분석해서 QueryDSL에 알려주는 역할Entity 같은 어노테이션이 붙은 것을 분석해줌(Java로 된 QueryDSL 측에 알려줌) 의존성 추가 후 다음을 진행[Gra..

JPA 2024.07.03

TIL - Spring Boot Test 시 JPA metamodel must not be empty

Entity 클래스들에 공통으로 적용되는 BaseTimeEntity 클래스를 생성하면서 Application 클래스에 @EnableJpaAuditing 어노테이션을 적용했다.서버를 실행 후 PostMan으로 데이터 등록 요청 테스트를 하면 DB에 정상적으로 데이터가 삽입되는 것을 확인할 수 있었다.그런데 테스트 코드에서는 다음과 같은 메시지가 출력되면서 테스트를 할 수 없었다.Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting..

TIL - AWS Elastic Beanstalk 배포 후 413 Request Entity Too Large

위와 같은 문제가 발생하는 이유는 Elastic Beanstalk를 이용해 배포할 경우 프록시 서버로 사용되는 Nginx의 client_max_body_size 설정이 1MB로 되어 있기 때문이다. client_max_body_size: request의 Content_Length 헤더 값이 지정된 용량을 넘지 않도록 설정(악의적인 대용량 파일 업로드를 방지) client_max_body_size를 설정하는 방법은 2가지이다.EC2 Instance Connect로 접속해 직접 값을 설정배포 파일(.zip)에 포함EC2 Instance Connect로 접속해 설정하기인스턴스 선택 → [Connect] → EC2 Instance Connect → [Connect]vi /etc/nginx/nginx.conf 위..

Docker 명령어 1

Docker컨테이너 기술: 컨테이너를 생성하고 관리하기 위한 도구컨테이너의 생성 및 관리 프로세스를 단순화하는 도구라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함된 패키지이미지: 읽기/쓰기 액세스 권한이 있는 인스턴스를 실행하는 컨테이너의 “블루프린트”컨테이너이미지의 실행 인스턴스이미지를 기반으로 하는 실행 애플리케이션(격리된 소프트웨어 유닛)일단 실행되면 실행 중인 다른 컨테이너와는 독립적인 스탠드얼론여러 컨테이너가 동일한 이미지를 기반으로 할 수 있지만, 서로 완전히 격리되어 있음디폴트로 공유 데이터나 상태가 없음레이어이미지의 내부 내용(context)에서의 레이어이미지의 모든 명령은 캐시 가능한 레이어를 생성이미지 재구축 및 공유를 도움Docker를 사용..

Windows에서 Docker 설치

Docker를 사용하는 이유애플리케이션 개발 및 배포가 편해짐Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음CI/CD에서 지속적인 통합(Continuous Intergration) 과정의 테스트에서 Docker를 활용어떤 서버를 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음여러 애플리케이션의 독립성과 확장성이 높아짐Docker가 가상화에서 사실상 표준의 위치Docker 및 Docker Compose 설치(Windows)💡windows의 경우 WSL2 설치가 필요WSL2 설치를 위한 사전 준비[시작] → [제어판] → [프로그램 및 기능] → [Windows 기능 켜기/끄기] → [Hyper-V]와 [Linux용 ..

[AWS] Simple Storage Service (S3)

S3인터넷 스토리지 서비스개발자나 IT 운영자가 웹 규모 컴퓨팅 작업을 수행하는 데 필요한 데이터 저장 공간을 제공정적 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용S3 서비스의 사용 예웹 사이트 호스팅멀티미디어 파일 저장 및 스트리밍애플리케이션 데이터 저장백업 및 복원아카이브S3 서비스의 장점높은 내구성, 가용성 및 안정성손쉬운 사용 및 관리보안성높은 확장성Buckets데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너데이터를 저장하는 컨테이너 역할객체에 대한 공용 또는 개인적인 접근 권한을 설정하기 위한 위치객체에 대한 특별한 이벤트 알림을 설정하기 위한 위치AWS 계정에서 버킷 및 객체 사용에 대한 비용 추적 및 모니터링을 ..

AWS 2024.06.25

[AWS] Relational Database Service (RDS)

RDS로 이동  → Databases[Create database]Choose a database creation method: Standard createEngine options: MySQLEngine Version: MySQL 8.0.35Templates: Free tierSettings: DB instance identifier / Master username / Master password 설정Instance configuration: Burstable classes (includes t classes) - 제일 작은걸로Storage 설정General Purpose SSD (gp2) - 제일 낮은 사양Allocated storage: 20GiBStorage autoscaling(자동 확장) 여부..

AWS 2024.06.25

[AWS] Elastic Load Balancer (ELB)

많은 요청이 들어올 때 Load Balancer가 요청들을 다양한 EC2 서버들에게 분산해 나눠주며 Load Balancer의 특징HTTP 요청을 여러 타깃 그룹에 나눠줄 수 있음한 머신안이라도 여러 애플리케이션(컨테이너)에 나눠줄 수 있음HTTP/2와 웹소켓을 지원HTTPS로 리다이렉트 지원URL, hostname, query string, header에 기반해서 다른 타깃 그룹으로 보낼 수 있음Load Balancer를 사용하는 이유요청 분산(EC2와 연동)단일 액세스 포인트 공개(Route 53과 연동)인스턴스에 대한 헬스 체크HTTPS 제공(ACM과 연동)Amazon Certification Manager: HTTP → HTTPS로 바꾸는 기능고가용성 제공공개 트래픽과 내부 트래픽 분리ELB의 종..

AWS 2024.06.25