클린 아키텍처 - 아키텍처5

jaehee kim·2022년 2월 5일
0

Clean Architecture

목록 보기
7/7
post-thumbnail

프레젠터와 험블 객체

험블 객체 패턴

험블 객체 패턴은 디자인 패턴으로, 테스트하기 어려운 행위와 테스트하기 쉬운 행위를 단위 테스트 작성자가 분리하기 쉽게 하는 방법으로 고안되었다.

테스트하기 어려운 행위를 험블 객체로 옮긴다.
험블 객체 패턴을 사용하여 두 부류의 행위를 분리하여 프레젠터와 뷰라는 서로 다른 클래스로 만든다.


프레젠터와 뷰

프레젠터 는 테스트하기 쉬운 객체로, 애플리케이션으로부터 데이터를 받아 화면에 표현할 수 있는 포맷으로 만든다.
는 험블 객체이고 테스트하기 어렵다. 데이터를 화면으로 전달하는 간단한 일만 처리한다.
화면에 표시되고 애플리케이션에서 어느 정도 제어할 수 있는 요소라면 무조건 뷰 모델 내부에 문자열, bool, enum 형태로 표현한다.

e.g. 애플리케이션에서 어떤 필드에 날짜를 표시하는 경우

애플리케이션은 프레젠터 에 Date 객체를 전달한다.
프레젠터 는 해당 데이터를 적절한 포맷의 문자열로 만들고, 이 문자열을 뷰 모델 이라고 부르는 간단한 데이터 구조에 담는다.
뷰 모델에서 이 데이터를 찾는다.


데이터베이스 게이트웨이

유스케이스 인터랙터와 데이터베이스 사이에는 데이터베이스 게이트웨이 가 위치한다. 이 게이트웨이는 데이터베이스에 수행하는 모든 메서드를 포함한다.
유스케이스 계층은 SQL을 허용하지 않는다. 필요한 메서드를 제공하는 게이트웨이 인터페이스를 호출한다. 그리고 인터페이스의 구현체는 데이터베이스 계층에 위치하고, 이 구현체는 험블객체이다.


결론

아키텍처 경계에서 험블 객체 패턴을 사용하면 전체 시스템의 용이성을 크게 높일 수 있다.





Reference

Clean Architecture - Robert C. Martin

0개의 댓글