💻본 포스팅은 '스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 김영한'님의 강의를 듣고 작성되었습니다.
[디렉토리의 분리]
[Domain?]
Domain?
UI, 화면, 기술 인프라와 같은 영역을 제외한 시스템이 구현해야 하는 핵심 비지니스 업무 영역을 도메인이라고 한다.
- 위의 디렉토리 상황을 살펴보면 web과 domain을 크게 나누었다.
- 이 이유는 도메인은 웹이 바뀌어도 도메인은 최대한 유지하며 개발할 수 있어야 하기 때문이다.
- 다시 말해 도메인은 웹(부가적으로 구현해야 하는 부분)을 참조하지 못하고 웹은 도메인을 참조할 수 있다는 말이다.
- 도메인은 웹에 의존적이면 안 되지만 웹은 도메인에 의존적이어도 된다.
- 웹이 변경되어도 도메인은 변경되면 안 된다.
[의존관계의 단방향]
- 다시 말해서 향후 부가적인 기술들을 다른 기술로 바꾸어도 도메인은 그대로 유지할 수 있어야 한다.
- 이렇게 설계가 가능하도록 하려면 web은 domain을 알고 있어도 되지만 domain은 web을 모르도록 설계해주어야 한다.
- 이것을 web은 domain에 의존하지만 domain은 web을 의존하지 않는다고 표현하며 예를 들어 web 패키지를 모두 삭제해도 domain에는 전혀 영향이 없도록 의존관계를 설계해야 한다.
- 반대로 이야기 하면 domain은 web을 참조하면 안 된다.
- 의존관계의 단방향이 핵심인 셈이다.(웹은 도메인을 의존하지만 도메인은 웹을 의존하지 않는 것이 단방향임)
우리는 이제 이 부분을 명시한 채로 구현에 들어간다.
'Back-End > Spring' 카테고리의 다른 글
[Spring MVC2][로그인 처리] - 로그인 기능(로그인 서비스 로직) (0) | 2022.05.13 |
---|---|
[Spring MVC2][로그인 처리] - 회원가입 처리 (0) | 2022.05.13 |
[Spring MVC2][검증2(Validation)] - Bean Validation - HTTP 메시지 컨버터 (0) | 2022.05.05 |
[Spring MVC2][검증2(Validation)] - Form 전송 객체 분리 (0) | 2022.05.05 |
[Spring MVC2][검증2(Validation)] - Bean Validation - groups (0) | 2022.05.03 |