Framework/Spring
[Spring] 애플리케이션 계층 / 단일 책임 원칙
codingD
2020. 4. 21. 21:16
애플리케이션 계층
- 애플리케이션의 로직을 담고 있음
- 데이터 액세스 로직 : 데이터를 어떻게 가져오고 등록할 것인가
- 비즈니스 로직 : 순수하게 사용자 관리의 업무의 로직을 담고 있음
- 결합도가 낮아지면 데이터 액세스 로직이 바뀌거나 기술이 바뀌어도 비즈니스 로직에 영향을 주지 않는다는 뜻이며, 서로 독립적으로 확장될 수 있음
단일 책임 원칙
- 적절한 분리가 가져오는 특징
- 하나의 모듈은 한가지의 책임을 가져야 한다.
- 하나의 모듈이 바뀌는 이유는 1가지여야 한다.
- 장점
- 수정 대상이 명확해짐 : 기술이 바뀌면 기술 추상화 계층의 설정을 바뀌주고 데이터를 가져오는 테이블의 이름이 바뀌었다면 데이터 액세스 로직을 수정)
- 단일 책임 원칙을 잘 지키는 코드를 만들려면,
- 인터페이스를 도입하고 이를 DI로 연결해야 하며,
- 그 결과로 단일 책임 원칙뿐 아니라 개방 폐쇄 원칙도 잘 지키고
- 모듈간에 결합도가 낮아서 서로의 변경에 영향을 주지 않으며,
- 같은 이유로 변경이 단일 책임에 집중되는 응집도 높은 코드가 나옴