핵심 문제 추출·불필요 제약 제거·점진적 확장 가능 구조로 시스템 단순화 결
복잡한 요구사항을 단순화할 때 가장 먼저 하는 것은 진짜 해결해야 할 문제와 부수적인 제약을 분리하는 것입니다. 요구사항에 포함된 내용 중 실제 핵심 목표와 무관한 제약을 식별하면 설계 공간이 넓어지고 더 단순한 해법이 보이는 경우가 많았습니다.
단순한 구조에서 시작해 필요할 때 확장하는 방향으로 설계했습니다. 처음부터 모든 경우를 처리하려 하면 구조가 복잡해지기 때문에, 지금 필요한 것만 구현하고 이후에 확장 가능한 인터페이스를 미리 잡아두는 방식을 사용했습니다.
팀과 설계를 공유하는 과정도 단순화에 도움이 됐습니다. 설명하기 어려운 설계는 대부분 실제로도 복잡한 설계였고, 팀원이 5분 안에 이해할 수 없다면 더 단순하게 만들 수 있다는 신호로 받아들였습니다. 명확한 설계가 결국 유지보수 비용을 낮췄습니다.