caffeine-library / Domain-Driven-Design

🌱 에릭 에반스의 '도메인 주도 설계'를 읽는 스터디
4 stars 0 forks source link

[question] 여러분 팀에서 DDD적인 요소는? #13

Closed JasonYoo1995 closed 1 year ago

JasonYoo1995 commented 1 year ago

질문

여러분 팀에서 진행 중인 프로젝트에서 사용하고 있는 DDD적인 요소에는 무엇이 있는지 공유해주시고 DDD적인 관점에서 바람직하지 않아 리팩토링이 필요한 지점이 있다면 함께 공유해서 개선 방향을 구상해봐도 좋을 것 같습니다.

leejaeseung commented 1 year ago

최근에 진행했던 프로젝트에서 DDD 적이지 못했던 부분을 공유드려 봅니다.

저희 팀에 DishTriggerFieldValueDishActionFieldValue 라는 엔티티가 존재했었습니다. 이전까지는 위 두 엔티티가 거의 동일하게 취급되어 FieldValueDTO 라는 객체를 프로젝트 전체에서 가져다 쓰고 있었죠.

그런데 최근 프로젝트에서 RecipeTriggerFieldValueRecipeActionFieldValue 가 새로 생기면서 문제가 발생했습니다. 총 4개의 FieldValue 들이 서로 다른 성격을 가지고 있어 각각의 로직을 분리해야 됐죠. 하지만 그러려면 FieldValueDTO 를 4 개로 쪼개야 했는데, 영향 범위가 프로젝트 전체가 되어 버리니.. FieldValueDTO 를 없앨 수 없는 상황이 발생했습니다.

결국 이를 해결하기 위해 불필요한 로직이 추가되고, 현재는 FieldValueDTO 를 없애는 작업을 백로그로 남겨둔 상태입니다.

처음엔 나름 쓸만한 도메인이었지만, 정책의 변화로 불필요한 도메인이 되어버린 케이스였습니다. FieldValueDTO 를 사용하는 측에서 각자의 관심사에 맞게 DTO 를 변환해 사용했다면 영향 범위가 줄어들지 않았을까 라는 생각이 드네요.