📝도메인형 패키지 (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)
제품 판매인 또는 판매업체로 판매한 제품에 대해 책임을 지는 곳을 가리킨다 → 물품을 공급한 곳
벤더는 제품을 제조한 곳일 수도 있고. 다른 회사 제품을 판매만 하는 곳일 수도 있다
예) 그 솔루션은 벤더사에서 지원을 중단했다
🔗 참고 및 출처
'[CS 지식]' 카테고리의 다른 글
[CS 지식] EJB, JBOSS, J2EE, Jakarta EE (자카르타 EE) (0) | 2023.05.15 |
---|---|
[CS 지식] 러닝커브, Entity(엔터티), 웹 어플리케이션 아키텍처, Stateless, UDF (0) | 2023.05.15 |
[CS 지식] CMS (Content Management System), 간트차트, 애자일 방법론, 가상쓰레드 (0) | 2023.05.15 |
[CS 지식] 세션 변조를 이용한 불법 로그인(JSESSIONID) (0) | 2023.04.22 |
[CS 지식] HDD, SSD, Jinja, SQLAlchemy, WebSocket(웹소켓), socket.io (0) | 2023.01.09 |