AI 활용 개발 방법론

|

개발 방법론

AI를 활용한 개발이지만 퀄리티를 확보하기 위해서는 설계가 필요
거창한 UML, 아키텍처 디자인, ERD, 기능 목록서, 인터페이스 정의서 등의 복잡한 문서까지는 아니지만
실용적 레벨의 설계는 필요

항목 설명
요구사항 분석 무엇을 만들 것인지, 기능 및 품질 속성 수립
아키텍처 결정 어떤 기술과 구조로 만들 것인지
인터페이스 정의 API 호출 방식이나 규격 정의

작은 단위로 쪼개기

처음부터 완벽한 설계는 불가능하기 때문에, 작은 단위부터 하나씩 진행하는 것이 좋음
AI를 활용해서 아래와 같은 순서로 진행할 수 있음

  1. 아이디어 정의
    “로봇 데이터 수집 현황 대시보드를 만들려고 해.
    JWT 로그인을 활용할 예정이고, 다양한 요소를 활용해 통계를 보여줄거야.
    어떤 요소들이 필요할까?”

  2. 설계 문서 초안 “위 요구사항으로 REQUIREMENTS.md” 초안 작성해줘

  3. 설계 검토 및 확장
    “이 설계 문서를 검토해서 개발 스펙에 추가해야 하거나 누락된 부분이 있는지 알려줘”

  4. 구현
    “REQUIREMENTS.md에 따라 백엔드 서비스 개발해줘”

점진적 설계

처음에는 핵심적인 아키텍처 결정만 먼저하고, 세부사항은 구현하면서 구체화할 수도 있다.

## 1차 설계 (프로젝트 시작 전)

- 배포 형태: On-Premise
- 기술 스택: FastAPI + PostgreSQL
- 인증 방식: JWT

## 2차 설계 (구현 중)

- API Endpoint 상세 정의
- Database Schema 확정
- 에러 코드 체계 정의

## 3차 설계 (통합 전)

- Frontend 컴포넌트 구조
- 상태 관리 전략
- API 응답 형식 표준화

한 번에 하나의 작업만 요청

AI는 동시에 여러 작업을 수행하는 능력이 떨어짐
여러 가지 일을 동시에 시키면 기능/코드 품질 저하, 복합적 에러로 인한 디버깅 어려움. 코드간 간섭 등의 어려운 문제가 발생할 수 있음

작업 분해의 단위

AI는 컨텍스트 윈도우 한계도 있기 때문에 작업이 커질수록 문제 발생 및 토큰 낭비 등이 발생할 수 있기 때문에
작업을 적절한 크기로 나누는 것이 좋다.
작업 분해는 다음 단위로 쪼개면 효율적이다.

  • SRP: 단일 책임 원칙
  • 테스트 가능한 단위
  • 10분 내 검증 가능한 단위
  • 파일 혹은 기능 단위

명확한 작업 지시

AI에게 어떤 것을 요청할 때 어떻게 동작하는지를 명확하게 요청하는 것이 더 좋음

ex)
“사용자 프로필 수정 기능을 구현해줘 “
보다는
“프로필 기능 수정. 비밀 번호 입력 후 본인 확인이 되면 프로필 수정 페이지가 나오고, username, password를 제외한 나머지 필드만 수정할 수 있도록 해야 해.”
가 더 좋은 지시사항

완료 조건 명시

## 완료 조건

다음 조건을 모두 만족하면 완료

1. 올바른 이메일/비밀번호로 로그인 시 JWT 토큰 반환
2. 잘못된 비밀번호로 5회 실패 시 계정 잠금
3. 잠긴 계정으로 로그인 시도 시 423 응답과 남은 시간 표시
4. 모든 케이스에 대한 단위 테스트 통과
5. TypeScript 컴파일 에러 없음