오늘 아샬님의 금요 지식회 같은 특강에서 나온 부분 중 일부 정리!
Controller 간단하게 만들기
일반적으로 컨트롤러는 presentation layer 에 속한다고 한다. UI 가 변경될 때 같이 변경되어야만 하는 대상은 대체로 presentation layer 이다.
서비스 레이어는 도메인 모델을 묶어서 이 애플리케이션에서 사용 가능한 핵심 작업을 설정한다. 핵심작업은 아래와 같다.
- 이 애플리케이션이 수행해야 하는 작업은 무엇인가?
- 이 애플리케이션에 내릴 수 있는 명령은 무엇인가?
보통 도메인 모델의 비즈니스 로직 하나를 호출하는 것만으로는 복잡한 작업을 처리할 수 없다. 도메인 모델을 불러와 요청을 가공하고, 응답을 조정해서 (dto 로의 변환을 요청한다든지 등) 또 다른 비즈니스 로직을 호출한다. 이렇게 여러 비즈니스 로직을 의미있게 묶어 컨트롤러에게 반환하는 것이 서비스 레이어의 역할이다.
하나의 액션에서는 하나의 서비스만 호출한다. 서비스 레이어에서는 여러 레포지토리를 써도 되지만, 비즈니스 로직은 복잡하게 들어가면 안 되고, DTO 조립 등만 복잡할 수 있다. 즉, 핵심 로직은 비즈니스 레이어 (도메인 모델) 에 두고, 서비스 레이어는 얇게 유지한다.
'TIL' 카테고리의 다른 글
React - Rerendering 조건 (22.11.10 TIL) (0) | 2022.11.10 |
---|---|
React - require vs import (22.11.09 TIL) (0) | 2022.11.09 |
Java - 내부 클래스(중첩 클래스), 익명 클래스 (22.11.07 TIL) (0) | 2022.11.07 |
성공적인 자체 워크샵 (22.11.06 TIL) (0) | 2022.11.06 |
옵셔널 체이닝 '?.' (22.11.05 TIL) (0) | 2022.11.05 |
댓글