본문 바로가기

AI Vibe Coding

초보자가 AI를 맡기면 안 되는 것 vs 맡기면 좋은 것

AI 로봇과 개발자가 협업하는 모습, 한쪽은 ✅, 다른 쪽은 ❌ 표시

 

🎯 시작하며

"AI한테 물어보면 다 해준다던데요?"

코딩을 처음 시작하는 분들이 가장 많이 하는 오해입니다. ChatGPT나 Claude 같은 AI가 나오면서 "이제 코딩 공부 안 해도 되는 거 아니야?"라고 생각하기 쉽죠.

결론부터 말씀드리면: 반은 맞고, 반은 틀렸습니다.

AI는 정말 강력한 도구지만, 마치 자동차처럼 운전법을 모르면 아무 소용이 없습니다. 오늘은 코딩 초보자가 AI를 활용할 때 맡겨도 되는 일직접 해야 하는 일을 명확히 구분해보겠습니다.

 
 
mermaid
graph LR
    A[코딩 학습] --> B[AI에게 맡기기 ✅]
    A --> C[직접 하기 ❌]
    B --> D[반복 작업<br/>디버깅<br/>예제 생성]
    C --> E[개념 이해<br/>설계<br/>문제 해결]
    style B fill:#90EE90
    style C fill:#FFB6C1

AI는 도구일 뿐, 사고력은 당신이 키워야 합니다


✅ AI에게 맡기면 좋은 것들

5개의 아이콘으로 구성 - 반복 작업(순환 화살표), 디버깅(벌레+돋보기), 리팩토링(빗자루), 문서화(책), 예제(전구)

 

1. 반복적이고 단순한 코드 작성

AI는 패턴이 있는 반복 작업을 매우 잘 처리합니다.

예제: HTML 테이블 만들기

❌ 직접 하면: 30분 걸리는 작업

✅ AI에게 맡기면: 
"5개 열, 10개 행의 상품 목록 테이블을 HTML로 만들어줘. 
열은 상품명, 가격, 재고, 카테고리, 버튼으로 구성해줘"

→ AI가 10초 만에 완성해줍니다.

 

예제: 데이터 변환

python
# 이런 반복 작업은 AI에게 맡기세요
"JSON 데이터를 CSV로 변환하는 파이썬 코드 작성해줘"
"100개의 이미지 파일명을 일괄 변경하는 스크립트 만들어줘"

💡 TIP: 단순하고 명확한 작업일수록 AI 활용도가 높습니다.


2. 문법 에러 찾기 & 디버깅

초보자가 가장 많이 겪는 문제가 "왜 안 되지?"입니다.

실전 예제

javascript
// 당신의 코드 (에러 발생)
function calculateTotal(prices) {
    let total = 0;
    for (let i = 0; i <= prices.length; i++) {
        total += prices[i];
    }
    return total;
}

AI에게 이렇게 물어보세요:

"이 코드에서 에러가 나는데 왜 그런지 설명해줘"

AI의 답변:

"prices.length가 5라면, i가 5일 때 prices[5]는 undefined입니다.
배열 인덱스는 0부터 시작하므로 i < prices.length로 수정하세요."

 

활용 팁

  • 에러 메시지를 그대로 복사해서 AI에게 붙여넣기
  • "왜 이 코드가 작동하지 않는지 단계별로 설명해줘"라고 요청

3. 코드 리팩토링 & 개선

작동하는 코드를 더 깔끔하게 만들고 싶을 때 AI는 훌륭한 선배 개발자가 됩니다.

예제: 길고 복잡한 코드 개선

