엔티티(2)
-
도메인 주도 설계 - 도메인 영역의 구성요소
스프링을 사용하는 백엔드 개발자들에게 컨트롤러와 서비스란 아주 자연스러운 웹 어플리케이션 아키텍처의 구성요소일 것 입니다. 컨트롤러와 서비스, 레포지터리를 구현하면 자연스럽게 웹 어플리케이션이 개발이 됩니다. 이처럼 도메인 주도 설계에서도 도메인 영역을 구성하는 대표적인 유형들의 객체가 있습니다. 기존 객체 모델링은 자유도가 높아 문제 영역을 파고들수록 여러 층의 복잡한 계층 구조를 만들게 될 가능성이 높습니다. DDD에서는 도메인 모델링 구성 요소의 역할에 따른 유형을 정의하고 이러한 규칙에 따라 도메인을 모델링하면 단순하게 설계가 가능합니다. 엔티티(Entity) 엔티티는 다른 엔티티와 구별할 수 있는 식별자를 가진 도메인의 실체 개념을 표현하는 객체입니다. 식별자는 고유하되 엔티티의 속성 및 상태는..
2022.01.06 -
영속성 컨텍스트와 엔티티
영속성 컨텍스트 엔티티를 영구 저장하는 환경 논리적인 개념이라 눈에 보이지 않는다. 엔티티 매니저를 통해 접근 가능하다. 1차 캐시와 쓰기 지연 SQL 저장소가 있다. 역할 1차 캐시 -> 키, 벨류로 엔티티의 키와 엔티티를 저장해두고 한 트랜젝션 안에서만 캐시로 사용. 동일성(identity) 보장 -> 한 트랜젝션 안에서 영속 상태인 엔티티에 대해서는 동일한 엔티티를 보장해준다. 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) -> JDBC batch와 같은 기능으로 flush()가 호출되기 전에는 쓰기 지연 SQL 저장소에 SQL이 저장되어 있다가 flush()가 호출되면 저장된 SQL이 DB로 전송된다. 이 기능은 옵션으로 버퍼 사이즈를 설정할 수 있다. 변경 감..
2021.01.17