개발/우아한 테크코스2025. 4. 28. 19:54Entity 와 VO, 논리적 식별자 고민

엔티티(Entity)와 값 객체(Value Object)란 무엇인가?Entity와 Value Object 개념은 에릭 에반스의 DDD 책에서 나왔다고 한다.이에 대해 소개한 마틴 파울러의 글이 있는데, 이 글에 따르면 엔티티와 값 객체의 정의는 다음과 같다.Entity: Objects that have a distinct identity that runs through time and different representations. You also hear these called "reference objects."Entity: 시간과 다양한 표현을 거치더라도 식별할 수 있는 고유성(identity) 을 가진 객체. "Reference Object"라고도 부른다.Value Object: Objects t..

개발/우아한 테크코스2025. 3. 24. 21:58Level 1 장기 미션 - TDD의 시작점?

TDD와 설계의 순서, 그리고 추상화에“기물은 움직일 수 있다”에서 출발한 고민이번 미션은 장기 구현. korean chess 장기를 페어 프로그래밍으로 구현해야 하는 미션이다. 맨 처음 우리에게 주어진 요구사항은 두 개였다.장기판의 장기말들을 초기화해라.장기판의 말들은 움직일 수 있다.페어와 나는 먼저 1번을 끝내고 그 뒤에 2번 요구사항을 시작할 때가장 작은 단위의 테스트로 “기물은 움직일 수 있다” 를 출발점으로 잡았다. 그렇게 우리의 TDD 여정은 시작됐다.당시 우리는 enum 기반으로 각 기물의 움직임을 구현했고, 이를 중심으로 Piece 코드를 작성해나갔다. 나는 사실 각 기물을 개별 클래스로 나누고 싶었지만, 당장 그렇게 해야 할 명확한 이유를 찾지 못해 설득력 있는 리팩토링 방향을 잡지 못..

image