AI가 윈체스터 미스터리 하우스를 짓게 두지 마세요
이 글은 체계적인 계획 없이 38년간 지어진 윈체스터 미스터리 하우스에 빗대어 잘못 설계된 소프트웨어를 설명합니다. 이러한 비유는 현대 AI 기반 앱 개발에도 확장되어, 근본적인 구조 없이 기능이 부분적으로 추가되는 상황을 지적합니다. 저자는 이러한 문제를 해결하기 위해 여섯 가지 아키텍처적 조치를 제안하며, 근본적인 설계 원칙으로의 복귀를 강조합니다. 첫 번째 조치는 기능 개발 전에 공유 객체 모델을 정의하여 스캐폴딩과 하네스를 먼저 고정하는 것입니다. 이는 시스템 내에서 액션이 정의된 위치와 목적을 갖도록 보장합니다. 두 번째 조치는 정의된 패턴과 컴포넌트부터 구성하는 것으로, 재사용 가능한 동작과 상호작용을 위한 통제된 어휘를 확립합니다. 이 접근 방식은 기능이 어떻게 동작하는지, 특히 오류 상태에서 어떻게 동작하는지를 표준화하고 정보를 어떻게 제시하는지를 결정합니다. 세 번째 조치는 제품과 함께 진화하는 살아있는 문서로 취급하여 지속적인 정보 아키텍처를 유지하는 것입니다. 이는 지속적인 개발에 필요한 개요와 맥락을 제공합니다. 네 번째 조치는 기술 부채가 축적되도록 두는 대신 조정 및 정리를 위한 시간을 예약하여 정기적인 주기로 리팩토링하는 것입니다. 이는 윈체스터 하우스에서 볼 수 있는 "손상된 날개를 봉쇄하는" 접근 방식을 방지합니다. 다섯 번째 조치는 기능 범위를 위치에 바인딩하여, 기능이 할 수 있는 일이 사용자의 현재 애플리케이션 내 위치에 맥락적으로 관련되도록 하는 것입니다. 이는 기능이 너무 일반적이어서 유용하지 않은 "전지전능한 상자" 문제를 피합니다. 마지막으로, 이 글은 이러한 아키텍처 원칙이 완전한 재구축을 요구하지 않고 기존 애플리케이션에 대한 개조로 적용될 수 있음을 강조합니다. 이러한 조치를 구현하는 것은 더 일관성 있고 유지보수 가능하며 사용자 친화적인 소프트웨어를 만드는 데 도움이 됩니다.