핵심 인사이트
AI 시대가 되면서 기획(Spec)만 던지면 코드가 뚝딱 나오는 Specs to Code 트렌드가 주목받고 있지만, 실제로는 이 과정에서 수많은 쓰레기 코드와 기술 부채가 쌓이게 됩니다. 코드가 컴파일을 거칠 때마다 점점 더 엉망이 되는 소프트웨어 엔트로피 현상이 발생하기 때문입니다. 결국 나쁜 코드는 AI가 활약할 수 있는 무대 자체를 망치기 때문에, 역설적으로 AI 시대에는 소프트웨어의 기본기와 아키텍처 설계 능력이 그 어느 때보다 중요해집니다.
맷 포콕은 이를 해결하기 위해 오래된 소프트웨어 명저들에서 찾은 5가지 실전 전략을 제시합니다.
Grill me (질문 공세) AI와 인간 사이의 생각 차이를 좁히기 위해, 기획 단계에서 AI가 나에게 40개, 60개 이상의 질문을 끊임없이 던지게 만들어 명확한 설계 개념을 공유합니다.
유비쿼터스 언어 (Ubiquitous Language) 도메인 주도 설계(DDD) 개념을 활용하여, 코드베이스 내의 핵심 용어를 정리한 마이크다운 문서를 만들고 AI와 인간이 동일한 단어를 같은 의미로 사용하도록 정렬합니다.
테스트 주도 개발 (TDD) AI는 한 번에 너무 많은 코드를 작성해 통제력을 잃기 쉽습니다. 테스트 코드를 먼저 작성하게 함으로써 AI가 작고 안전한 단계를 밟아가며 코딩하도록 제어합니다.
딥 모듈 (Deep Modules) 단순한 인터페이스 뒤에 복잡한 로직을 숨기는 큰 모듈 구조를 지향해야 합니다. 잘게 쪼개진 수많은 얕은 모듈은 AI가 의존성을 파악하기 어렵게 만들고 사람의 뇌에도 과부하를 줍니다.
인터페이스 설계와 구현 위임 인간은 상위 레벨에서 모듈의 경계와 인터페이스를 철저하게 설계하고, 그 내부의 구체적인 구현은 AI라는 유능한 작전 상사에게 위임하는 전략적 리더가 되어야 합니다.