초급의 끄적거림

[Spring] 애플리케이션 계층 / 단일 책임 원칙 본문

Framework/Spring

[Spring] 애플리케이션 계층 / 단일 책임 원칙

codingD 2020. 4. 21. 21:16

 

애플리케이션 계층

  • 애플리케이션의 로직을 담고 있음
  • 데이터 액세스 로직 : 데이터를 어떻게 가져오고 등록할 것인가
  • 비즈니스 로직 : 순수하게 사용자 관리의 업무의 로직을 담고 있음
  • 결합도가 낮아지면 데이터 액세스 로직이 바뀌거나 기술이 바뀌어도 비즈니스 로직에 영향을 주지 않는다는 뜻이며, 서로 독립적으로 확장될 수 있음

 

단일 책임 원칙

  • 적절한 분리가 가져오는 특징
  • 하나의 모듈은 한가지의 책임을 가져야 한다.
  • 하나의 모듈이 바뀌는 이유는 1가지여야 한다.
  • 장점
    • 수정 대상이 명확해짐 : 기술이 바뀌면 기술 추상화 계층의 설정을 바뀌주고 데이터를 가져오는 테이블의 이름이 바뀌었다면 데이터 액세스 로직을 수정)
  • 단일 책임 원칙을 잘 지키는 코드를 만들려면,
    • 인터페이스를 도입하고 이를 DI로 연결해야 하며,
    • 그 결과로 단일 책임 원칙뿐 아니라 개방 폐쇄 원칙도 잘 지키고
    • 모듈간에 결합도가 낮아서 서로의 변경에 영향을 주지 않으며,
    • 같은 이유로 변경이 단일 책임에 집중되는 응집도 높은 코드가 나옴
Comments