개발 방법론11 엔티티(Entity)와 값 객체(VO; Value Object)의 차이는 무엇일까요? 도메인 주도 설계(DDD)에서 Entity와 Value Object는 핵심적인 개념들입니다.이 두 개념은 객체지향 프로그래밍에서 매우 중요하지만, 종종 혼동되거나 잘못 사용되기도 합니다.이 글에서는 Entity와 VO의 근본적인 차이점과 각각의 개념을 언제, 어떻게 사용해야 하는지 알아보겠습니다.Entity(엔티티)란?엔티티는 고유한 식별자(ID)를 가지고 있으며, 그 속성이 변경되어도 동일한 객체로 인식되는 도메인 객체입니다.주요 특징식별성(Identity): 고유한 ID로 구별됩니다.가변성(Mutability): 시간이 지남에 따라 속성이 변할 수 있습니다.생명주기(Lifecycle): 생성, 변경, 삭제 등의 생명주기를 갖습니다.동등성 비교: 식별자를 기준으로 동등성을 판단합니다(두 엔티티는 모든 .. 2025. 4. 9. 아 글쎄 제 의도는 그게 아니었다니깐요?! - 하이럼의 법칙 - 개발자로서 API를 설계하거나 라이브러리를 만들 때, 우리는 사용자들이 우리가 문서화한 방식대로만 코드를 사용할 것이라고 기대합니다.하지만 현실은 그렇게 단순하지 않습니다.바로 이 지점에서 '하이럼의 법칙(Hyrum's Law)'이 등장합니다. 충분히 많은 수의 API 사용자가 있다면, 당신이 계약서에서 무엇을 약속했는지는 중요하지 않다.당신의 시스템에서 관찰 가능한 모든 동작은 누군가에 의해 의존 될 것이다.- 하이럼 라이트(Hyrum Wright)이 글에서는 하이럼의 법칙이 무엇인지, 왜 발생하는지, 그리고 개발자로서 이를 어떻게 다뤄야 하는지 알아보겠습니다.하이럼의 법칙이란?하이럼의 법칙은 간단히 말해 "사용자가 많아지면, 문서화된 동작뿐만 아니라 관찰 가능한 모든 동작에 대해 누군가는 의존하게 된.. 2025. 3. 31. 헥사고날 아키텍쳐(feat. 코틀린 멀티 모듈) 정말 오랜만에 째찌삐띠형님이 아닌 직접 쓴 글을 게시하게 되었습니다!오늘의 주제는 헥사고날 아키텍쳐 입니다.헥사고날 아키텍쳐란?출처 :엉클 밥 님의 Clean Coder Blog클린 아키텍쳐를 깔끔하게 구현할 수 있는 아키텍쳐 중 하나로, 도메인 비즈니스 로직과 외부세계를 격리하고 외부에 어떤 의존성도 갖지 않게 하기 위한 아키텍쳐 입니다.결국 커플링이 문제다!그렇다면 이같은 클린 아키텍쳐를 지향하는 이유는 무엇일까요?이는 결국 유지 보수를 쉽게 하기 위함입니다.먼저 헥사고날 아키텍쳐는 모듈간 결합도를 현저히 낮춰줍니다.모듈간 결합도를 떨어뜨리면 모듈 별로 단위 테스트를 하기 쉽고, 오류 발생시 오류 추적과 수정이 쉬워집니다.)출처 : Peer Richelsen Twitter최근 Next.JS의 업데이트.. 2023. 11. 20. 바운디드 컨텍스트(Bounded Context)와 애그리게이트(Aggregate)의 차이 바운디드 컨텍스트(Bounded Context)란? 바운디드 컨텍스트는 도메인 주도 설계(DDD, Domain-Driven Design)에서 중요한 개념입니다. 이는 특정 도메인 모델이 적용되는 경계를 정의합니다. 바운디드 컨텍스트는 도메인의 일부분으로서, 도메인 모델의 용어와 규칙이 유효한 특정 '문맥' 또는 '경계'를 의미합니다. 각 바운디드 컨텍스트는 독립적인 도메인 모델을 가지며, 이를 통해 복잡한 시스템을 여러 개의 관리 가능한 부분으로 나눕니다. 애그리게이트(Aggregate)란? 애그리게이트는 도메인 모델 내의 객체 그룹으로, 일반적으로 엔티티(Entity)와 값 객체(Value Object)의 집합입니다. 애그리게이트는 하나의 루트 엔티티(Aggregate Root)를 중심으로 구성되며, .. 2023. 11. 13. 이전 1 2 3 다음 more 728x90