본문 바로가기

AI

AI 러버블 코딩

반응형

AI 러버블 코딩(AI Rubberband Coding)에 대한 소개 및 활용 가이드


 AI 러버블 코딩이란?

AI 러버블 코딩**은 *AI가 생성한 코드나 로직이 초기에는 불완전하거나 이상해 보여도, 개발자가 점진적으로 수정·보완하면서 마치 러버밴드처럼 유연하게 늘어나고 되돌아오는 방식으로 협업하는 개발 패턴*을 말합니다.

- 러버밴드(Rubberband)** = 늘어났다 다시 원래 상태로 돌아가는 성질 → **유연성과 복원력**
- AI가 생성한 코드**는 처음엔 틀릴 수 있지만, 개발자의 피드백을 통해 점차 정확해짐
- 개발자는 ‘지시자’가 아니라 ‘코디네이터’**가 됨


핵심 개념 3가지:
1. 완벽한 코드를 기대하지 않는다 — 초기 출력은 “골격”일 뿐
2. 작은 수정 → 즉각 피드백 → 반복 개선**을 기본 루프로 삼는다
3. AI는 도구가 아니라 파트너 — 인간의 직관과 AI의 확장성을 결합

예: ChatGPT가 “Python으로 웹 크롤러를 만들어줘”라고 요청했을 때, 첫 번째 응답은 오류가 많고 모듈이 누락되어 있을 수 있습니다.  
> 하지만 “이 부분은 requests 대신 selenium이 필요해”, “이 로직은 동기식이라 느려” 같은 피드백을 주면, AI는 즉시 수정하고 더 나은 버전을 제안합니다.  
> 이것이 바로 **러버블 코딩**입니다.



AI 러버블 코딩 활용 가이드 (5단계)

Step 1: **명확한 “골격 요청”부터 시작하세요**
>  “웹사이트 만드세요”  
>  “Flask로 간단한 메모장 앱을 만들고, POST로 데이터 저장 후 리스트로 보여주세요. DB는 SQLite 사용”

→ AI는 구체적인 요청일수록 더 정확한 코드를 생성합니다.  
초기 코드는 완성형이 아닙니다. **핵심 구조만 잡아주는 ‘시edList’**로 생각하세요.

Step 2: **실행 → 오류 발생 → AI에게 설명**
```python
# AI가 생성한 코드
import requests
response = requests.get("https://api.example.com/data")
print(response.json())
```
→ `ModuleNotFoundError: No module named 'requests'`

👉 **AI에게 이렇게 말하세요:**  
> “이 코드를 실행하면 ‘requests’ 모듈이 없다고 에러납니다. pip install로 설치하려면 어떻게 해야 하나요? 그리고 예외 처리도 추가해줘.”

→ AI는 이제 **패키지 설치 방법 + try-except 예외 처리**까지 자동으로 보완해 줍니다.

Step 3: **“왜 이렇게 했어?” 질문하기**
AI가 생성한 코드 중 의문스러운 부분이 있다면, **그 이유를 물어보세요**.

> “이 for문을 while로 바꾸면 안 될까요? 왜 for를 선택했나요?”

→ AI는 알고리즘 선택 근거, 성능 비교, Pythonic한 관습 등을 설명해주며, **당신의 사고를 확장**시킵니다.

Step 4: **코드 리뷰를 AI에게 맡기기**
완성된 코드를 AI에게 던지세요:

> “이 코드를 리뷰해줘. 보안 취약점, 성능 병목, PEP8 위반 여부를 알려줘.”

→ AI는 주석 없이도 **스타일 검사, 주입 공격 가능성, 메모리 누수** 등을 분석해줍니다.  
(실제로 GitHub Copilot이나 Cursor 같은 도구는 이 기능을 내장하고 있음)

Step 5: **역으로 AI에게 “이걸 어떻게 개선할 수 있을까?” 묻기**
> “이 스크립트를 10배 빠르게 만들 수 있는 방법이 있을까?”

→ AI는 병렬 처리, 캐싱, 비동기화 등 고급 최적화 전략을 제안합니다.  
이때 당신은 “그건 너무 복잡해”라고 말할 수도 있고, “이걸 적용해봐!”라고 지시할 수도 있습니다.  
**여기서 러버밴드가 가장 잘 늘어납니다.**



실제 활용 사례: 프로젝트 속 AI 러버블 코딩

사례: 간단한 PDF 요약 도구 만들기

| 단계 | 행동 | AI의 반응 |
|------|------|------------|
| 1 | “PDF 파일을 읽고 텍스트를 추출해줘” | PyPDF2 사용법 제공 → but 한글 깨짐 |
| 2 | “한글이 깨져. pdfplumber로 바꿔줄 수 있어?” | 코드 수정 → 한글 지원 완료 |
| 3 | “이 텍스트를 요약해줘” | Summarization API 호출 코드 제공 → but GPT-3.5 API 키 필요 |
| 4 | “로컬 LLM인 Llama 3로 바꿔줄 수 있어?” | Ollama + HuggingFace 로컬 모델 통합 코드 제공 |
| 5 | “UI도 붙여줘. Streamlit으로” | 전체 웹 인터페이스 생성 → 이제 완성! |


주의사항: 러버블 코딩의 함정

| 함정 | 해결책 |
|------|--------|
| **AI의 잘못된 코드를 무조건 믿음** | 항상 실행하고, 문서 확인하고, 소스 검증 |
| **피드백이 모호함** | “이 부분이 안 돼” → “이 함수가 None을 반환해서 에러남”으로 구체화 |
| **AI에 의존过度** | 핵심 로직은 스스로 이해하고, AI는 “보조 도구”로 사용 |
| **코드 품질 저하** | AI 생성 코드는 반드시 리뷰, 테스트, 주석 달기 |


GitHub Copilot 공식 가이드 – https://github.com/features/copilot 



반응형