본문 바로가기
728x90
반응형

전체 글128

batch insert하기 Spring Data JPA saveAll() vs 네이티브 쿼리 두 방식의 가장 큰 차이는 영속성 컨텍스트 사용 유무(메모리)와 동작 방식.  Spring Data JPA에서 saveAll(Iterable)은 내부적으로 하나하나 save()를 호출하는 구조.for문 돌면서 persist(insert) 또는 merge(update)를 반복.  ??? : saveAll 안쓰고 네이티브 쿼리 써도 @Transactional 을 쓰기 때문에 jdbc 버퍼에 저장되니까 메모리 쓰는건 똑같지않아?  List list = createMillionEntities(); // 100만 개 생성myRepository.saveAll(list); saveAll()은 단순히 SQL만 실행하는 게 아니라 다음을 함1. 엔티티 객체 생성2. 모두 영속성 컨텍스트에 등록3. 변경 여부 추적(더티 .. 2025. 4. 4.
JPA 영속성 컨텍스트, Dirty Checking, 쓰기 지연, Spring Data JPA, Hibernate, JDBC JPA의 영속성 컨텍스트(Persistence Context) - JPA가 관리하는 엔티티 객체들이 저장되는 메모리 공간(캐시)  - JPA에서 엔티티를 persist(), find(), merge() 등을 하면 영속성 컨텍스트가 이를 관리 - 즉시 DB에 반영되지 않고 영속성 컨텍스트에 저장되었다가 트랜잭션이 commit()될 때 변경 사항을 한 번에 DB에 반영 (flush() 발생) : 쓰기 지연 (Write-Behind)  - @Entity 가 붙은 클래스만 관리함!! - @Query 나 네이티브쿼리로 가져온 임의의 결과는 관리하지 않음  엔티티 생명주기 (4가지 상태)상태설명코드 예제비영속 (New) JPA가 관리하지 않는 상태Member member = new Member();영속 (Manag.. 2025. 4. 3.
aws Public ALB 생성하기 (https) https 를 받는 서비스이므로 ALB 를 선택하겠습니다.Application Load Balancer (ALB) - L7 (애플리케이션 계층) 로드 밸런서     - HTTP, HTTPS 트래픽을 처리하며, URL 기반 라우팅 가능 - WebSocket 및 HTTP/2 지원 - SSL/TLS 종료 가능     - ALB에서 HTTPS를 처리하고 백엔드(ECS/EC2 등)로 HTTP를 전달 가능 Network Load Balancer (NLB) - L4 (전송 계층) 로드 밸런서     - TCP, UDP, TLS 트래픽을 처리 - 고성능 및 저지연 처리 가능     - ALB보다 처리 속도가 빠름 - 정적 IP 제공     - NLB는 하나의 고정된 퍼블릭 IP를 가짐 (ALB는 동적으로 변경됨) - .. 2025. 3. 19.
aws blue green 배포를 위한 ALB target group 만들기 타겟 그룹 (Target Group) 은 Load Balancer 가 트래픽을 분배할 대상(EC2 인스턴스, ECS 컨테이너, Lambda 함수, 온프레미스 서버 등)을 정의하는 그룹입니다. 하나의 로드 밸런서는 여러 개의 타겟 그룹을 가질 수 있습니다. 타겟 그룹에는 헬스 체크(Health Check) 기능이 있어서, 정상적인 타겟에만 트래픽을 보냅니다.   ec2의 load balancing 에 있는 target groups 를 클릭합니다.  Specify group details저는 IP addresses 를 선택할 것입니다. 'ec2에 배포할거니까 Instances 로 해야하는거 아닌가요?' 라고 할 수 있습니다. 하지만 저는 ECS(Elastic Container Service) 를 쓸 것입니다.. 2025. 3. 17.
aws ACM으로 SSL/TLS 인증서 발급하기(feat. 가비아) cloudfront, elb를 사용할 때 https를 쓰려면 인증서가 필요합니다. aws가 아닌 인증서 발급 업체에서 발급받아도 되지만 지금은 aws의 ACM에서 발급받겠습니다. 인증서는 클라이언트와 서버 간에 안전하게 데이터를 암호화하고, 서버의 신뢰성을 보장하는 데 사용됩니다.  ※ 주의!!!CloudFront 를 쓸 계획이 있는 경우에는 버지니아 북부 US East (N. Virginia) us-east-1 리전에서 인증서를 만들어야 합니다! 발급 전에 리전 바꾸기 필수!!ACM 인증서는 특정 리전에 종속되어 발급되기때문에 서울 리전에서 발급된 인증서는 오리건 리전이나 버지니아 리전에서 사용할 수 없습니다. 그래서 여러 리전에서 서비스를 운영하는 경우, 각 리전마다 인증서를 발급받아야 합니다. AC.. 2025. 3. 13.
728x90
반응형