패키지 구조란? (주변 사람들을 설득하기 위한 생각 정리)

devty·2023년 6월 8일
0

ETC

목록 보기
1/3

먼저 패키지 구조에 대해 공부를 해보았다.

패키지의 구조

  • 계층형 패키지 구조
  • 도메인 패키지 구조(Domain-Driven Design)

계층형 패키지 구조란?

  • 계층형으로 패키지를 설계하는 방식으로 모든 구조에 상관없이 각각 controller, service, repository, entity를 나누는 구조이다.
  • 예시로는 밑과 같습니다.

도메인 패키지 구조(Domain-Driven Design)란?

  • 도메인으로 패키지를 설계하는 방식으로는 말 그대로 Domain(Entity)별로 나누는 구조이다.
  • 위 계층형 구조에서 나눈 controller, service, repository를 entity 기준으로 묶어서 나눈다는 것이다.
  • 예시로는 밑과 같습니다.

개인적으로 생각한 Best 패키지 구조

  • 제가 생각한 좋은 패키지의 구조란 도메인 패키지인 것 같습니다.
  • 그 이유로는
    1. 계층형 같은 경우에는 controller, service, repository등을 묶게 되면 저희는 30개 이상의 클래스들이 XXXController, XXXService, XXXRepository 같은 패턴으로 나열되어 헷갈리게 되는 문제가 발생할 것 같습니다.
    2. User에 대한 도메인을 수정한다고 하면 계층형 구조에서는 Controller 폴더에서 UserController을 찾아 수정하고, Service 폴더에서 UserService를 찾아 수정하는 등등의 일을 해줘야 하는데 도메인 구조라면 UserController, UserService, UserRepository등이 모두 한 폴더안에 있기에 유지보수에 용이할 것 같습니다.

도메인 패키지 구조(Domain-Driven Design) 현업에서도 사용하는가?

  • 위 질문에 대해서는 제가 답변 드리기 어려워서 인프런 강의에 질문을 인용했습니다.
  • 답변은 백기선님이 해주셨습니다.

도메인 패키지 구조(Domain-Driven Design) 예시

profile
지나가는 개발자

0개의 댓글

관련 채용 정보