본문 바로가기
AI 코딩

[AI코딩.10] Augmented 코딩과 Vibe 코딩에 대한 개발자 가이드

by 피크나인 2025. 7. 21.

AI 코딩 활용을 위한 개발자 가이드

1. 들어가며: 두 가지 코딩 패러다임의 만남

개발자로서 10년 넘게 코드를 작성해오면서, 나는 AI를 활용한 코딩스타일에서 두 가지 극명하게 다른 코딩 스타일을 목격해왔습니다. 한쪽에는 "일단 돌아가게 만들고 나중에 생각하자"는 Vibe 코딩이 있고, 다른 한쪽에는 AI와 도구의 힘을 빌려 체계적이고 전략적으로 접근하는 Augmented 코딩이 있다. 현재는 바이브 코딩도 나름의 매력이 있었지만, 2025년 현재 시점에서 보면 설계형 증강 코딩이야말로 진정한 게임 체인저라고 확신합니다. 특히 복잡한 비즈니스 로직을 다뤄야 하는 현대 개발 환경에서는 더욱 그렇습니다. 오늘은 왜 모든 개발자가 augmented 코딩으로 전환해야 하는지, 그리고 어떻게 실천할 수 있는지에 대해 실제 사례와 함께 상세히 이야기해보려 합니다.

 

대부분의 바이브코딩에 접근하는 사람들은 개발자 및 비 개발자를 포함하여,모두 최종 결과물에 대한  요청만을하게됩니다. 요청하는 내용이 구체적이지도 않으며 어떠한 방식으로 진행하라는 요청사항이 없다는 거죠. 아주 약간의 양념(?),기본적인 생각과 방향을 담은 프롬프트를 활용하면,  AI결과물에 대하여 요청자의 의지 및 방향에 좀 더 근접한 결과를 줄 수 있습니다. 올바른 요청 후 올바른 결과물을 기대해야 형평성이 맞다 라고 생각합니다.

최소한의 기획을 한 뒤에 소프트웨어를 만들어봅시다. 우문현답을 기대하는건 무리
최소한의 기획을 한 뒤에 소프트웨어를 만들어봅시다. 우문현답을 기대하는건 무리

                                


2. Vibe 코딩: 직관의 함정과 숨겨진 비용

Vibe 코딩은 말 그대로 "감"에 의존하는 개발 방식입니다. 스택오버플로우(Stackoverflow.com)를 뒤져가며 코드를 복붙하고, 에러가 나면 그때그때 구글링해서 해결하는 방식이다.(요즘에는 이런 일들을 AI가 처리하긴 하지만,그냥 일단 프로그램이 돌아가게 만든다는 점에서 유사합니다.) 처음에는 빠르고 자유로운 것 같지만, 실제로는 수많은 함정이 도사리고 있습니다. 내가 주니어 개발자였을 때를 돌이켜보면, 하나의 기능을 구현하기 위해 밤새 스택오버플로우를 헤매며 복붙한 코드들의 조합으로 "일단 돌아가는" 무언가를 만들곤 했습니다. 하지만 그 코드는 마치 카드로 쌓은 집과 같았습니다. - 조금만 건드려도 무너져내릴 준비가 되어 있었고, 비즈니스 로직의 변경이나 확장이 필요할 때마다 전체를 다시 작성해야 하는 상황이 반복되었다.AI를 활용한 Vive 코딩 역시 동일한 상황에 맞닥드리게 됩니다. 일단 단순한 화면에서 기본적인 기능들은 잘 돌아가는 듯 하지만, 확장기능을 요청한 경우에는프로그램을 새로 작성하는 듯한 느낌을 받습니다.왜냐하면 AI는 전체의 구조를 생각한다기 보다 요청자의 단편적인 요청사항을 우선 해결하도록 설계되었기 때문입니다.                                      

Vibe 코딩의 특징과 실제 비용

