Skip to content

domain의 결합도 #34

@freedrawing

Description

@freedrawing

안녕하세요. 너무 질문을 많이 드리는 건 아닌지 죄송하네요 ㅠㅠ
저도 이번 프로젝트를 @cheese10yun 님이 작성하신 방법으로 Domain 별로 패키징을 해서 코드를 작성하고 있는데요, 하지만 제가 하고 있는 프로젝트의 경우, db를 읽어오는 Repository 단에서 해당 도메인이 아닌 타 도메인에 의존을 할 수밖에 없어서 @cheese10yun 님이 작성하신 것처럼 깔끔한 도메인 구조를 가져가는 데 제약이 있습니다.

상황은 다음과 같습니다.

비즈니스 로직이 항상 그룹 단위로 이루어져 있어서, Group Entity에 의존할 수밖에 없습니다. 예를 들어, Owner 정보를 가져오는 데도 현재 currentGroup에 속한 owner를 가져와야 하고, activity 정보를 가져온다고 해도, 현재 currentGroup에 속한 activity만 가져와야 해서. DB에서 데이터를 가져올 때, 반드시 Group entity와 join을 해서 가져와야 합니다. Group 자체적으로 진행되는 API는 없어서 Group만 도메인을 만들기도 참 애매합니다. 그래서 제가 생각한 방법은 아래 두 가지입니다.

  1. Group 도메인을 만들어서 각 도메인의 서비스 단에서 GroupRepository를 이용해 Group 정보를 가져온 다음 각 도메인 서비스 단에서 필요한 정보를 가공하는 방법. 하지만 이렇게 하면 DB 단에서 join하면 되는 걸, Service 단에서 자바 코드를 필터링을 해야하니, 많이 비효율적일 거 같습니다.
  2. Group entity는 그냥 각 도메인 Repository 단에서 join하는 데만 사용하고 별도의 Group 도메인은 두지 않는다.

두 방법 모두 어느 정도의 결합도가 있는 거 같지만, 제 생각에는 2번 방법이 조금 나은 거 같은데 @cheese10yun 님 생각은 어떠신지 궁금합니다.

감사합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions