CodeSOD: 클래식 WTF: Fork and Log
레미는 아담 C.가 겪었던 VXML Platform 성능 문제에 대한 일화를 이야기합니다. 시스템은 최소한의 부하에서도 실패하고 있었고, 프로젝트는 이미 일정보다 늦어지고 있었습니다. VXML에 익숙하지 않았던 아담은 단서를 찾기 위해 애플리케이션 로그를 살펴보는 것으로 시작했습니다. 그는 반복적으로 "Exception encountered writing error log"라는 오류 메시지를 발견했습니다. 이 알 수 없는 메시지는 로깅 자체에서 오류를 보고했기 때문에 아담을 당황하게 했습니다. 소스 코드를 깊이 파고든 그는 매우 결함이 있는 로깅 구현을 발견했습니다. 코드는 log4j와 같은 기존 로깅 프레임워크나 간단한 System.out.println조차 활용하는 대신 오류를 기록하기 위해 외부 명령을 사용했습니다. 아담은 이 접근 방식이 비효율적이고 잘못 설계되었다고 생각했습니다. 이 특정 코드가 성능 문제의 근본 원인은 아니었지만, 신속하게 제거되었습니다. 이 일화는 레거시 시스템에서 흔히 발견되는 기술 부채의 한 유형을 강조합니다.