개발 속도 초기에는 빠른 것 같음 디버깅과 수정에 10배 시간 소요 2주 예상 → 6주 실제 소요
코드 품질 일관성 없는 스타일 유지보수 불가능한 레거시 생성 3개월 후 본인도 이해 불가
학습 효과 단편적 지식 습득 근본적 이해 부족으로 반복 실수 동일한 에러 패턴 반복
협업 개인적 스타일 팀원이 코드 이해 불가 코드 리뷰 시간 3배 증가
확장성 기능 추가 시마다 전체 재작성 기술 부채 급속 증가 새 기능 1개 = 전체 리팩토링

 

측면 Vibe 코딩의 현실 숨겨진 비용 실제 

vibe 코딩으로 개발한 주문 처리 시스템을 테스트 할 때의 일 입니다. 겉보기에는 완벽하게 동작하는 것 같았지만, 할인 정책을 하나 추가하려고 했더니 전체 계산 로직이 하드코딩되어 있었고, 결국 3주짜리 작업이 2개월로 늘어났고, 그나마도 완전히 새로 작성하는 것으로 마무리되었습니다.

바이브코딩(vibe coding)가 증강코딩(augmented coding)간의 비교점을 분석합니다.
Vibe코딩과 Augmented코딩 비교

 

3. Augmented 코딩: AI 시대의 새로운 패러다임

Augmented 코딩은 AI 도구와 체계적인 방법론을 결합하여 개발 효율성과 코드 품질을 동시에 극대화하는 접근법입니다.(비 전문가인 일반인이 접근하기는 어려우나,기존 개발자는 조금만 신경쓰면 접근하기 쉽습니다.) 단순히 ChatGPT에게 "이 코드 짜줘"라고 요청하는 것이 아니라, AI를 파트너로 삼아 비즈니스 요구사항 분석부터 설계, 구현, 테스트까지 전 과정을 체계적으로 진행하는 방법이죠. 최근 프로젝트에서 이 방식을 적용했을 때, 개발 시간은 절반으로 줄어들었지만 코드 품질은 오히려 향상되었습니다. 마치 숙련된 시니어 개발자가 옆에서 지속적으로 조언해주는 것과 같은 경험이었으며, 특히 복잡한 비즈니스 로직을 다룰 때 그 진가가 발휘되었다.

Augmented 코딩의 핵심 원칙

1. 비즈니스 로직 우선 분석 (Business Logic First Analysis) 코드를 작성하기 전에 AI와 함께 비즈니스 요구사항을 철저히 분석하고, 도메인 로직을 명확히 정의한다.

2. 설계 우선 접근법 (Design-First Approach) 전체 아키텍처를 AI와 함께 설계하여 확장 가능하고 유지보수 가능한 구조를 만든다.

3. 컨텍스트 기반 프롬프팅 (Context-Aware Prompting) 단순한 요청이 아닌, 프로젝트의 전체 맥락과 비즈니스 도메인을 포함한 상세한 프롬프트를 작성한다.

4. 반복적 개선 (Iterative Refinement) AI의 첫 번째 결과물을 그대로 사용하지 않고, 지속적으로 개선해나간다.

5. 선호하는프레임워크및아키텍처(Prefered Architechture) 유지보수가 가능하도록 개발자에게 익숙한 프레임워크 와 아키텍처를 요청합니다.

6. 디자인톤앤매너(Design tone and manner) 디자인 및 유저 인터페이스와 관련된 라이브러리 및 기본 스타일을 정의합니다.                     


4. 실전 Augmented 코딩: 완전 단계별 가이드

효과적인 프롬프트 에지니어링의 프로세스
효과적인 프롬프트 엔지니어링

1)  비즈니스 요구사항 분석과 도메인 모델링

가장 중요한 첫 단계는 AI와 함께 비즈니스 요구사항을 완전히 이해하고 도메인 모델을 설계하는 것입니다. 예를 들어, 온라인 도서 대여 서비스를 개발한다고 가정해보겠습니다.아래의 코드블럭은 실제로 AI에게 요청되는 프롬프트에 대한 예시를 들어드립니다.         

 

1단계: 비즈니스 도메인 분석 프롬프트

당신은 비즈니스 분석 전문가입니다. 온라인 도서 대여 서비스의 비즈니스 요구사항을 분석해주세요.

서비스 개요:
- 사용자가 온라인으로 도서를 대여하고 반납할 수 있는 서비스
- 월 구독료 기반 + 개별 대여료 하이브리드 모델
- 실물 도서 배송 + 전자책 즉시 제공

