
ERD & 도메인 설계
프로젝트 구조

도메인 : article(기사), class(수업), item(종목), organ(기관/선생님), team(학생/참여 팀)
DDD | Domain Driven Design
도메인 주도 설계의 목표는 어플리케이션 또는 그 안의 모듈간의 의존성은 최소화하고, 응집성은 최대화하는 것
→ 모주 프로젝트에서는 각 도메인이 독립적으로 역할을 수행할 수 있고 도메인 간의 의존성을 없애고 도메인 내부의 응집성을 최대화 함
→ 각 도메인이 독립적인 존재이기 때문에 기능 개발 및 유지보수 측면에서 유리함
도메인 계층 구조

각 도메인 내부에는 계층형 구조로 설계 됨
Presentation → Application → Domain
Common : 계층 간에 공유하는 정보들(ex. DTO)
Presentation → Application → Domain
- Presentation 계층 : HTTP 요청을 받아 유효성을 검증하고, 적절한 응답을 반환하는 인터페이스 계층입니다. 주로 컨트롤러가 이 역할을 담당하며 사용자의 요청을 받아 Application 계층으로 전달
- Application 계층 : 비즈니스 로직을 처리하고 실제 작업을 수행하는 계층입니다. Presentation 계층의 요청을 해석하여 Domain 계층의 기능들을 조합하고 트랜잭션을 관리
- Domain 계층 : 비즈니스의 핵심 규칙과 로직이 구현되는 계층으로, 실제 데이터 처리와 비즈니스 규칙을 검증하며 데이터베이스와의 상호작용을 담당
< 핵심 >
- 각 계층에서도 내부적으로 사용하는 로직이 존재하기에 외부로 노출시킬 각 계층들의 기능들만 인터페이스로 추상화 시켜 인터페이스를 통해 통신할 수 있도록 함