AI로 파이썬 실전 프로젝트 완성하기 — 초보도 만들 수 있는 3가지

AI로 파이썬 실전 프로젝트 완성하기 — 초보도 만들 수 있는 3가지

이 글은 "AI와 함께 파이썬 공부하기" 시리즈 3편이자 마지막 편이다. AI 파이썬 학습 도구 선택과 마인드셋을 다룬 1편AI 활용 학습 루틴을 정리한 2편을 먼저 읽으면 이해가 빠르다.

이 글은 2026년 6월 기준으로 작성됐다.

"파이썬 배웠는데 뭘 만들어야 하지?" 이 질문에서 멈추는 사람이 많다. 프로젝트는 거창할 필요 없다. 작은 것을 완성하는 경험이 실력을 만든다. 이번 편에서는 입문자가 AI와 함께 실제로 완성할 수 있는 프로젝트 세 가지를 단계별로 다룬다.


프로젝트 전 준비 — AI와 협업하는 방식

프로젝트를 시작하기 전에 협업 구조를 정해두면 나중에 흔들리지 않는다. AI와 일할 때 지켜야 할 규칙은 단순하다.

내가 한다            AI가 한다
──────────────────────────────────
무엇을 만들지 결정    구현 방법 제안
코드를 직접 작성      내 코드 리뷰
에러 원인 먼저 추리   막힐 때 힌트 제공
기능 설계            내 설계 검토

전략은 하나다. AI는 짝 프로그래머(pair programmer)로 쓴다. 나를 대신하는 게 아니라 옆에서 같이 생각하는 역할.

Cursor 기본 세팅 (처음이라면)

Cursor 공식 사이트에서 설치한 뒤, 파이썬이 설치되어 있는지 확인한다.

python --version  # Python 3.10 이상 권장

설치가 안 돼 있다면 Python 공식 다운로드 페이지에서 받는다. Windows는 설치 시 "Add Python to PATH" 체크가 필수다.


프로젝트 1 — 날씨 조회 터미널 앱

배우는 것: API 호출, JSON 파싱, 외부 라이브러리 설치
난이도: ⭐⭐☆☆☆
예상 시간: 1~2시간

도시 이름을 입력하면 현재 날씨를 출력하는 간단한 프로그램이다. 크게 어렵지 않지만 API 키 발급, HTTP 요청, JSON 처리라는 실무에서 자주 쓰는 패턴을 한꺼번에 익힌다.

1단계 — 기획을 AI에게 검토받는다

코드를 짜기 전에 먼저 AI에게 기획을 설명한다.

"터미널에서 도시 이름을 입력하면 날씨를 출력하는
  파이썬 프로그램을 만들려고 해.
  어떤 기능이 필요한지 목록으로 정리해줘.
  그리고 무료로 쓸 수 있는 날씨 API 하나만 추천해줘."

ChatGPT는 OpenWeatherMap API를 추천한다. 무료 플랜이 있고, 파이썬 입문자에게 적합하다. API 키 발급은 사이트에서 회원가입 후 바로 받을 수 있다.

2단계 — 뼈대를 직접 설계한다

AI에게 "코드 짜줘"라고 하지 않는다. 먼저 내가 어떻게 만들지 설계한다.

# weather.py 뼈대 (직접 작성)

# 1. 도시 이름 입력받기
# 2. API URL 조합하기
# 3. requests로 API 호출하기
# 4. JSON 응답에서 온도·날씨 꺼내기
# 5. 터미널에 출력하기

주석만 써도 된다. 이 구조를 Cursor에 붙여넣고 각 단계를 하나씩 채워나간다.

3단계 — 모르는 부분만 AI에게 묻는다

"파이썬에서 외부 API를 GET 요청으로 호출하고
  JSON 응답을 딕셔너리로 받는 코드 예제를 보여줘.
  requests 라이브러리 기준으로."

직접 해본 결과, 입문자가 가장 막히는 부분은 JSON에서 원하는 값을 꺼내는 것이다. OpenWeatherMap 응답 구조는 이렇게 생겼다.

{
  "name": "Seoul",
  "main": {
    "temp": 28.5,
    "humidity": 60
  },
  "weather": [
    {"description": "맑음"}
  ]
}

weather[0]["description"]처럼 리스트 안에 딕셔너리가 중첩된 구조가 낯설면, 바로 AI에게 물어본다.

"JSON에서 중첩된 리스트-딕셔너리 구조를 접근하는 방법을
  위 예시를 가지고 설명해줘."

완성 코드 예시

# 도시 날씨를 OpenWeatherMap API로 조회하는 터미널 앱
import requests

API_KEY = "여기에_발급받은_API_키_입력"
BASE_URL = "https://api.openweathermap.org/data/2.5/weather"

