Domain 객체에 Repository 관련 코드가 있으면 안 된다.


Domain 객체에 Repository 관련 코드가 있으면 안 된다.

코드 리뷰를 하다보면 Domain 객체에 Repository의 코드가 들어있는 걸 종종 발견한다. 그래서 왜 Domain 객체에 Repository 관련 코드가 있으면 안 되는 지 설명하고 넘어가려 한다. 아래의 코드는 Nest.js에서 TypeORM을 활용한 코드 중 Post의 Entity에 대한 코드이다. post.entity.ts 위 코드를 보면 도메인(Domain) 객체인 Post가 CustomerRepository에 의존하고 있다. 즉, Post 객체 코드 내부에 CustomerRepository라는 코드가 존재한다. 도메인(Domain)에서 레포지토리(Repository)를 다루는 것은 좋지 않은 코드라고 얘기한다. 왜 그럴까? 이 얘기에 대한 대답을 그나마 간단하게 설명하기 위해서, 로버트 C.마틴의 ‘클린 아키텍처’의 내용을 기반으로 설명하겠다. 그렇다고 ‘클린 아키텍처’의 내용을 너무 깊이 설명하게 되면, 한 편의 글로 끝나지 않게 된다. 따라서 왜 도메인(Domai...


#DDD #Domain #Repository #객체지향 #백엔드개발

원문링크 : Domain 객체에 Repository 관련 코드가 있으면 안 된다.