GitHub Copilot Is Rewriting How You Think About Database Design — And Not in a Good Way
개요
GitHub Copilot과 같은 AI 도구의 등장으로 데이터베이스 설계 방식에 변화가 일어나고 있으며, 이는 인간 중심 설계에서 AI 컨텍스트에 최적화된 설계로 전환될 위험을 내포하고 있습니다.
주요 내용
* AI 컨텍스트 전략의 차이: 서구 개발자들은 GitHub Copilot을 비용 절감 도구로 인식하여 최소한의 컨텍스트를 제공하려 하지만, 일본의 Rails 개발자들은 AI 컨텍스트를 아키텍처 자산으로 취급하여 AI가 코드베이스에 유용한 출력을 생성하도록 더 많은 컨텍스트를 제공하는 전략을 사용합니다.
* 일본 개발자들의 세 가지 실천 방안:
1. 스키마 문서화: AI 소비에 적합한 형식으로 스키마 문서를 작성하여 ERD 다이어그램을 AI의 컨텍스트 스캐폴딩으로 활용합니다.
2. 설계 결정의 우선순위화: 컴플라이언스 요구사항 등 아키텍처 결정 사항을 AI가 사용할 수 있는 형식으로 보존하고 공유합니다.
3. MCP(Model Context Protocol) 통합: 세션 간 대화 컨텍스트를 유지하여 AI가 특정 설계 패턴, 명명 규칙, 아키텍처 제약 조건을 지속적으로 인지하도록 합니다.
* 컨텍스트 컴포스팅의 함정: AI에 최적화된 컨텍스트 제공 전략은 AI의 출력을 개선하는 듯 보이지만, 실제로는 애플리케이션 요구사항보다는 AI가 이해할 수 있는 범위에 맞춰 스키마를 설계하게 만들어 기술적으로 열등한 결과물을 초래할 수 있습니다. 이는 더 많은 테이블, 성능 저하, 복잡한 쿼리 수행의 어려움으로 이어질 수 있습니다.
* AI 최적화 설계의 위험: AI를 중심으로 스키마를 설계하면 인간 개발자의 성능과 코드베이스의 근본적인 품질이 희생될 수 있으며, 이는 장기적으로 기술 부채로 축적됩니다.
* 인간 중심 설계 유지 방안:
* 설계 결정 사항을 AI 형식과 그 이유를 설명하는 형식, 두 가지로 문서화합니다.
* AI 생성 마이그레이션을 주기적으로 수동 검토하여 설계 의도를 파악합니다.
* AI 세션당 추론 가능한 스키마 복잡성을 추적하여 AI의 한계를 인지합니다.
* 분기별 스키마 감사 시 AI의 존재 여부와 상관없이 인간이 동등하게 설계할 수 있는지 평가합니다.
시사점
AI 코딩 도구가 발전함에 따라 AI 컨텍스트에 최적화된 설계 압력이 증가할 것이며, 개발자는 AI의 제안이 코드베이스의 근본적인 품질과 인간 중심 설계를 저해하지 않도록 주의하며 아키텍처적 사고를 유지해야 합니다.
댓글
GitHub Discussions