TDD 프로세스 자동화 및 가속화: AI 어시스턴트와 MCP(Multi-Context Programming) 짝 프로그래밍을 활용하여 Spring Boot, REST, JPA 기반의 쇼핑 바스켓 TDD 과정을 진행하며, 복잡한 기능을 45분 만에 구현하는 효율성을 보여줍니다. 🚀
AI 기반 개발 워크플로우: AI가 커밋 메시지 작성, SRS(시스템 요구사항 명세) 생성, 예제 시나리오 도출, 하이레벨 및 상세 테스트 케이스 목록화, 워킹 스켈레톤 구현, 점진적 테스트 추가 및 통과, 코드 리팩토링, JPA 리포지토리 구현, 클래스 다이어그램 생성 등 개발 전반의 반복적이고 구조적인 작업을 수행합니다. 🤖
점진적 TDD 구현: 빈 장바구니 예외 처리부터 시작하여 할인 없는 단일 상품, 5% 할인(1만원 초과 2만원 미만), 10% 할인(2만원 이상) 등 다양한 할인 정책을 순차적으로 테스트하고 구현하며, 각 단계마다 테스트를 통과시키고 리팩토링하는 과정을 반복합니다. 🪜
AI와의 상호작용 및 피드백 루프: AI가 생성한 내용(예: 중복 테스트 케이스, 마크다운 문서 위치)에 대한 개발자의 명시적인 피드백과 수정 요청을 통해 AI의 학습 및 정확도를 향상시키고, 다음 작업의 실수를 줄이는 효과적인 협업 방식을 보여줍니다. 🗣️
프롬프트 엔지니어링의 중요성: '최소한의 코드'와 같은 구체적인 지시사항, 그리고 예제(Few-shot prompting)를 제공하여 AI가 원하는 방향으로 정확하게 코드를 생성하고 작업을 수행하도록 유도하는 프롬프트 엔지니어링의 핵심 역할을 강조합니다. ✍️
테스트 코드 개선 및 리팩토링: 초기 구현 후 테스트 코드의 중복과 가독성 문제를 해결하기 위해 테스트 데이터 빌더(Test Data Builder) 및 프로토콜 드라이버(Protocol Driver)를 적용하여 DSL(Domain Specific Language) 형태로 개선하는 과정을 AI가 수행합니다. 🛠️
실제 JPA 리포지토리 전환: 개발 마지막 단계에서 페이크(Fake) 리포지토리를 실제 JPA 리포지토리로 교체하는 과정을 AI가 자동으로 처리하며, JPA 매핑 추가, 리포지토리 구현 위임, 테스트 설정 변경 등 정형화된 작업을 효율적으로 수행합니다. 💾
AI 지식 기반 활용: AI가 룰 파일과 샘플 파일로 구성된 지식 기반(Knowledge Base)을 활용하여 더 정확하고 원하는 결과물을 생성하며, 샘플 데이터의 양을 늘릴수록 AI의 정확도가 높아질 수 있음을 시사합니다. 🧠
AI 협업의 한계와 관리: AI가 때때로 불필요한 코드를 생성하거나, 마크다운 문서에 잘못된 내용을 작성하는 등의 실수를 할 수 있으며, 세션이 '버벅거릴' 경우 세션을 재시작하고 프로젝트 컨텍스트를 다시 지정하여 AI를 초기화하는 등 개발자의 적극적인 관리와 개입이 필요함을 보여줍니다. 🚧