웹 어댑터의 책임
- HTTP 요청을 자바 객체로 매핑
- 권한 검사
- 입력 유효성 검증
- 입력을 유스케이스의 입력 모델로 매핑
- 유스케이스 호출
- 유스케이스의 출력을 HTTP로 매핑
- HTTP 응답을 반환
- 보통 웹 어댑터가 인증과 권한 부여를 수행하고 실패할 경우 에러를 반환
- “웹 어댑터의 입력 모델을 유스케이스의 입력 모델로 변환할 수 있다는 것”을 검증해야 함
- 웹 어댑터는 변환된 입력 모델로 특정한 유스케이스를 호출
- HTTP와 관련된 것은 애플리케이션 계층으로 침투해서는 안 된다.
컨트롤러 나누기
- 너무 적은 것보다 너무 많은 것이 낫다.
- 각 컨트롤러가 가능한 한 좁고 다른 컨트롤러와 가능한 한 적게 공유하는 웹 어댑터 조각을 구현해야 함
- 각 컨트롤러 별로 별도의 모델을 생성해 받도록 하는 것이 좋다.
- 모델을 공유하게 되면, 특정 요청에서는 필요없는 필드들이 발생하게 되고, 파악하기 어렵다.
- 가급적이면 별도의 패캐지 안에 별도의 컨트롤러를 만드는 것이 좋다.
- 또한 메서드와 클래스명은 유스케이스를 최대한 반영해서 지어야 함
유지보수 가능한 소프트웨어를 만드는 데 어떻게 도움이 될까?
- HTTP에 대한 상세 정보를 노출시키지 않도록 HTTP와 관련된 작업을 해서는 안 됨
- 웹 컨트롤러를 나눌 때에는 모델을 공유하지 않는 여러 작은 클래스들을 만드는 것을 두려워 해서는 안 된다.
'Architecture(아키텍처)' 카테고리의 다른 글
| [만들면서 배우는 클린 아키텍처] 07. 아키텍처 요소 테스트하기 (0) | 2024.07.20 |
|---|---|
| [만들면서 배우는 클린 아키텍처] 06. 영속성 어댑터 구현하기 (0) | 2024.07.20 |
| [만들면서 배우는 클린 아키텍처] 04. 유스케이스 구현하기 (0) | 2024.07.20 |
| [만들면서 배우는 클린 아키텍처] 03. 코드 구성하기 (0) | 2024.07.20 |
| [만들면서 배우는 클린 아키텍처] 02. 의존성 역전하기 (0) | 2024.07.20 |