프로젝트 패키지 구조에 대해

SW고구마·2021년 11월 6일
0
post-custom-banner

패키지 구조에 대한 의문

패키지 구조가 다른 경우들

프로젝트를 진행할 때마다 패키지를 나눠 프로젝트를 구조화하는데 많은 예시들에서 Model , Controller , Service 와 같이 기능적인 측면에서 패키지를 구조화하는 경우를 많이 보았다.

또 다른 경우는 도메인적인 측면에서 패키지를 구조화하는 경우를 볼 수 있었다. 예를 들어 게시판을 만든다고 생각해볼 때,

Board : 게시글

  • Model
  • Controller
  • Service

User : 사용자

  • Model
  • Controller
  • Service

이와 같이 Board와 User 라는 도메인에 맞춰 기능을 포함하도록 구조화되어 있었다.

그렇다면 어떤 방식이 더 나은 방식인 것인가?

이와 관련해서 서칭하던 중 인프런에 비슷한 질문이 있어 참고해 결론을 낼 수 있었다
https://www.inflearn.com/questions/7214

결론

  • 회사마다 팀마다 패키지 정책이 다를 수 있다는 것

  • 마이크로 서비스 도입의 영향으로 도메인으로 설계하는 경우가 많아짐

    • 여러 조각으로 나누는 마이크로서비스의 경우를 생각해 미리 도메인 별로 패키징 하는 것이 좋음
  • 스프링 공식 예제 프로젝트 petclinic 또한 도메인 패키지 구조이다

  • 계층형 아키텍처를 고려하다보니 Model , Controller, Service 구조로 설계하게 되었다.

즉, 필요에 따라 그에 맞는 방식으로 패키지를 설계하면 될 것 같다는 결론이다. 패키지 구조 설계에 대해 답은 정해져 있지 않다는 결론

비슷한 고민을 하는 사람들에게 도움이 됐으면 한다

profile
하루하루 조금씩이라도
post-custom-banner

0개의 댓글