본문 바로가기

도메인주도개발3

엔티티(Entity)와 값 객체(VO; Value Object)의 차이는 무엇일까요? 도메인 주도 설계(DDD)에서 Entity와 Value Object는 핵심적인 개념들입니다.이 두 개념은 객체지향 프로그래밍에서 매우 중요하지만, 종종 혼동되거나 잘못 사용되기도 합니다.이 글에서는 Entity와 VO의 근본적인 차이점과 각각의 개념을 언제, 어떻게 사용해야 하는지 알아보겠습니다.Entity(엔티티)란?엔티티는 고유한 식별자(ID)를 가지고 있으며, 그 속성이 변경되어도 동일한 객체로 인식되는 도메인 객체입니다.주요 특징식별성(Identity): 고유한 ID로 구별됩니다.가변성(Mutability): 시간이 지남에 따라 속성이 변할 수 있습니다.생명주기(Lifecycle): 생성, 변경, 삭제 등의 생명주기를 갖습니다.동등성 비교: 식별자를 기준으로 동등성을 판단합니다(두 엔티티는 모든 .. 2025. 4. 9.
[신입 개발자의 첫 번째 아키텍쳐 설계 도전기 - Fin] 신규 아키텍쳐의 기대효과와 개선점 지금까지 레거시 아키텍쳐의 문제점을 분석하고, 이를 개선하기 위한 헥사고날 아키텍쳐의 도입과 설계에 대해 다루었습니다.이번 마지막 글에서는 실제로 새 아키텍쳐가 어떤 효과를 가져왔는지를 구체적인 예시와 함께 살펴보겠습니다.1. 풍부한 도메인 모델을 통한 비즈니스 로직의 응집도 향상레거시 코드// TransactionCoreService 클래스(서비스 레이어)에서 일일이 총액을 계산fun tranSaleHeaderGenerate( transactionInformation: PaymentEndRequestDTO, paymentData: PaymentsReqResData): TranSaleHeader { val cardAmt = BigDecimal(credit.sumOf { it.request.. 2025. 1. 5.
[신입 개발자의 세 번째 라이브러리]실제 프로젝트 적용과 회고 : persistence-code-generator 개발기(fin) 들어가며이번 글은 어느덧 persistence-code-generator 개발기의 마지막 편입니다.지금까지 라이브러리의 설계와 구현을 살펴보았는데요.이번 편에서는 실제 프로젝트 적용을 통해 달성한 정량적인 생산성 향상과 그 과정에서 느낀 것들을 공유하고자 합니다.생산성 향상 효과보일러 플레이트 코드 감소(feat. 정량적 분석)persistence-code-generator의 가장 큰 성과는 영속성 계층의 보일러플레이트 코드를 94% 감소시킨 것입니다.실제 수치로 살펴보겠습니다:도메인 엔티티 1개당 (칼럼 다섯개의 가벼운 엔티티 예시):어노테이션 포함 개발자가 작성하는 코드: 20줄 (전체의 6.25%)자동 생성되는 코드: 300줄 (전체의 93.75%)전체 필요한 코드: 320줄예시를 통해 살펴보겠습니.. 2024. 12. 14.
728x90