반응형

📝도메인형 패키지 (DDD)

com
  └ lsj
      └  shopping_mall
 	  	  └ dashboard
		  |	  └  controller
		  |	  └  service
		  |	  └  dao
		  |	  └  dto
		  |	      └ request
		  |	      └ response
		  |	  └  util
		  |	  └  exception
		  |	  
		  |
		  └ global
		        └ config
		        └ user
		        └ exception
		        └ jwt
		        └ util (공통 API)

dao 구조

 

com
  └ lsj
      └  shopping_mall
 	  	  └ dashboard
		  |	  └  controller
		  |	  └  service
		  |	  └  repository
		  |	  └  entity
		  |	  └  dto
		  |	      └ request
		  |	      └ response
		  |	  └  util
		  |	  └  exception
		  |	  
		  |
		  └ global
		        └ config
		        └ user
		        └ exception
		        └ jwt
		        └ util (공통 API)

repository + jpa 구조

 

DDD(Domain-Driven Design)는 소프트웨어 개발 방법론으로 비즈니스 도메인에 초점을 맞추어 시스템을 설계하는 접근 방식

 

💗장점

높은 응집력과 낮은 결합도로 변경과 확장에 용이한 설계

 

⚠️단점

프로젝트에 대한 이해도가 낮을 경우 전체적인 구조를 파악하기 어려움 → 이게 더 이해가 쉽던데.. 잘 모르겠음

 

📝계층형 패키지

├── java
│   └── com
│       └── 11bun
│           └── shopping
│               ├── config
│               ├── controller
│               ├── dao
│               ├── exception
│               └── service
└── resources
    └── application.properties

각 계층을 대표하는 디렉터리를 기준으로 코드들이 구성이 되는데 아래 디렉토리 구조를 보면 더 이해가 쉽다 →  controller, service, dao 한 곳에 다 모여있는 구조

 

💗장점

프로젝트에 이해가 상대적으로 낮아도 전체적인 구조를 빠르게 파악 가능 → 개인적으로 DDD보다 파악이 어려워 보임

 

⚠️단점

계층형 같은 경우 Controller, Service 등에 너무 많은 클래스들이 밀집되어 파악하기 힘들다 

 

📝DAO(Data Access Object), Repository

DB의 데이터를 접근하기 위한 객체로 일반적으로 단일 쿼리문에 대한 내용만 담고 있습니다.

 

📝DTO (Data Transfer Object), VO(Value Object)

계층 간 데이터 교환을 하기 위해 사용하는 객체
로직을 가지지 않는 순수한 데이터 객체(getter & setter만 가진 클래스)이다

📝R&R (알앤알)

역할과 책임인 Role & Responsibility 약자로 담당자끼리 수행할 업무를 나누는 것을 의미한다.
예) 알앤알은 정하고 진행하는거야?

📝벤더 (vendor)

제품 판매인 또는 판매업체로 판매한 제품에 대해 책임을 지는 곳을 가리킨다 → 물품을 공급한 곳
벤더는 제품을 제조한 곳일 수도 있고. 다른 회사 제품을 판매만 하는 곳일 수도 있다
예) 그 솔루션은 벤더사에서 지원을 중단했다

 

 

🔗 참고 및 출처

https://cheese10yun.github.io/spring-guide-directory/#:~:text=%EA%B3%84%EC%B8%B5%ED%98%95,-1&text=%EA%B3%84%EC%B8%B5%ED%98%95%20%EA%B5%AC%EC%A1%B0%EB%8A%94%20%EA%B0%81,%EB%A7%8E%EC%9D%B4%20%EB%AA%A8%EC%9D%B4%EA%B2%8C%20%EB%90%98%EB%8A%94%20%EC%A0%90%EC%9E%85%EB%8B%88%EB%8B%A4.

반응형