javascript
// 내가 작성한 코드 (작동은 하지만 지저분함)
function checkUserAge(user) {
    if (user.age) {
        if (user.age >= 18) {
            if (user.verified) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    } else {
        return false;
    }
}

AI에게 요청:

"이 코드를 더 간결하게 리팩토링해줘. 
가독성도 좋게 만들어줘"

AI의 개선 코드:

javascript
function checkUserAge(user) {
    return user.age >= 18 && user.verified;
}

놀랍게도 10줄이 1줄로!

 
 
mermaid
graph TD
    A[복잡한 코드<br/>10줄] -->|AI 리팩토링| B[간결한 코드<br/>1줄]
    A -->|가독성 ⬇️| C[이해하기 어려움]
    B -->|가독성 ⬆️| D[한눈에 이해 가능]
    style A fill:#FFE4E1
    style B fill:#E1FFE4

코드는 짧을수록 좋은 게 아니라, 읽기 쉬울수록 좋습니다


4. 주석 & 문서 작성

코드는 썼는데 설명하기 어려울 때, AI가 대신 설명해줍니다.

예제

python
# AI에게 요청: "이 코드에 초보자가 이해하기 쉬운 주석 달아줘"

def fibonacci(n):
    """
    피보나치 수열의 n번째 숫자를 반환합니다.
    
    Args:
        n (int): 구하고자 하는 피보나치 수의 위치 (0부터 시작)
        
    Returns:
        int: n번째 피보나치 숫자
        
    예시:
        fibonacci(0) → 0
        fibonacci(5) → 5
        fibonacci(10) → 55
    """
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

5. 학습용 예제 코드 생성

새로운 개념을 배울 때 다양한 예제가 필요합니다.

활용 예제

"Python 리스트 컴프리헨션을 3가지 난이도로 예제 만들어줘"
"React Hooks 중 useState를 실제 프로젝트에서 쓸 만한 예제 5개 보여줘"
"SQL JOIN을 음식점 데이터베이스로 설명해줘"

→ AI는 다양한 각도에서 설명하고 예제를 만들어줍니다.


❌ AI에게 맡기면 안 되는 것들

경고 표시와 함께 5개 아이콘 - 설계도(청사진), 퍼즐 조각(이해), 톱니바퀴(비즈니스 로직), 속도계(최적화), 공구(디버깅)

 

1. 프로젝트 설계 & 아키텍처 결정

"웹사이트 만들어줘"라고만 하면 AI는 당신의 의도를 제대로 파악하지 못합니다.

나쁜 예

"쇼핑몰 웹사이트 만들어줘"

→ AI는 일반적인 템플릿만 줄 뿐, 당신의 비즈니스 요구사항을 모릅니다.

 

좋은 접근

1. 먼저 당신이 설계: 
   - 어떤 페이지가 필요한가?
   - 사용자 플로우는?
   - 필수 기능은 무엇인가?

2. 그 다음 AI 활용:
   - "로그인 페이지의 폼 검증 로직 작성해줘"
   - "장바구니에 상품 추가하는 함수 만들어줘"
 
 
mermaid
flowchart TD
    A[프로젝트 시작] --> B{설계는 누가?}
    B -->|AI에게 맡김 ❌| C[일반적인 템플릿만 받음]
    B -->|내가 직접 ✅| D[구체적인 요구사항 정리]
    C --> E[프로젝트 실패 위험 ⬆️]
    D --> F[AI에게 세부 구현 요청]
    F --> G[프로젝트 성공 확률 ⬆️]
    style C fill:#FFB6C1
    style E fill:#FFB6C1
    style D fill:#90EE90
    style F fill:#90EE90
    style G fill:#90EE90

💡 핵심: 큰 그림은 당신이 그리고, 부품은 AI가 만들게 하세요.


2. 코드 이해 없이 복사 붙여넣기

이것이 가장 위험한 함정입니다.

실제 사례

 
 
python
# AI가 만든 코드 (보안 이슈 있음)
import pickle

def load_user_data(filename):
    with open(filename, 'rb') as f:
        return pickle.load(f)  # ⚠️ 보안 취약점!

초보자는 pickle.load가 위험한지 모르고 그대로 사용합니다. → 해커가 악성 파일을 올리면 시스템 전체가 위험해질 수 있습니다.

올바른 접근

 
 
1. AI 코드를 받는다
2. "이 코드의 각 줄이 무슨 역할을 하는지 설명해줘" 요청
3. "이 코드의 보안 문제는 없는지 검토해줘" 추가 질문
4. 이해한 후에 사용
 
 
mermaid
sequenceDiagram
    participant 개발자
    participant AI
    participant 프로젝트
    
    개발자->>AI: 코드 요청
    AI->>개발자: 코드 제공
    
    rect rgb(255, 200, 200)
    Note over 개발자,프로젝트: ❌ 나쁜 방법
    개발자->>프로젝트: 그대로 복사 붙여넣기
    프로젝트-->>개발자: 보안 문제 발생!
    end
    
    rect rgb(200, 255, 200)
    Note over 개발자,프로젝트: ✅ 좋은 방법
    개발자->>AI: 코드 설명 요청
    AI->>개발자: 상세 설명 제공
    개발자->>AI: 보안 검토 요청
    AI->>개발자: 문제점 지적
    개발자->>개발자: 이해하고 수정
    개발자->>프로젝트: 안전한 코드 적용
    end

AI 코드는 참고 자료이지, 복사본이 아닙니다


3. 복잡한 비즈니스 로직

당신의 비즈니스 규칙은 AI가 모릅니다.

예제: 할인 정책

 
 
❌ AI에게만 맡기면:
"할인 계산 로직 만들어줘"

→ AI는 일반적인 10%, 20% 할인만 구현

✅ 당신이 명확히 설명해야 함:
"VIP 고객은 15% 기본 할인 + 
10만원 이상 구매시 추가 5% + 
생일 달에는 10% 추가 + 
단, 최대 할인율은 30%까지만 적용"

비즈니스 로직은 당신만 알고 있습니다!


4. 최적화 & 성능 튜닝

AI는 작동하는 코드를 주지만, 항상 최적인 것은 아닙니다.

예제

 
 
python
# AI가 만든 코드 (작동하지만 느림)
def find_duplicates(numbers):
    duplicates = []
    for i in range(len(numbers)):
        for j in range(i+1, len(numbers)):
            if numbers[i] == numbers[j]:
                duplicates.append(numbers[i])
    return duplicates

# 시간 복잡도: O(n²) → 데이터가 많으면 매우 느림

당신이 배워야 할 것:

  • 시간 복잡도 개념
  • 어떤 상황에서 어떤 자료구조를 써야 하는지
  • 프로파일링 도구 사용법

5. 에러 해결의 완전한 의존

AI는 힌트를 주지만, 디버깅 능력은 당신이 키워야 합니다.

문제 상황

 
 
코드가 "가끔" 오류가 난다
데이터가 "이상하게" 나온다
"특정 상황"에서만 문제가 생긴다

→ AI에게 물어봐도 정확한 답을 얻기 어렵습니다.

당신이 배워야 할 것:

  • console.log / print 문으로 디버깅하기
  • 브라우저 개발자 도구 사용법
  • 에러 메시지 읽는 법
  • 스택 트레이스 이해하기

🎓 실전 활용 전략

황금률: 70-30 규칙

  • 70%: AI를 활용해 빠르게 구현
  • 30%: 직접 이해하고 수정하며 학습
 
 
mermaid
pie title 효과적인 학습 시간 배분
    "AI 활용 (구현)" : 70
    "직접 학습 (이해)" : 30
파이 차트 또는 막대 그래프로 70%(녹색)와 30%(파란색) 비율 표시

 

단계별 학습 로드맵

mermaid
timeline
    title AI 활용 코딩 학습 로드맵
    section 1단계 (첫 달)
        기본 문법 학습
        : AI로 예제 생성
        : 직접 개념 이해
        : 조건문, 반복문 마스터
    section 2단계 (2-3개월)
        실전 프로젝트 시작
        : AI로 API 연동
        : 직접 데이터 설계
        : 프로그램 흐름 구성
    section 3단계 (4-6개월)
        고급 기술 습득
        : AI로 테스트 코드
        : 직접 최적화 작업
        : 아키텍처 설계

1단계 (첫 달)

✅ AI로 하기: 기본 문법 예제 생성, 간단한 함수 작성
❌ 직접 하기: 조건문, 반복문, 변수 개념 이해

 

2단계 (2-3개월)

✅ AI로 하기: API 연동 코드, 라이브러리 사용법
❌ 직접 하기: 데이터 구조 설계, 프로그램 플로우 구성

 

3단계 (4-6개월)

✅ AI로 하기: 보일러플레이트 코드, 테스트 코드 작성
❌ 직접 하기: 성능 최적화, 아키텍처 설계, 보안 검토
3단계 로드맵을 계단식 또는 화살표로 연결한 인포그래픽

 


💡 실전 팁: AI와 대화하는 법

왼쪽(빨간색X)에 나쁜 질문 예시, 오른쪽(녹색O)에 좋은 질문 예시를 대조적으로 배치

 

나쁜 질문

"웹사이트 만들어줘"
"로그인 기능 코드 줘"
"이거 고쳐줘"

좋은 질문

"React로 이메일 유효성 검사하는 함수를 만들고 싶어.
정규표현식을 사용하고, 에러 메시지도 반환하도록 해줘.
코드와 함께 각 부분이 무슨 역할인지 주석으로 설명해줘."
 
 
mermaid
graph LR
    A[나쁜 질문] --> B[모호한 요청]
    B --> C[일반적인 답변]
    
    D[좋은 질문] --> E[구체적 요청<br/>맥락 제공]
    E --> F[맞춤형 답변<br/>학습 가능]
    
    style A fill:#FFB6C1
    style B fill:#FFB6C1
    style C fill:#FFB6C1
    style D fill:#90EE90
    style E fill:#90EE90
    style F fill:#90EE90

 

핵심 공식

좋은 질문 = 맥락 + 구체적 요구사항 + 학습 의도

🎯 마치며

AI는 당신의 코딩 선생님이자 비서입니다. 대신 모든 걸 해주는 로봇이 아닙니다.

mermaid
mindmap
  root((AI 활용<br/>코딩))
    AI가 할 일 ✅
      반복 작업
      디버깅
      리팩토링
      문서화
      예제 생성
    내가 할 일 ❌
      설계
      이해
      비즈니스 로직
      최적화
      문제 해결
    핵심 원칙
      70% AI 활용
      30% 직접 학습
      항상 이해하고 사용

기억하세요:

  1. AI가 작성한 코드는 항상 이해하고 사용하기
  2. 복잡한 결정은 당신이 직접 하기
  3. AI로 시간을 아낀 만큼, 학습에 더 투자하기

3가지 핵심 원칙을 아이콘과 함께 카드 형태로 정리

 

프로그래밍 실력은 AI를 얼마나 잘 활용하느냐가 아니라, 문제를 어떻게 정의하고 해결책을 설계하느냐에 달려 있습니다.

다음 시간에는 "AI에게 효과적으로 질문하는 프롬프트 작성법"을 다뤄보겠습니다!


💬 여러분의 경험을 댓글로 공유해주세요:

  • AI로 코딩할 때 가장 어려웠던 점은?
  • AI가 정말 도움이 됐던 순간은?
  • AI 때문에 오히려 더 헷갈렸던 경험은?

다음 글이 기대되신다면 구독과 좋아요 부탁드립니다! 👍


📚 다음 글 예고

[AI바이브코딩 학습 #2]
"AI에게 100배 더 좋은 답을 받는 질문법 - 프롬프트 엔지니어링 기초"

  • 모호한 질문 vs 명확한 질문
  • 맥락 제공의 중요성
  • 단계별 질문 전략
  • 실전 프롬프트 템플릿 10가지