각각의 서비스를 개념 단위로 묶고 벽을 친다.(격벽)
개념간 접근을 제어하는 격벽이 필요하다.
모든 개념간 참조는 벽을 통해서 진행되므로 벽은 방화벽처럼 들어올 서비스와 차단할 서비스를 구분하는 역할을 한다고 본다.
기존
대출의 행위로 신청 실행 상환이 있는 구조
개념 적용
신청 -> 실행 -> 대출 -> 상환
상화의 경우 성공과 실패 개념이 붙어 확장될 수 있다.
상품을 직접관리하거나 외부에서 연동하여 가져올 수 있다.
상품과 외부 연동사 사이에 격벽을 세운다.
외부 연동사의 경우에는 개념이 아니다.
개념에도 계층이 있고 개념이 없는 곳도 존재한다.
외부 연동사는 개념이 아니므로 격벽을 넘을 수 없다.
외부 연동사의 경우에는 DB에 데이터를 수집이 정제하는 역할만을 해야한다.
하드웨어나 건축에 비해 소프트웨어는 요구사항을 받아들이고 변경이 쉬워야한다.
인정하자
하지말자
상기하자
설계에 시간을 쓰는 것보다 작은 단위의 구현을 지속하는 것이 유연하고 성장 가능한 설계이다.
개념 + 격벽 <—테스트코드—> 증명 + 피드백 = 설계
개념을잡고
격벽을세워
구현을 채워나가
설계를 완성한다.