본문 바로가기
TIL

controller 간단하게 만들기 (22.11.08 TIL)

by winteringg 2022. 11. 8.

오늘 아샬님의 금요 지식회 같은 특강에서 나온 부분 중 일부 정리!

Controller 간단하게 만들기

일반적으로 컨트롤러는 presentation layer 에 속한다고 한다. UI 가 변경될 때 같이 변경되어야만 하는 대상은 대체로 presentation layer 이다.

서비스 레이어는 도메인 모델을 묶어서 이 애플리케이션에서 사용 가능한 핵심 작업을 설정한다. 핵심작업은 아래와 같다.

  • 이 애플리케이션이 수행해야 하는 작업은 무엇인가?
  • 이 애플리케이션에 내릴 수 있는 명령은 무엇인가?

보통 도메인 모델의 비즈니스 로직 하나를 호출하는 것만으로는 복잡한 작업을 처리할 수 없다. 도메인 모델을 불러와 요청을 가공하고, 응답을 조정해서 (dto 로의 변환을 요청한다든지 등) 또 다른 비즈니스 로직을 호출한다. 이렇게 여러 비즈니스 로직을 의미있게 묶어 컨트롤러에게 반환하는 것이 서비스 레이어의 역할이다.

하나의 액션에서는 하나의 서비스만 호출한다. 서비스 레이어에서는 여러 레포지토리를 써도 되지만, 비즈니스 로직은 복잡하게 들어가면 안 되고, DTO 조립 등만 복잡할 수 있다. 즉, 핵심 로직은 비즈니스 레이어 (도메인 모델) 에 두고, 서비스 레이어는 얇게 유지한다.

댓글