
61
2
장
저장소 패턴
엔드포인트의 최초 모습
@flask.route.gubbins
def allocate_endpoint():
# 요청으로부터 주문 라인 추출
line = OrderLine(request.params, ...)
# DB에서 모든 배치 가져오기
batches = ...
# 도메인 서비스 호출
allocate(line, batches)
# 어떤 방식으로든 할당한 배치를 다시 데이터베이스에 저장
return 201
NOTE
_
플라스크를 사용한 이유는 경량 때문이다. 이 책을 이해하기 위해 플라스크를 알아야 할 필요는 없
다. 사실 이 책에서 사용하는 프레임워크가 덜 중요해지는 방법을 보여준다.
배치 정보를 데이터베이스에서 가져와 도메인 모델 객체를 초기화하는 방법이 필요하다. 그리
고 도메인 객체 모델에 있는 정보를 데이터베이스에 저장하는 방법도 필요하다.
‘
gubbins
’는 영국영어로 ‘
stuff
’(물건, 해야 할 일 등을 의미)라는 단어와 같다. 여러분은 이 단
어를 무시해도 된다. 단지 의사코드일 뿐이다.
2.3
데이터 접근에
DIP
적용하기
서문에서 언급했듯이, 계층 아키텍처는
UI
, 어떤 로직, 데이터베이스로 이루어진 시스템을 구
조화할 때 일반적으로 쓰이는 접근 방법이다 (그림
2
-
2
).