한 줄 정의
눈에 보이는 표면적 증상(UI 버그, 느린 로딩 등)에 급급하지 않고 시스템 기저의 원인(API 계약, 기획 등)을 파악하여 해결하는 방법론.
핵심 요지
개발자들이 종종 가장 시끄럽고 가시적인 문제(증상)만을 해결하려다 진짜 원인을 놓친다. 문제의 근본 원인을 파악하기 전까지는 해결책을 제시하는 것을 보류해야 한다.
상세
[raw/대부분의 개발자는 잘못된 문제를 해결하고 있다.md#L53](file:///Users/railscraft/Obsidian/raw/대부분의 개발자는 잘못된 문제를 해결하고 있다.md)에서 언급하듯 “눈에 보이는 문제는 고통이 나타나는 곳이다. 진짜 문제는 원인이 존재하는 곳이다.” 불분명한 요구사항이나 API 계약 불일치 등 근본 원인을 찾지 않고 코드 리팩토링이나 도구 교체를 하는 것은 오버엔지니어링일 수 있다.
예시
API 계약 불일치로 인한 UI 깨짐을 프론트엔드 방어 코드(fallback)로 때우지 않고, 데이터 정규화 레이어를 통해 원천 해결.
충돌
빠른 배포(출력 속도)를 중시하는 조직 문화와 근본 원인을 파악하려는 의사결정 품질 사이의 갈등.