def get_weather(city: str) -> None:
    params = {
        "q": city,
        "appid": API_KEY,
        "units": "metric",   # 섭씨
        "lang": "kr"         # 한국어 날씨 설명
    }
    response = requests.get(BASE_URL, params=params)

    if response.status_code != 200:
        print(f"❌ 도시를 찾을 수 없습니다: {city}")
        return

    data = response.json()
    temp = data["main"]["temp"]
    desc = data["weather"][0]["description"]
    humidity = data["main"]["humidity"]

    print(f"\n📍 {city}")
    print(f"🌡️  기온: {temp}°C")
    print(f"🌤  날씨: {desc}")
    print(f"💧 습도: {humidity}%")

if __name__ == "__main__":
    city = input("도시 이름을 입력하세요 (영문): ")
    get_weather(city)

이 코드를 짠 뒤, Cursor에서 Ctrl+L을 열고 이렇게 물어본다.

"이 코드에서 API_KEY를 하드코딩하면 보안 문제가 있어.
  .env 파일로 분리하는 방법을 알려줘."

.env 파일과 python-dotenv 라이브러리로 키를 분리하는 것까지 해보면 실무 수준의 보안 습관이 몸에 익는다.


프로젝트 2 — 영단어 퀴즈 앱

배우는 것: 파일 입출력, 딕셔너리, 랜덤 모듈, 점수 집계
난이도: ⭐☆☆☆☆
예상 시간: 1시간

파이썬 기초만 알아도 완성할 수 있다. 외부 API도 없고, 라이브러리 설치도 필요 없다. 그만큼 "내가 만들었다"는 성취감은 확실하다.

설계부터 함께

"터미널에서 영단어 퀴즈를 내는 프로그램을 만들려고 해.
  단어-뜻 목록은 딕셔너리로 하드코딩할 거야.
  랜덤으로 단어를 뽑아서 뜻을 물어보고,
  맞추면 점수를 올리고, 10문제 뒤 결과를 보여줘.
  내가 직접 구현할 수 있도록 이 기능들을 함수 단위로
  어떻게 나눌지 설계만 해줘. 코드는 쓰지 마."

"코드는 쓰지 마"를 명시하는 게 중요하다. 설계를 먼저 받고, 구현은 직접 한다.

완성 코드 예시

# 랜덤 영단어 퀴즈를 내고 점수를 집계하는 터미널 앱
import random

WORDS = {
    "apple": "사과",
    "banana": "바나나",
    "computer": "컴퓨터",
    "keyboard": "키보드",
    "library": "도서관",
    "mountain": "산",
    "ocean": "바다",
    "python": "파이썬(프로그래밍 언어)",
    "window": "창문",
    "garden": "정원",
}

def run_quiz(total: int = 10) -> None:
    words = random.sample(list(WORDS.items()), min(total, len(WORDS)))
    score = 0

    for i, (word, answer) in enumerate(words, start=1):
        print(f"\n[{i}/{total}] '{word}'의 뜻은?")
        guess = input("답: ").strip()

        if guess == answer:
            print("✅ 정답!")
            score += 1
        else:
            print(f"❌ 오답. 정답은 '{answer}'")

    print(f"\n🎯 최종 점수: {score}/{total}")

if __name__ == "__main__":
    print("=== 영단어 퀴즈 ===")
    run_quiz()

완성 후 AI에게 이렇게 물어보자.

"단어 목록을 .txt 파일에서 읽어오도록 확장하고 싶어.
  어떤 파일 형식이 파이썬에서 읽기 쉬울까?
  CSV랑 JSON 중에 뭐가 나아? 이유도 설명해줘."

이 질문 하나에서 파일 입출력, CSV, JSON 세 가지 개념을 동시에 배울 수 있다.


프로젝트 3 — 가계부 CSV 분석기

배우는 것: CSV 파일 처리, pandas 기초, 데이터 집계, 조건 필터링
난이도: ⭐⭐⭐☆☆
예상 시간: 2~3시간

가장 실용적인 프로젝트다. 실제 지출 데이터를 CSV로 저장하고, 파이썬으로 월별·카테고리별 지출을 분석한다. 데이터 분석의 입문이기도 하다.

샘플 데이터 만들기

먼저 테스트용 CSV를 만든다. AI에게 요청하면 바로 만들어준다.

"가계부 CSV 파일 샘플 데이터를 10행만 만들어줘.
  컬럼은 날짜, 카테고리, 항목, 금액으로 구성.
  카테고리는 식비, 교통, 쇼핑, 구독 중에서 랜덤하게."

expenses.csv 파일을 만들고 샘플 데이터를 붙여넣는다.

날짜,카테고리,항목,금액
2026-06-01,식비,점심,12000
2026-06-02,교통,지하철,1400
2026-06-03,쇼핑,책,18000
2026-06-04,구독,넷플릭스,17000
2026-06-05,식비,저녁,23000
2026-06-07,교통,택시,9500
2026-06-08,식비,카페,6500
2026-06-10,쇼핑,옷,45000
2026-06-12,식비,점심,11000
2026-06-15,구독,스포티파이,10900

pandas 설치 및 분석 코드

pip install pandas
# CSV 가계부 데이터를 읽어 카테고리별 지출을 분석하는 스크립트
import pandas as pd

