본문 바로가기

전체 글79

[JPA] 영속성 컨텍스트 오늘은 JPA의 영속성 컨텍스트에 대해서 알아보려고 합니다.   JPA 의 영속성 컨텍스트 내부 구조와 동작 방식  persist(엔티티) 를 실행하면 해당 엔티티 객체가 영속성 컨텍스트에서 관리되기 시작1차 캐시라는 곳에 key 는 @Id(테이블의 기본키가 매핑된) 의 값, value는 해당 객체바로 쿼리가 db 로 날아가는 것이 아니라, 해당 db 쿼리가 자동으로 만들어져서 쓰기 지연 저장소에 저장트랜잭션 커밋이 실행되면 flush 라는 것이 실행되는데 이것은 쓰기 지연 저장소에 있는 쿼리를 DB 로 날려 변경 내용을 데이터베이스에 동기화하는 것그리고 데이터베이스 커밋을 수행- 4, 5 는 @Transactionl 이 붙은 메서드를 실행하면 자동적으로 실행 엔티티의 생명주기위 영속성 컨테스트를 관리하.. 2025. 2. 24.
@Transactional 에 대하여 오늘은 @transactional 애너테이션에 대해서 알아보려고 합니다.   이 애너테이션을 알아보기 전에 일단 영속성 컨텍스트의 내부 구조 및 동작 흐름에 대해서 알아봅시다.4, 5번이 이 애너테이션을 사용하는 이유입니다.  persist(엔티티) 를 실행하면 해당 엔티티 객체가 영속성 컨텍스트에서 관리되기 시작1차 캐시라는 곳에 key 는 @ID 의 값, value는 해당 객체바로 쿼리가 db 로 날아가는 것이 아니라, 해당 db 쿼리가 자동으로 만들어져서 쓰기 지연 저장소에 저장트랜잭션 커밋이 실행되면 flush 라는 것이 실행되는데 이것은 쓰기 지연 저장소에 있는 쿼리를 DB 로 날려 변경 내용을 데이터베이스에 동기화하는 것그리고 데이터베이스 커밋을 수행- 4, 5 는 @Transactionl 이.. 2025. 2. 24.
PinPoint https://pinpoint-apm.gitbook.io/pinpoint/want-a-quick-tour/overview Overview | PinpointServerMap - Understand the topology of any distributed systems by visualizing how their components are interconnected. Clicking on a node reveals details about the component, such as its current status, and transaction count.pinpoint-apm.gitbook.io Pinpoint: 국내 기업이 만든 오픈소스 APM (Application Performance Monitori.. 2025. 2. 21.
CQRS CQRS (Command Query Responsibility Segregation)1. 개요CQRS는 **Command (쓰기)**와 Query (읽기) 작업을 분리하는 디자인 패턴입니다.Command (쓰기): CREATE, UPDATE, DELETEQuery (읽기): SELECT이를 통해 데이터 처리 효율성을 높이고, 부하를 분산할 수 있습니다.2. CQRS vs DataSourceRoutingDataSource Routing주로 Master-Slave 데이터베이스 구조에서 사용됨트랜잭션이 필요한 경우, Master에서 처리SELECT 요청은 Slave에서 처리하여 부하를 분산CQRS쓰기와 읽기 로직을 코드 레벨에서 분리Master-Slave 구조가 아니라, 별도의 Read Storage를 운영데.. 2025. 2. 19.