Clean Architecture 정리 - 5부 25장 계층과 경계
2025. 7. 26. 13:40

아키텍처 경계 언제 도입해야할까?

  • 모든 컴포넌트에 아키텍처 경계가 필요한 것은 아님
  • 경계를 구현하면 비용이 든다. 그러나 무시하면 이후 더 큰 비용을 유발할 수 있다
  • 초기에는 경계가 필요 없지만, 시스템 복잡도가 증가하면 반드시 필요해진다
  • 경계는 미리 구분해두면 좋지만, 필요 이상으로 나누면 오히려 해롭다
  • 경계를 도입할 타이밍을 끊임없이 봐야한다

예시: 도서관 무인 대출 시스템

사용자는 초기에 무인 키오스크를 통해 도서를 대출하거나 반납함.

키오스크로 본인의 대출 이력을 확인 할 수 있음

또한 회원의 상태(블랙리스트, 등급, 연체 이력 등)에 따라, 도서 대출의 형태는 달라짐

 

1단계


2단계

외국인 손님도 많이 찾기 시작하면서 다국어 지원이 필요해짐.


3단계

키오스크 터치 입력이 불편하다는 피드백이 접수됨.


4단계

핸드폰으로 대출 이력을 확인할 수 있게 됨


5단계

정책을 분리함

  • BookLoan: 조건을 바탕으로 책을 대출할 수 있는지 여부를 판단
  • MemberState: 회원의 상태 ( 대출 기록, 블랙 리스트 여부, 연체 이력 등 ) 


6단계

도서관 서비스 사용자들이 많아짐에 따라, 책임을 나눈 마이크로서비스 구조로 전환함.

각 서비스는 독립적으로 배포되고, 각각 DB 혹은 캐시를 가질 수 있음

 

앱, 키오스크 모두 이 서비스의 Member State API를 통해 회원 상태 정보를 조회

대출을 하려고 하는 경우에, Member State 서버에서 Book Loan 서버를 호출

 

 

 

 

※ 본 글은 『Clean Architecture』(로버트 C. 마틴 저) 5부 25장을 기반으로 학습 목적으로 요약한 글입니다.

※ 이 글은 책의 내용을 요약한 것으로, 원문 없이 읽을 경우 오해의 여지가 있을 수 있습니다. 정확한 이해를 위해 원서의 정독을 권장합니다.