def analyze_expenses(filepath: str) -> None:
    df = pd.read_csv(filepath)

    total = df["금액"].sum()
    print(f"\n💰 총 지출: {total:,}원")

    print("\n📊 카테고리별 지출:")
    by_category = df.groupby("카테고리")["금액"].sum().sort_values(ascending=False)
    for category, amount in by_category.items():
        ratio = amount / total * 100
        print(f"  {category}: {amount:,}원 ({ratio:.1f}%)")

    print("\n🔝 지출 TOP 3:")
    top3 = df.nlargest(3, "금액")[["날짜", "항목", "금액"]]
    for _, row in top3.iterrows():
        print(f"  {row['날짜']} | {row['항목']} | {row['금액']:,}원")

if __name__ == "__main__":
    analyze_expenses("expenses.csv")

직접 실행해 보면 이런 출력이 나온다.

💰 총 지출: 154,300원

📊 카테고리별 지출:
  쇼핑: 63,000원 (40.8%)
  식비: 52,500원 (34.0%)
  구독: 27,900원 (18.1%)
  교통: 10,900원 (7.1%)

🔝 지출 TOP 3:
  2026-06-10 | 옷 | 45,000원
  2026-06-08 | 저녁 | 23,000원
  2026-06-03 | 책 | 18,000원

AI로 기능 확장하기

완성하고 나서 이렇게 물어본다.

"이 분석기에 '이번 달 식비가 예산(50,000원)을 넘었는지'
  경고를 출력하는 기능을 추가하고 싶어.
  어느 부분에 코드를 추가하면 될지 힌트만 줘."

스스로 추가해보고 막히면 다시 힌트를 받는다. 이 과정에서 조건문, 딕셔너리, 함수 분리 개념이 자연스럽게 엮인다. pandas 공식 문서는 기능이 필요할 때마다 찾아보는 레퍼런스로 두면 좋다.


프로젝트를 마친 뒤 해야 할 것

하나를 완성했으면, 바로 다음 프로젝트로 넘어가지 않는다. 완성한 코드를 AI에게 전체 리뷰 받는다.

"내가 만든 아래 코드를 전반적으로 리뷰해줘.

  [전체 코드 붙여넣기]

  1. 코드 구조가 적절한가?
  2. 변수명·함수명이 명확한가?
  3. 예외 처리가 필요한 부분이 빠져 있나?
  4. 파이썬 초보자 수준에서 한 단계 개선할 포인트 하나."

이 리뷰 한 번이 코드를 완성한 것 이상의 학습 효과를 준다. 내가 놓친 관점을 한꺼번에 볼 수 있기 때문이다.


자주 묻는 질문 (FAQ)

Q. 프로젝트를 시작하는데 파이썬 기초가 얼마나 있어야 하나요? A. 변수, 조건문, 반복문, 함수 개념을 어느 정도 알면 프로젝트 1번과 2번은 충분히 시작할 수 있다. pandas가 들어가는 3번은 기초 문법을 먼저 손에 익힌 뒤 도전하는 게 좋다.

Q. AI가 짜준 코드를 그냥 써도 되나요? A. 완성된 코드를 통째로 받아 쓰는 건 가급적 피한다. 핵심 로직은 내가 짜고, 막히는 부분에서 힌트를 받는 방식이 실력을 키운다. AI 코드가 나왔다면 한 줄씩 읽고 이해한 뒤 쓴다.

Q. 프로젝트를 완성하면 어디에 올리면 좋을까요? A. GitHub이 가장 좋다. README.md를 간단히 적어서 올리면 포트폴리오가 된다. AI에게 "내 프로젝트 README를 어떻게 쓸지 도와줘"라고 요청하면 구조를 잡아준다.

Q. 세 가지 프로젝트를 다 완성하면 다음엔 무엇을 해야 하나요? A. 관심 분야에 따라 다르다. 데이터에 흥미가 있으면 pandas와 matplotlib을 심화하고, 자동화에 관심이 있으면 웹 스크래핑(BeautifulSoup, Playwright)으로 넘어가고, 백엔드가 목표라면 FastAPI나 Flask로 가면 된다. ChatGPT에게 "나는 [관심 분야]에 관심 있어. 파이썬으로 다음 단계는 뭘 배워야 해?"라고 물어보면 맞춤 로드맵을 받을 수 있다.


📝 정리

이번 글에서 다룬 핵심 내용.

  • [x] AI와 협업하는 프로젝트 구조 — 내가 설계, AI는 힌트와 리뷰
  • [x] 날씨 조회 앱 — API 호출, JSON 파싱, 환경변수 분리
  • [x] 영단어 퀴즈 앱 — 딕셔너리, 랜덤, 파일 확장
  • [x] 가계부 CSV 분석기 — pandas 기초, 데이터 집계, 조건 필터
  • [x] 완성 후 전체 AI 코드 리뷰 요청 방법

"AI와 함께 파이썬 공부하기" 시리즈는 여기까지다. 도구 선택과 마인드셋, 학습 루틴, 실전 프로젝트까지 — 이제 직접 써먹을 일만 남았다. 처음 완성한 프로젝트는 작고 허술해 보여도 괜찮다. 그게 시작이다.