DevChw
인생을 모험하는 개발자
DevChw
전체 방문자
오늘
어제
  • 전체보기 (33)
    • 모험가의 Spring (24)
      • Spring (21)
      • Spring 이론 (1)
      • Spring Project (0)
      • Spring Exception (2)
    • 모험가의 Node-js (0)
    • 모험가의 끄적노트 (9)
      • 진행했던 프로젝트 (2)
      • Study (6)
    • 모험가는 계발중 (0)
    • 모험가의 공상일기 (0)
    • 모험가는 여행중 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 앱
  • 바다거북수프
  • 앱개발
  • 바다거북스프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DevChw

인생을 모험하는 개발자

Spring 개발할때의 패키지 구조 🙂
모험가의 Spring/Spring 이론

Spring 개발할때의 패키지 구조 🙂

2022. 9. 5. 21:51

! 패키지 구조를 구성할때 가장 대표되는 2가지 !

Layer vs Domain 🤔

 

/* Layer 구조

Layer : controller, Service, dto 같은 아키텍트적인 계층형 기반으로 구성된 패키지 구조

장점

-> 프로젝트에 이해가 낮아도 전체적인 구조를 빠르게 파악가능

-> 작성하고자 하는 계층이 명확할 경우 빠르게 개발이 가능

 

단점

-> 각 레이어별로 수십개의 클래스들이 존재하여 코드 파악이 어려움

-> Layer를 기준으로 분리했기 때문에 코드의 응집력이 떨어짐

*/

 

/* Domain 구조

Domain : 도메인들이 최상단 루트로 구성된 패키지 구조

장점

-> 관련된 코드들이 응집해 있음

-> 디렉토리 구조를 통해 도메인을 이해할 수 있음

 

단점

-> 도메인 지식 없이 이해하기 어려움 

-> 각 계층을 구분하기 위한 논의가 필요

*/

 

 🥸 Domain 구조를 자세히 살펴보면...

domain 구조 / member

-> member와 관련되어 사용되는 객체들로 구성

api : Controller 클래스로 구성

domain : 도메인 Entity에 대한 클래스로 구성, Enum 같은 클래스 또한 포함시킨다.

dto : Request, Response 객체로 구성

exception : 해당 도메인이 발생시키는 Exception 으로 구성

domain 구조 / global

-> global은 프로젝트 전방위적으로 사용되는 객체들로 구성

common : 공통으로 사용되는 Value 객체들로 구성 ex) 공통된 Request, Response

config : 스프링 각종 설정들로 구성

error : 예외 핸들링을 담당하는 클래스

util : 유틸성 클래스들이 위치

 

 

근데 사실 아직 나는 Domain 구조로 개발을 진행해본적은 없다. 처음에 Layer 구조를 이용해서 개발하다보니 편해져서 같은 구조를 계속 지녔던 것 같은데 Domain 구조를 공부하다보니 진행했거나 하고있는 프로젝트에서 Domain 구조로 전환하게되면 어떻게 바뀔지 생각하고 그려보면서 좀 더 다르게 접근 할 수 있을 것 같아서 다음 프로젝트를 진행하게 되면 Domain 구조로 개발을 한번 해보고 싶다 🥹

    DevChw
    DevChw
    자기계발도 하면서 여행도 다니면서 취미도 즐기면서 모험도 하면서 살고싶은 개발자가 되고싶은 초보개발자

    티스토리툴바