비즈니스 규칙:
1. 구독 등급별 혜택
   - 베이직: 월 3권 무료, 추가 권당 2,000원
   - 프리미엄: 월 10권 무료, 추가 권당 1,500원
   - VIP: 무제한 무료, 신간 우선 예약

2. 대여 규칙
   - 대여 기간: 기본 14일, 1회 연장 가능 (7일)
   - 연체료: 일당 500원
   - 동시 대여 한도: 구독 등급별 상이

3. 재고 관리
   - 인기 도서 대기열 시스템
   - 자동 구매 추천 (대기자 10명 이상)
   - 손상/분실 책 관리

다음을 제공해주세요:
1. 핵심 비즈니스 프로세스 식별
2. 주요 비즈니스 규칙 정리
3. 도메인 엔티티 및 관계 정의
4. 비즈니스 예외 상황 시나리오
5. 성능 및 확장성 고려사항

 

2단계: 도메인 모델 설계 프롬프트

앞서 분석한 도서 대여 서비스를 기반으로 상세한 도메인 모델을 설계해주세요.

설계 요구사항:
1. DDD(Domain Driven Design) 원칙 적용
2. 각 도메인 엔티티의 책임과 생명주기 정의
3. 비즈니스 규칙을 엔티티 내부에 캡슐화
4. 도메인 이벤트 식별

포함해야 할 요소:
- 핵심 엔티티 (User, Book, Rental, Subscription 등)
- 값 객체 (Money, Period, Address 등)
- 집합 루트 정의
- 도메인 서비스 식별
- 비즈니스 규칙 구현 방법

출력 형식:
1. 도메인 모델 다이어그램 (mermaid)
2. 각 엔티티별 상세 설명
3. 비즈니스 규칙 구현 전략
4. 도메인 이벤트 목록

2) 아키텍처 설계와 기술 스택 결정

도메인 모델이 완성되면 이를 기반으로 전체 시스템 아키텍처를 설계합니다.

 

아키텍처 설계 프롬프트 (비즈니스 로직 포함)

당신은 시니어 소프트웨어 아키텍트입니다. 앞서 정의한 도서 대여 서비스 도메인 모델을 기반으로 완전한 시스템 아키텍처를 설계해주세요.

비즈니스 요구사항:
- 동시 사용자 10,000명 처리 가능
- 99.9% 가용성 보장
- 일 거래량 50,000건 처리
- 실시간 재고 업데이트
- 복잡한 할인 정책 처리

기술적 제약사항:
- Node.js + TypeScript 스택
- PostgreSQL 주 데이터베이스
- Redis 캐싱 및 세션 관리
- Docker + Kubernetes 배포
- MSA(Microservices Architecture) 적용

설계해야 할 구성요소:

1. 마이크로서비스 분할 전략
   - 각 서비스의 책임과 경계
   - 서비스 간 통신 방법
   - 데이터 일관성 보장 방법

2. API 설계
   - RESTful API 엔드포인트
   - GraphQL 적용 고려사항
   - API 버저닝 전략

3. 데이터베이스 설계
   - 서비스별 데이터베이스 분리
   - 트랜잭션 처리 전략
   - 이벤트 소싱 적용 영역

4. 비즈니스 로직 처리
   - 복잡한 할인 정책 계산
   - 대여 가능성 체크 로직
   - 연체료 계산 및 자동 처리
   - 재고 부족 시 대기열 관리

5. 성능 최적화
   - 캐싱 전략
   - 데이터베이스 최적화
   - 비동기 처리 영역

6. 보안 설계
   - 인증/인가 체계
   - 결제 정보 보안
   - API 보안

다음 형식으로 제공해주세요:
1. 전체 시스템 아키텍처 다이어그램
2. 마이크로서비스 분할 및 책임 정의
3. 데이터 플로우 및 비즈니스 프로세스 흐름
4. 기술 스택 선택 근거
5. 성능 및 확장성 전략
6. 보안 아키텍처
7. 배포 및 운영 전략

3)  비즈니스 로직 중심의 코드 구현

