Your Code Base as a Crime Scene by Scott Sosna
- 코드베이스는 시간이 지남에 따라 품질이 저하되어 '범죄 현장'처럼 변모하며, 이는 단순히 코딩 문제뿐 아니라 다양한 외부 및 내부 요인에 의해 발생합니다. 🔍
- 소프트웨어 개발은 코딩 외에도 단위 테스트, 문서화, 코드 리뷰, 기술 부채, 기업 정치 등 복잡한 현실을 포함하며, 이 모든 것이 코드 품질에 영향을 미칩니다. 🚧
- 오래된 코드베이스는 예외 처리의 복잡성이나 수많은 커밋 이력으로 인해 유지보수가 극도로 어려워지는 현실을 보여줍니다. 😵💫
- 이 강연은 '누가 코드를 이렇게 만들었는가?'라는 질문에서 시작되었으며, 마치 '클루도' 게임처럼 코드 품질 저하의 원인을 추적합니다. 🕵️♀️
- 외부 행위자: 고객의 막대한 영향력으로 인해 기술적 우선순위가 변경되고, 오래된 API 버전(V1) 지원이 강제되어 코드 복잡성이 증가합니다. 🤝
- 외부 행위자: 온프레미스 고객의 존재는 클라우드 전환을 방해하고, 모든 환경에서 작동해야 하는 '최소 공통 분모' 코딩을 강요하여 개발을 제약합니다. 🏢
- 외부 행위자: 긴급한 고객 요청은 적절한 설계나 테스트 없이 즉흥적인 코드 수정(hack)을 유발하며, 이는 기술 부채로 남게 됩니다. 🚨
- 외부 행위자: 정부 규제 기관의 갑작스러운 정책 변경(예: COVID-19 원격 진료, 세법 변경)은 촉박한 기한 내에 급하고 불완전한 코드 변경을 강요합니다. 📜
- 외부 행위자: 클라우드 제공업체의 서비스 강제 업데이트 및 지원 중단은 예상치 못한 호환성 문제와 긴급한 코드/인프라 변경을 초래합니다. ☁️
- 외부 행위자: 유지보수되지 않는 오픈소스 라이브러리는 버그나 보안 취약점 발생 시 대체품을 찾거나 자체적으로 포크하여 관리해야 하는 부담을 안깁니다. 💔
- 내부 행위자: 핵심 인력의 퇴사는 중요한 시스템 지식의 손실로 이어져, 남은 팀원들이 레거시 코드를 이해하고 유지보수하는 데 큰 어려움을 겪게 합니다. 🧠
- 내부 행위자: 고위 경영진의 비현실적이고 긴급한 요구(예: '일주일 안에 제품 출시')는 단기적인 해킹성 솔루션을 양산하며, 이는 장기적인 기술 부채로 축적됩니다. 🚀