[Spring] 프로젝트 디렉터리 패키지 구조

FE.1·2024년 3월 6일
0
post-thumbnail
  1. 계층형 디렉터리 구조

       com
       	ㄴ example
           ㄴ cheolcheol
              ㄴ config
              ㄴ controller
              ㄴ domain
              ㄴ repository
              ㄴ service
              ㄴ security
              ㄴ exception
  • Controller, Service, Repository 등 계층들을 기반으로 디렉터리 구조를 패키징하는 방식
  • 장점: 전체적인 구조를 빠르게 파악 가능
  • 단점: 각각의 패키지 디렉터리에 클래스들이 많이 모이게 된다는 점

  1. 도메인형 디렉터리 구조
    com
     ㄴ example
        ㄴ cheolcheol
            ㄴ domain
                ㄴ user
                      ㄴ api (REST API 해당, REST API가 아닌 경우 web) 
                      ㄴ application (혹은 service)
                      ㄴ dao (dao, repository 구성) 
                      ㄴ domain
                      ㄴ dto
                      ㄴ exception
                ㄴ video
                ㄴ …
            ㄴ global
                ㄴ auth (인증, 인가)
                ㄴ common (공통 클래스, value 클래스 예를 들면, BaseEntity)
                ㄴ config
                ㄴ error (공통 exception, error)
                ㄴ infra (외부 모듈, api 등)
                ㄴ util (공통 util)
    
  • 계층에 주목하기보다, 도메인 별로 패키지 분리가 가능하여 관리에 있어 계층형 방식보다 직관적
  • 각각의 도메인들은 서로를 의존하는 코드가 없도록 설계하기 적합해서 코드의 재활용성 향상
profile
공부하자!

0개의 댓글