설계가 완료되면 실제 구현 단계로 넘어갑니다. 여기서 중요한 것은 비즈니스 로직을 명확히 표현하고 테스트 가능한 형태로 구현하는 것이중요합니다.

 

3-1. 도메인 엔티티 구현 프롬프트

앞서 설계한 도서 대여 서비스의 핵심 도메인 엔티티들을 TypeScript로 구현해주세요.

구현할 엔티티:
1. User (사용자)
2. Subscription (구독)
3. Book (도서)
4. Rental (대여)
5. Payment (결제)

각 엔티티에 포함해야 할 비즈니스 로직:

User 엔티티:
- 구독 등급별 대여 가능 권수 체크
- 연체 상태 확인
- 대여 이력 관리

Subscription 엔티티:
- 구독 등급별 혜택 계산
- 월간 사용량 추적
- 자동 갱신 처리

Book 엔티티:
- 재고 관리
- 인기도 기반 추천 우선순위
- 손상 상태 관리

Rental 엔티티:
- 대여 기간 계산
- 연체료 자동 계산
- 반납 처리 및 상태 변경
- 연장 가능 여부 체크

Payment 엔티티:
- 복잡한 할인 정책 적용
- 부분 결제 처리
- 환불 처리

구현 요구사항:
1. DDD 원칙 적용 (풍부한 도메인 모델)
2. 비즈니스 규칙을 엔티티 내부에 캡슐화
3. 불변성 보장 (immutable objects)
4. 도메인 이벤트 발생
5. 완전한 타입 안정성
6. 상세한 에러 처리
7. 비즈니스 규칙 위반 시 명확한 예외 메시지

각 엔티티마다:
- 생성자에서 비즈니스 규칙 검증
- 상태 변경 메서드에서 불변성 보장
- 비즈니스 로직 메서드 구현
- 도메인 이벤트 발생 로직
- 완전한 JSDoc 문서화

 

3-2. 복잡한 비즈니스 로직 구현 프롬프트

도서 대여 서비스의 복잡한 할인 정책을 처리하는 서비스 클래스를 구현해주세요.

할인 정책 상세:

1. 기본 할인
   - 신규 회원: 첫 대여 50% 할인
   - 장기 회원 (1년 이상): 10% 할인
   - 생일 월: 20% 할인

2. 구독 등급 할인
   - 베이직: 할인 없음
   - 프리미엄: 5% 추가 할인
   - VIP: 15% 추가 할인

3. 도서 카테고리 할인
   - 베스트셀러: 할인 없음
   - 클래식: 30% 할인
   - 신간 (출간 6개월 이내): 할인 없음
   - 구간 (출간 5년 이상): 40% 할인

4. 수량 할인
   - 3권 이상: 5% 할인
   - 5권 이상: 10% 할인
   - 10권 이상: 15% 할인

5. 시간대 할인
   - 오전 9-12시: 5% 할인
   - 야간 22-02시: 10% 할인

6. 특별 할인
   - 주말 (토, 일): 10% 할인
   - 공휴일: 15% 할인

복잡한 조건:
- 할인은 중복 적용 가능하지만 최대 70% 할인 제한
- VIP 회원은 할인 제한 없음
- 신간 베스트셀러는 모든 할인 적용 불가
- 할인 적용 순서: 기본 → 구독 → 카테고리 → 수량 → 시간대 → 특별

구현 요구사항:
1. Strategy 패턴 적용
2. 각 할인 규칙을 독립적인 클래스로 분리
3. 할인 조합 및 제한 로직 구현
4. 할인 적용 이력 추적
5. 성능 최적화 (캐싱 활용)
6. 완전한 단위 테스트 가능하도록 설계
7. 새로운 할인 정책 추가 시 기존 코드 수정 최소화

출력해주세요:
1. 할인 정책 클래스들
2. 할인 계산 서비스 클래스
3. 할인 적용 로직 테스트 케이스
4. 성능 최적화 방안
5. 확장 가능한 구조 설명

 

3-3. 비즈니스 프로세스 오케스트레이션 프롬프트

도서 대여 프로세스를 처리하는 Application Service를 구현해주세요.

