강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

1q2w3e4r님의 프로필 이미지
1q2w3e4r

작성한 질문수

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

섹션 7 퀴즈

빈약한 도메인 모델을 보완하기

작성

·

6

0

안녕하세요.

 

빈약한 도메인 모델에 관하여 질문이 있습니다.

현재 개인적으로 진행하는 프로젝트에서 데이터 홀더 역할정도만 하는 빈약한 도메인 모델이 있습니다.

repository에는 테이블의 상태 컬럼을 업데이트하는 메소드가 존재하는데 이를 도메인 모델 내부에 메소드를 만들어 업데이트하고 repository의 save를 통해 엔티티의 상태를 update하는 것이 강의에서 의도한 내용으로 이해했는데 맞을까요?

추가로 이런 경우(비즈니스 로직이 복잡하지 않은)에 꼭 도메인 모델이 없어도 될지 궁금합니다.

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 1q2w3e4r님!

빈약한 도메인 모델(Poor Domain Model)에 대해 질문해 주셨습니다. 도메인 모델은 데이터와 행동이 함께 있어야 그 자체만으로 의미 있는 도메인 객체가 됩니다. 빈약한 도메인 모델은 주로 데이터만 갖고 있는 경우가 많아서 도메인 로직을 외부로 노출시키게 됩니다.

  1. 도메인 모델 내의 상태 업데이트 메소드:
    강의에서 의도한 내용은 도메인 내의 데이터를 변경하는 행위(상태 업데이트 등)는 도메인 모델 안에 존재하는 메소드를 통해 이뤄져야 한다는 것입니다. 이렇게 하면 비즈니스 로직이 응집되며, 모델 자체가 도메인 규칙을 준수하게 됩니다. repository 객체는 도메인 객체를 영속화하는 역할에 충실하게 됩니다. 따라서, 프로젝트에서 상태 컬럼을 업데이트하는 메소드를 도메인 모델 내부에 두는 것이 올바른 방향입니다.

  2. 복잡하지 않은 비즈니스 로직의 경우 도메인 모델의 필요성:
    비즈니스 로직이 복잡하지 않다면, 꼭 도메인 모델을 만드는 것이 필수는 아닙니다. 하지만 도메인의 복잡성이 커지거나 비즈니스 규칙이 늘어날 가능성이 있다면, 사전에 도메인 모델을 준비해두는 것이 유지보수성과 확장성을 높이는 데 유리할 수 있습니다.

관련해서 유사한 논의가 있는 게시물들은 다음과 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

1q2w3e4r님의 프로필 이미지
1q2w3e4r

작성한 질문수

질문하기