반응형

분류 전체보기 103

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..

개발노트 2024.07.03

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 위..

개발노트 2024.07.01

Docker 명령어 1

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

개발노트 2024.06.28

Windows에서 Docker 설치

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

개발노트 2024.06.27

[AWS] Simple Storage Service (S3)

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

개발노트 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의 종..

개발노트 2024.06.25

[JPA] QueryDSL에서 Sorting(정렬)하는 Util 메서드 만들기

QueryDSL에서는 Pageable의 sort를 그대로 사용할 수 없어서 OrderSpecifier를 사용해 구현했다.orderBy()의 파라미터 타입이 OrderSpecifier이기 때문이다. OrderSpecifier의 생성자는 다음과 같이 Order와 Expression 타입의 객체를 받는다.@Immutablepublic class OrderSpecifier implements Serializable { private static final long serialVersionUID = 3427652988262514678L; private final Order order; private final Expression target; private final NullHandling ..

개발노트 2024.06.24

Controller / Service / Repository의 역할

Controller역할사용자 인터페이스와 상호작용사용자의 요청을 처리하고 그에 맞는 응답을 반환주요 기능클라이언트로부터 HTTP 요청을 수신해당 요청에 대한 비즈니스 로직을 수행하기 위해 Service 계층에 작업 위임header의 정보 확인 및 Service에 필요한 데이터 전달Controller에서 하지 말아야 할 것비즈니스 로직을 Controller에 추가DB를 controller에서 조작Controller에서 Controller를 호출Service역할비즈니스 로직 처리해당 로직을 수행하기 위한 서비스 메서드 제공주요 기능하나의 비즈니스 기능이나 기능 집합 담당입력된 데이터의 유효성을 검토비즈니스 로직 수행 및 데이터를 가공Repository로부터 데이터를 가져와 비즈니스 로직 실행 또는 업데이트T..

개발노트 2024.06.24
반응형