복잡한 시스템 이해에 필요한 기술 요소 — 추상화와 인터페이스 파악 중심
복잡한 시스템 상호작용을 이해하려면 각 구성 요소가 무엇을 입력으로 받아 무엇을 출력하는지를 먼저 파악하는 것이 중요합니다. 내부 구현을 전부 알기 전에 경계와 인터페이스를 먼저 그리는 것이 복잡도를 다루는 효과적인 방법입니다. 팀 프로젝트에서 처음 받은 레거시 코드베이스를 분석할 때, 전체를 읽으려 하지 않고 실행 흐름을 따라 필요한 지점만 파악하는 방식을 썼습니다. 로그와 에러 메시지를 보면 어느 컴포넌트에서 어떤 입력이 들어왔을 때 문제가 생기는지가 보입니다. 시스템 다이어그램을 직접 그려보는 것도 이해를 도왔습니다.
그리는 과정에서 빠진 연결이나 중복이 보이기 때문입니다. 복잡한 시스템은 한 번에 이해하려 하기보다 하나씩 레이어를 쌓아가는 방식이 맞는다고 봅니다.