대여 프로세스 흐름:
1. 대여 요청 접수
2. 사용자 자격 검증 (구독 상태, 연체 여부, 대여 한도)
3. 도서 재고 확인
4. 할인 정책 적용 및 가격 계산
5. 결제 처리
6. 대여 기록 생성
7. 재고 차감
8. 배송 요청 (실물 도서인 경우)
9. 알림 발송 (이메일, SMS)
10. 도메인 이벤트 발행

예외 처리 시나리오:
- 재고 부족 시 대기열 등록
- 결제 실패 시 롤백 처리
- 배송 불가 지역 체크
- 동시성 문제 (같은 책을 여러 명이 동시 대여)

구현 요구사항:
1. SAGA 패턴 적용 (분산 트랜잭션)
2. 각 단계별 보상 트랜잭션 정의
3. 도메인 이벤트 기반 비동기 처리
4. 완전한 에러 복구 메커니즘
5. 프로세스 추적 및 모니터링
6. 성능 최적화 (병렬 처리 가능한 부분)
7. 테스트 용이성 (각 단계별 독립 테스트)

특별 요구사항:
- 대여 취소 처리 로직
- 부분 실패 시 사용자 알림
- 관리자 개입 지점 정의
- 대여 프로세스 현황 조회 API

구현해주세요:
1. BookRentalService 클래스
2. 각 프로세스 단계별 핸들러
3. 보상 트랜잭션 로직
4. 이벤트 핸들러들
5. 에러 처리 및 복구 로직
6. 통합 테스트 시나리오

4)  테스트 주도 개발 (TDD with AI)

비즈니스 로직이 복잡할수록 철저한 테스트가 필요합니다. AI와 함께 TDD를 실천하는 방법을 살펴보겠습니다. TDD (Test Driven Development)는 '테스트 주도 개발'이란 의미로 일반적인 개발방법과 달리 반복 테스트를 이용한 소프트웨어 개발 방법론으로,작은 단위의 테스트케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 프로그램을 완성하는 방법입니다. 테스트케이스는 문서로 작성 될 수 있고, 개발자의 메모 또는 생각일 수 있습니다. 간단하게라도 메모 형태의 정해진 테스트 순서 및 데이터를 정해놓으면 좋습니다.    

 

비즈니스 로직 테스트 생성 프롬프트

앞서 구현한 할인 정책 서비스에 대한 포괄적인 테스트 suite를 작성해주세요.

테스트 구조:
1. 단위 테스트 (각 할인 정책별)
2. 통합 테스트 (할인 조합 시나리오)
3. 성능 테스트 (대량 할인 계산)
4. 엣지 케이스 테스트

테스트 시나리오:

단위 테스트:
- 각 할인 정책 개별 동작 검증
- 할인 제한 조건 테스트
- 잘못된 입력값 처리 테스트

통합 테스트:
- 복잡한 할인 조합 시나리오
  * 신규 VIP 회원의 주말 야간 다량 주문
  * 생일 월 장기 회원의 클래식 도서 주문
  * 최대 할인 제한 적용 시나리오
- 할인 적용 순서 검증
- 할인 이력 추적 검증

성능 테스트:
- 1000개 도서 동시 할인 계산
- 캐시 적중률 측정
- 메모리 사용량 모니터링

엣지 케이스:
- 할인율이 100%를 초과하는 경우
- 음수 가격 처리
- 동시성 문제 (같은 할인 정책 동시 적용)
- 타임존 관련 시간대 할인 이슈

테스트 요구사항:
1. Jest + TypeScript 사용
2. 95% 이상 코드 커버리지
3. Given-When-Then 패턴 적용
4. 테스트 데이터 Builder 패턴 활용
5. 모든 비즈니스 규칙 검증
6. 실행 시간 5초 이내
7. 병렬 실행 가능한 독립적 테스트

각 테스트마다:
- 명확한 테스트 목적 설명
- 비즈니스 규칙과의 연관성 명시
- 실패 시 의미있는 에러 메시지
- AAA 패턴 (Arrange-Act-Assert) 적용

추가 요청:
- 테스트 데이터 팩토리 클래스
- 테스트 헬퍼 유틸리티
- 성능 측정 및 리포팅 도구
- CI/CD 파이프라인 통합 방안

