단일 책임 원칙과 관심사 분리를 핵심으로 설명하며 완결
시스템 설계에서 가장 중요하게 생각하는 것은 관심사 분리(Separation of Concerns)입니다. 하나의 모듈이 하나의 역할만 하도록 설계하면, 나중에 변경이 생겼을 때 영향 범위가 제한됩니다. 인턴에서 API 서버를 설계할 때 비즈니스 로직을 컨트롤러에 몰아넣은 코드를 본 적이 있는데, 수정이 생길 때마다 예상치 못한 부분까지 영향이 갔습니다.
레이어 분리를 적용하고 나서 테스트와 유지보수가 훨씬 쉬워졌습니다. 변경하기 쉬운 구조가 좋은 구조라고 생각합니다. 초기에 설계를 잘 해두면 나중에 기능 추가나 리팩토링 비용이 줄어드는 것을 직접 경험했습니다. 설계는 현재가 아니라 미래를 위한 것입니다.