프레임워크 아키텍처를 설계할 때 중요하게 생각하는 요소를 설명
프레임워크 아키텍처를 설계할 때 가장 먼저 고민하는 건 이것을 사용하는 사람이 어떻게 쓰게 될까입니다. 내부 구현이 아무리 정교해도 사용하는 방식이 직관적이지 않으면 채택이 어렵고 오용이 생깁니다. 레이어 간 책임을 명확히 분리해서 한 레이어의 변경이 다른 레이어에 영향을 최소화하는 구조가 유지보수에서 가장 차이를 만들었습니다. 확장성을 고려할 때는 처음부터 모든 케이스를 다 지원하려 하기보다, 핵심 인터페이스를 잘 정의해두고 나머지를 확장 가능하게 열어두는 방식이 현실적이었습니다.
과도한 추상화는 코드를 읽기 어렵게 만들고, 처음 접하는 사람이 파악하는 데 더 오래 걸리게 했습니다. 테스트하기 쉬운 구조인지도 중요한 기준이었는데, 의존성 주입이 가능한 설계가 단위 테스트를 수월하게 했습니다. 아키텍처는 지금 쓰기 쉬운 것과 나중에 바꾸기 쉬운 것 사이의 균형입니다.