5) API 설계와 문서화

비즈니스 로직이 구현되었다면 이를 외부에 노출할 API를 설계합니다.

 

API 설계 프롬프트 (비즈니스 중심)

도서 대여 서비스의 RESTful API를 설계하고 구현해주세요.

비즈니스 요구사항:
- 사용자는 직관적으로 API를 이해할 수 있어야 함
- 복잡한 비즈니스 규칙이 API 레벨에서 명확히 표현되어야 함
- 에러 메시지는 비즈니스 도메인 관점에서 작성
- API 버저닝을 통한 하위 호환성 보장

설계할 API 엔드포인트:

1. 사용자 관리
   - POST /api/v1/users/register
   - POST /api/v1/users/login
   - GET /api/v1/users/profile
   - PUT /api/v1/users/profile

2. 구독 관리
   - GET /api/v1/subscriptions/plans
   - POST /api/v1/subscriptions/subscribe
   - PUT /api/v1/subscriptions/upgrade
   - DELETE /api/v1/subscriptions/cancel

3. 도서 관리
   - GET /api/v1/books/search
   - GET /api/v1/books/:id
   - GET /api/v1/books/:id/availability
   - POST /api/v1/books/:id/reserve

4. 대여 관리
   - POST /api/v1/rentals/calculate-price
   - POST /api/v1/rentals/create
   - GET /api/v1/rentals/my-rentals
   - PUT /api/v1/rentals/:id/extend
   - POST /api/v1/rentals/:id/return

5. 결제 관리
   - POST /api/v1/payments/process
   - GET /api/v1/payments/history
   - POST /api/v1/payments/refund

특별 요구사항:

1. 복잡한 할인 미리보기 API
   - 실제 결제 전 할인 적용 결과 확인
   - 할인 breakdown 상세 정보 제공

2. 비즈니스 규칙 위반 시 명확한 에러 응답
   - 대여 한도 초과 시 상세 정보
   - 연체 상태 시 해결 방안 제시
   - 재고 부족 시 대기열 정보

3. 실시간 상태 업데이트 API
   - 대여 프로세스 진행 상황
   - 배송 상태 추적
   - 반납 처리 상태

구현 요구사항:
1. Express.js + TypeScript
2. OpenAPI 3.0 스펙 준수
3. 자동 API 문서 생성 (Swagger)
4. 입력값 검증 (Joi/Yup)
5. 인증/인가 미들웨어
6. 요청/응답 로깅
7. 에러 핸들링 미들웨어
8. 버전 관리 전략

비즈니스 친화적 응답 형식:
- 성공 응답에 비즈니스 의미 포함
- 에러 응답에 사용자 액션 가이드
- 할인 정보 상세 breakdown
- 대여 가능 여부 명확한 표시

제공해주세요:
1. 전체 API 라우터 구현
2. 각 엔드포인트별 컨트롤러
3. 요청/응답 DTO 정의
4. 미들웨어 구현
5. OpenAPI 스펙 문서
6. 에러 처리 전략
7. API 테스트 코드
8. 사용자 가이드 문서

 

5. 참고 할 만한 것들   

Augment Code의 공식 홈페이지, 유료서비스
AugmentCode 홈페이지, 유료서비스

  • CODEGPT : https://codegpt.co/,   기업형 대규모 프로젝트를 진행하기 위한 AI-Augmented 코딩지원

CODEGPT의 공식 홈페이지, 유료서비스
CODEGPT 홈페이지, 유료서비스

6. 글을 마치며:

글의 서두에서 말씀드린것 처럼, 현재 등장하고 있는 AI들은 나 만을 위한 인공지능 비서가 아니며 익명의 사용자의 요청에 어느 정도의 똑똑한 응답을 하도록 설계된 제품들입니다. 이러한 AI에게 내가 요구하는 사항을 하나라도 더 자세하게 설명해야만, 진정으로 내가 활용할 수 있는 나의 비서가 될 수 있습니다.

요청과 결과물은 평등합니다. 

 

[ AI코딩 활용을 위한 개발자 가이드 연재 목록 ]