복합 인덱스
복합 인덱스 카테고리가 ‘전자기기’인 상품들 중 가격이 100,000원 이상인 상품을 조회해줘와 같은 다중 조건 쿼리의 성능을 최적화하기 위해 복합 인덱스를 사용한다. 복합 인덱스는 두 개 이상의 컬럼을 묶어서 하나의 인덱스로 만든다. 복합 인덱스를 만들 때 컬럼의 순서가 매우 중요하다. 어떤 컬럼 순서로 만드냐에 따라 쿼리의 성능이 많이 차이...
복합 인덱스 카테고리가 ‘전자기기’인 상품들 중 가격이 100,000원 이상인 상품을 조회해줘와 같은 다중 조건 쿼리의 성능을 최적화하기 위해 복합 인덱스를 사용한다. 복합 인덱스는 두 개 이상의 컬럼을 묶어서 하나의 인덱스로 만든다. 복합 인덱스를 만들 때 컬럼의 순서가 매우 중요하다. 어떤 컬럼 순서로 만드냐에 따라 쿼리의 성능이 많이 차이...
1. Spring Boot Actuator와 k8s readiness probe 연계 Spring Boot Actuator와 Kubernetes Readiness Probe는 자동으로 100% 연계되는 건 아니에요. 하지만 Actuator가 제공하는 헬스 체크 엔드포인트를 readinessProbe에서 활용하는 방식으로 자연스럽게 붙일 수 있습니...
1. 쿠버네티스에서 롤링 업데이트 중 구 버전 Pod가 종료될 때 처리 중인 요청이 어떻게 되는지? 1-1. Pod 종료 과정 Pod가 종료될 때 쿠버네티스는 Graceful Termination 절차를 따릅니다. 1) SIGTERM 신호 전송 2) kubelet이 Pod 내 컨테이너에 SIGTERM 신호를 보내 “종료 준비 시작”을 알림. ...
1. containerd와 docker의 차이점 containerd와 Docker는 둘 다 컨테이너 런타임 관련 기술이지만, 하는 역할과 범위가 달라요. 1-1. Docker 개발자 친화적인 올인원 플랫폼으로서 Docker는 단순한 컨테이너 런타임이 아니라: 이미지 빌드 (docker build) 이미지 배포 (docker push/p...
1. Helm 이란? Helm은 Kubernetes 환경에서 사용하는 패키지 매니저를 의미합니다. Helm은 Kubernetes 애플리케이션을 더 쉽고 일관되게 배포, 관리, 업그레이드할 수 있도록 도와줍니다. 1-1. 🔧 Helm이란? Helm은 Kubernetes용 패키지 매니저입니다. 쉽게 말해, Kubernetes 클러스터에 복잡한...
강의 : 실전! 스프링 데이터 JPA 5. 스프링 데이터 JPA 분석 5-1. 스프링 데이터 JPA 구현체 분석 org.springframework.data.jpa.repository.support.SimpleJpaRepository가 스프링 데이터 JPA의 구현체이다. @Repository @Transactional(readOnly = tru...
강의 : 실전! 스프링 데이터 JPA 4. 확장 기능 4-1. 사용자 정의 레포지토리 구현 스프링 데이터 JPA 레포지토리는 JpaRepository 인터페이스만 정의하고 구현체는 스프링이 자동 생성한다. JpaRepository 인터페이스를 직접 구현하려면 구현할 기능이 너무 많다. 주로 JPA 직접 사용(EntityManager), JDB...
강의 : 실전! 스프링 데이터 JPA 3. 쿼리 메소드 기능 3-1. 메소드 이름으로 쿼리 생성 스프링 데이터 JPA는 메소드 이름을 분석해서 JPQL을 생성하고 실행한다. @Repository public class MemberJpaRepository { @PersistenceContext private EntityManage...
강의 : 실전! 스프링 데이터 JPA 1. 순수 JPA 기반 Repository MemberJpaRepository와 TeamJpaRepository는 @PersistenceContext 애노테이션을 사용해 EntityManager를 명시적으로 주입받아 사용하는 JPA 기반 Repository 이다. @Repository public class ...
강의 : 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 4. 영속성 컨텍스트와 트랜잭션 4-1. 영속성 컨텍스트와 트랜잭션 유무에 따른 CRUD 동작 JPA에서 조회는 영속성 컨텍스트가 살아 있으면 트랜잭션이 없어도 조회가 가능하다. 그러나 삽입, 수정, 삭제는 영속성 컨텍스트와 트랜잭션이 살아있어야 한다. 영속성 컨텍스...