모듈 안내
Step 1
Public CMS Preview
로그인 없이 확인하는 바이브코딩 워크샵 CMS 프리뷰입니다. CMS로 이관된 Module과 Step을 그대로 보여줍니다.
Modules
6
Steps
104
Cursor, Python, Git, AGENTS.md 기반의 바이브코딩 개발 환경을 준비합니다.
14 steps
Step 1
Step 2
AI Native 개발 환경을 구축합니다.
우리는 지금 AI 시대의 개발 환경을 만들고 있습니다.
개발자는 이제 모든 것을 직접 구현하는 사람이 아니라 AI와 협력해 문제를 해결하는 사람입니다.
실습 코드
Cursor AI Python Git GitHub CLI AI Agent 프로젝트 구조
Step 3
AI와 함께 개발하기 위한 기본 작업 환경을 먼저 준비합니다.
Cursor는 VS Code와 유사한 사용성을 가지면서도 AI 협업 기능이 기본 탑재된 코드 에디터입니다.
사이트에서 Download를 선택해 설치합니다.
가입 방법:
💡 팁: 구글 계정 통일 관리
앞으로 사용할 서비스들(GitHub, Cursor, Supabase 등)을 구글 계정으로 통일하면 계정 관리가 훨씬 편리합니다. 하나의 구글 계정으로 모든 개발 도구를 관리할 수 있습니다.
요금제:
설치 과정에서 다음 옵션들을 선택할 수 있습니다:
cursor 명령어로 실행 가능💡 추천: 모든 옵션을 체크하는 것을 권장합니다. 나중에 필요할 때 쉽게 접근할 수 있습니다.
실습 코드
Ctrl + I오른쪽에 AI 채팅창이 열리면 정상입니다.
Cursor를 사용하기 전에 프로젝트를 저장할 기본 폴더를 만들어두면 편리합니다.
폴더 생성:
Windows 탐색기에서 다음 경로에 폴더를 만듭니다
D:\vibecoding또는 원하는 드라이브(C:, D: 등)에 vibecoding 폴더를 생성합니다.
이 폴더 안에 각 프로젝트별로 하위 폴더를 만들어 작업하면 관리가 쉬워집니다.
Step 4
설치 후 바로 확인해야 하는 기본 옵션을 정리합니다.
Cursor에서 사용할 AI 모델을 선택할 수 있습니다.
추천 설정:
실습 코드
LLM 설정 → AutoAuto를 선택하면 작업에 가장 적합한 모델을 자동으로 선택합니다. 초보자에게 가장 편리한 옵션입니다.
Cursor는 VSCode와 동일한 단축키와 인터페이스를 사용합니다. VSCode를 사용해본 경험이 있다면 바로 사용할 수 있습니다.
Ctrl + Shift + ECtrl + Shift + FCtrl + (백틱)Ctrl + Shift + P1. 자동 저장 활성화
실습 코드
File → Auto Save2. 한국어 설정 (선택사항)
- Cursor는 기본적으로 영어로 표시됩니다.
- 한국어 인터페이스를 원하면 확장 프로그램에서 한국어 언어팩을 설치할 수 있습니다.
Step 5
AI 개발에서 가장 많이 쓰는 언어를 먼저 설치합니다.
Python은 다음 분야에서 널리 사용됩니다:
실습 코드
이번 교육에서는 Python 3.13을 설치합니다. 최신 버전(3.14 등)도 있지만, 안정화를 위해 3.13을 사용합니다.
1. Python 3.13 검색
- 사이트 상단 검색창에서 "3.13"을 검색합니다.
2. Python 3.13.12 선택
- 검색 결과에서 스크롤을 내려 "Python 3.13.12" 버전을 선택합니다.
3. Windows/Mac 인스톨러 선택
- Files 섹션에서 스크롤을 내려 운영체제에 맞는 인스톨러를 선택합니다.
- Windows: "Windows installer (64-bit)" - Recommended 선택
- macOS: "macOS installer" - for macOS 10.13 and later 선택
실습 코드
Add Python to PATH이 옵션이 체크되어 있어야 터미널에서 Python을 바로 실행할 수 있습니다.
실습 코드
python --version파이썬 설치 후 Cursor에서 Python 인터프리터를 설정해야 합니다.
방법 1: 상태바 사용
방법 2: 명령 팔레트 사용
Ctrl + Shift + PStep 6
Cursor AI로 Python 코드를 작성하고 실행해 봅니다.
1. 프로젝트 폴더 준비
실습용 폴더를 만들고 Cursor에서 엽니다.
실습 코드
mkdir D:\vibecoding\test cd D:\vibecoding\test
실습 코드
Hello AI 프린트 출력 코드를 만들어줘AI가 코드를 제안하면 Keep (Ctrl+Shift+Y) 로 적용합니다.
4. 실행 요청
실습 코드
실행해줘5. 결과 확인
터미널 또는 Output 창에 아래처럼 출력되면 성공입니다.
실습 코드
Hello AIStep 7
코드 변경 기록과 협업을 위한 버전 관리 도구를 준비합니다.
Git은 코드의 변경 이력을 추적하고 관리하는 버전 관리 시스템입니다.
왜 Git이 필요한가요?
1. Cursor AI 열기
실습 코드
Ctrl + I오른쪽에 AI 채팅창이 열립니다.
2. Git 설치 안내 요청
실습 코드
Git 설치 방법을 알려줘AI가 운영체제에 맞는 Git 설치 방법을 안내해줍니다.
3. 설치 사이트 접속
실습 코드
AI가 안내한 대로 설치 사이트에 접속합니다.
4. 설치 확인
설치 후 Cursor AI에게 확인을 요청합니다
Git 설치가 잘 되었는지 확인해줘또는 터미널에서 직접 확인할 수 있습니다
git --versionStep 8
코드를 저장하고 공유하는 플랫폼을 준비합니다.
GitHub는 코드를 저장하고 공유하는 플랫폼입니다. Git과 함께 사용하여 코드를 원격 저장소에 저장하고 다른 사람과 협업할 수 있습니다.
터미널에서 다음 명령어로 설치합니다:
Windows:
실습 코드
winget install --id GitHub.climacOS:
실습 코드
brew install gh터미널에서 다음 명령어로 확인합니다
gh --version버전이 출력되면 정상입니다.
Step 9
GitHub CLI로 GitHub에 로그인합니다.
터미널에서 다음 명령어를 실행합니다
gh auth login1. GitHub.com 선택
2. HTTPS 선택
3. 브라우저에서 인증 선택
4. 브라우저가 열리면 구글 계정으로 로그인
다음 명령어로 로그인 상태를 확인합니다
gh auth statusStep 10
터미널에서 프로젝트 폴더를 생성합니다
mkdir vibe-test cd vibe-test
Cursor에서 File → Open Folder로 해당 폴더를 엽니다.
또는 Windows 탐색기에서 직접 폴더를 만들고 Cursor에서 열 수도 있습니다.
첨부파일
PLAN/ACT 운영 방식과 memory_bank 구조를 포함한 Cursor Agent 프로젝트 초기화 파일입니다. 다운로드한 파일을 새 프로젝트 루트에 넣고 Cursor에게 읽게 하세요.
프로젝트_초기화_가이드_Cursor_Agent.md
Step 11
AI와 협업하려면 프로젝트에 AI 행동 규칙이 필요합니다.
1. PLAN 모드로 시작: 모든 작업은 먼저 계획을 세우고 사용자 승인을 받습니다.
2. ACT 모드로 실행: 승인된 계획만 실행하여 예상치 못한 변경을 방지합니다.
3. 메모리 뱅크 참조: 대화보다 파일을 우선하여 프로젝트 맥락을 유지합니다.
PLAN 모드 (계획 모드)
ACT 모드 (실행 모드)
프로젝트 폴더에 다음 파일을 추가합니다
프로젝트_초기화_가이드_Cursor_Agent.md이 파일을 프로젝트 폴더에 추가한 후 Cursor에게 아래처럼 요청하세요.
실습 코드
이 프로젝트에 있는 프로젝트_초기화_가이드_Cursor_Agent.md 파일을 읽고 이 가이드 기준으로 프로젝트 초기 구조를 만들어줘. 먼저 PLAN으로 설명하고 내가 확인하면 ACT로 생성해줘.
Step 12
초기화가 완료되면 아래 구조가 생성됩니다.
실습 코드
project-root/ ├── AGENTS.md ├── .cursor/ │ └── rules/ │ ├── 00-foundation.mdc │ ├── 10-memory-bank.mdc │ └── 20-quality-scope.mdc └── memory_bank/ ├── projectbrief.md ├── techContext.md ├── systemPatterns.md ├── productContext.md ├── activeContext.md └── progress.md
Step 13
`vibe-test` 폴더에서 GitHub CLI 로그인 상태를 확인합니다
gh auth status현재 폴더(vibe-test)를 GitHub public 저장소에 연결합니다. push는 아직 하지 않습니다.
실습 코드
gh repo create vibe-test --public --source=. --remote=origin터미널 대신 Agent(Ctrl+I)에 아래처럼 요청할 수 있습니다
vibe-test 폴더를 GitHub public 저장소로 만들고 origin remote만 연결해줘. push는 아직 하지 마.gh repo create만 입력하면 질문이 나옵니다:
실습 코드
gh repo view git remote -v
브라우저에서 GitHub 프로필 → vibe-test 저장소가 보이면 성공입니다.
Step 13에서 Cursor Agent에게 「빌드, 메모리뱅크 업데이트, 푸시해줘」로 첫 Push를 진행합니다.
Step 14
Step 12에서 연결한 GitHub 저장소에 로컬 프로젝트를 첫 Push하고 환경 구축을 마무리합니다.
Cursor AI에게 다음 프롬프트를 사용합니다
빌드, 메모리뱅크 업데이트, 푸시해줘1. 빌드 먼저 확인
- 코드 변경 후 빌드가 성공하는지 먼저 확인합니다. 빌드 오류가 있으면 메모리뱅크에 잘못된 정보가 기록될 수 있기 때문입니다.
2. 메모리뱅크 업데이트
- 빌드가 성공한 후에만 메모리뱅크를 업데이트합니다. 이렇게 하면 AI가 항상 정확하고 검증된 정보만 참조할 수 있습니다.
3. 마지막에 푸시 (커밋 포함)
- 모든 작업이 완료되고 검증된 후에만 커밋과 푸시를 함께 수행합니다. 이 순서를 지키면 실수로 잘못된 코드나 문서를 원격 저장소에 올리는 것을 방지할 수 있습니다.
커밋 (Commit)
푸시 (Push)
원격 저장소 동기화
축하합니다! AI와 협업하는 개발 환경 구축을 완료했습니다.
이제 우리는 다음 환경을 모두 구축했습니다
Cursor Python Git GitHub CLI AI Agent 프로젝트 구조
오늘 우리는 코드를 만드는 환경이 아니라 AI와 협업하는 환경을 만들었습니다.
이제 구축한 환경을 활용해 실제 프로그램을 만들어봅시다. 유튜브 영상을 다운로드하는 프로그램을 만들면서 AI와 협업하는 전체 프로세스를 경험할 수 있습니다.
이번 실습에서 배울 것:
핵심 기술 스택:
실습 코드
Python · PyQt5 · yt-dlp · ffmpeg · GitHub · PyInstaller아이디어, 명세, 구현, 고화질 다운로드, 배포 흐름을 한 번에 실습합니다.
19 steps
Step 1
Step 2
새 프로젝트를 시작하고, Ai Studio와 Cursor를 오가며 명세를 다듬고, 실행 가능한 파이썬 GUI 프로그램을 완성합니다.
Python, PyQt5, yt-dlp, ffmpeg, GitHub, PyInstaller
유튜브 조회 기능 → 다운로드 기능 → Full HD / 4K 지원 → exe 파일
Step 3
왜 파이썬으로 실습하는지, 로컬앱이 무엇인지 이해합니다.
파이썬은 초보자도 쉽게 배울 수 있는 언어입니다. 문법이 간단하고 읽기 쉬워서, 코드를 작성하는 것보다 문제를 해결하는 것에 집중할 수 있습니다.
또한 파이썬은 풍부한 라이브러리를 제공합니다. GUI를 만들고 싶으면 PyQt5, 웹에서 데이터를 가져오고 싶으면 requests, 유튜브 영상을 다운로드하고 싶으면 yt-dlp 같은 도구들이 이미 준비되어 있어서 처음부터 모든 것을 만들 필요가 없습니다.
이번 실습에서는 AI와 협업하는 개발 방식을 배우는 것이 목표입니다. 파이썬은 AI가 코드를 생성하고 수정하기에도 적합한 언어이기 때문에, Cursor나 Ai Studio 같은 도구와 함께 사용하기에 최적입니다.
로컬앱(Local App)은 인터넷 연결 없이도 내 컴퓨터에서 직접 실행되는 프로그램입니다. 웹 브라우저를 열지 않아도 되고, 서버에 접속할 필요도 없습니다.
로컬앱의 특징:
이번 실습에서 만드는 유튜브 다운로더도 로컬앱입니다. 프로그램을 실행하면 창이 뜨고, URL을 입력하면 내 컴퓨터의 Downloads 폴더에 영상이 저장됩니다.
Step 4
이번 실습은 이렇게 진행합니다
전제: 1부에서 Cursor, Python, Git, GitHub CLI 기본 구축을 끝낸 상태입니다.
1. 새 프로젝트 폴더를 만듭니다
2. AGENTS.md를 넣어 AI의 작업 규칙을 정합니다
3. Ai Studio에서 plan.md 초안을 만듭니다
4. Cursor로 기술 검토를 받고 다시 Ai Studio에서 수정합니다
5. Go 판단 후 조회 프로그램부터 구현합니다
6. 다운로드 기능을 추가하고 720p 한계를 확인합니다
7. ffmpeg와 명령줄 도구, PATH 환경변수를 이해하고 설정합니다
8. Full HD / 4K 다운로드를 구현합니다
9. GitHub에 프로젝트를 저장합니다
10. exe 파일로 패키징합니다
처음부터 완성 앱을 한 번에 요구하면 명세가 커지고 불안정해집니다. 이번 2부는 작은 기능부터 확인하고, 잘 되는 것을 바탕으로 확장하는 방식으로 진행합니다.
유튜브 다운로드 실습은 저작권과 플랫폼 정책을 준수하는 범위에서만 사용합니다. 교육 목적의 로컬 실습을 기준으로 진행합니다.
Step 5
새 프로젝트 폴더를 만들고, 2부 실습 전용 작업 공간을 준비합니다.
이번 2부는 기존 프로젝트가 아니라 새 프로젝트로 시작합니다. 그래야 실습 결과물을 깔끔하게 분리할 수 있고, Git 이력도 명확하게 남길 수 있습니다.
터미널에서 다음 명령어를 실행합니다
mkdir youtube-downloader cd youtube-downloader
실습 코드
youtube-downloader/ ├─ AGENTS.md ├─ plan.md ├─ main.py ├─ requirements.txt └─ README.md
처음 실행 파일은 main.py로 두면 초보자가 따라가기 쉽습니다.
첨부파일
PLAN/ACT 운영 방식과 memory_bank 구조를 포함한 Cursor Agent 프로젝트 초기화 파일입니다. 다운로드한 파일을 새 프로젝트 루트에 넣고 Cursor에게 읽게 하세요.
프로젝트_초기화_가이드_Cursor_Agent.md
Step 6
AI가 이 프로젝트에서 어떻게 행동해야 하는지 규칙을 먼저 정합니다.
AGENTS.md는 이 프로젝트에서 AI가 따라야 할 운영 규칙입니다. 이번 실습에서는 특히 PLAN → GO → ACT 순서를 지키게 하는 것이 중요합니다.
```markdown
`
규칙은 짧고 강해야 합니다. 너무 길면 AI도 사람도 잘 지키지 못합니다.
Step 7
처음에는 크게 시작하지 않습니다. 먼저 유튜브 조회 프로그램만 만드는 명세부터 시작합니다.
이번 실습의 핵심은 처음부터 모든 기능을 다 넣지 않는 것입니다. 처음에는 다운로드 기능을 넣지 않고, 조회 기능만 있는 작은 프로그램을 기준으로 명세를 만듭니다.
명세 검토 프롬프트
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Step 8
명세는 한 번에 완성하지 않습니다. 생성 → 검토 → 수정 → 재검토를 반복하다가 원하는 수준이 되면 Go 합니다.
Ai Studio는 아이디어를 문서로 정리하는 데 강하고, Cursor는 실제 구현 가능성을 검토하는 데 강합니다. 두 도구를 번갈아 사용하면 더 안정적인 명세를 만들 수 있습니다.
실습 코드
plan.md 초안이야. 아직 코드는 작성하지 말고 구현 관점에서만 검토해줘. 다음 기준으로 정리해줘. 1. 구현하기에 모호한 부분 2. 빠진 요구사항 3. 필요한 예외 처리 4. 추천 파일 구조 5. 초보자가 막히기 쉬운 지점
실습 코드
아래는 Cursor의 기술 검토 의견이야. 이 피드백을 반영해서 plan.md를 수정해줘. 조건: - 문서는 너무 길지 않게 - 실습용으로 간결하게 - 구현 순서가 보이게 - pip 패키지 설명은 유지
다운로드 기능 추가, ffmpeg 반영, 고화질 확장 때도 plan.md를 갱신하고 같은 핑퐁 구조로 검토한 뒤 Go 하면 됩니다.
Step 9
`pip`는 파이썬 패키지 설치 도구입니다. 코드는 있어도 패키지가 없으면 실행되지 않습니다.
우리는 모든 기능을 처음부터 직접 만들지 않습니다. 이미 잘 만들어진 패키지를 설치해서 조합합니다.
PyQt5
yt-dlp
requests
Windows:
실습 코드
python -m venv .venv .venv\Scripts\activate pip install PyQt5 yt-dlp requests
macOS:
실습 코드
python3 -m venv .venv source .venv/bin/activate pip install PyQt5 yt-dlp requests
Cursor가 코드를 잘 만들어도 필요한 패키지가 설치되지 않으면 프로그램은 실행되지 않습니다. 그래서 "무엇을 설치하는지"를 이해하고 넘어가야 합니다.
Step 10
이제 첫 번째 Go를 냅니다. 아직은 조회 기능만 구현합니다.
지금부터는 코드 생성 단계입니다. 다만 plan.md에 정의한 범위 안에서만 구현하도록 요청합니다.
실습 코드
좋아. Go. 현재 plan.md 범위 안에서만 구현해줘. 요구: - main.py로 구현 - PyQt5 GUI - 유튜브 URL 입력창 - 조회 버튼 - 썸네일, 제목, 조회수 표시 - requests를 사용해 썸네일 로딩 가능 - 초보자가 읽기 쉬운 주석 포함 - 실행 방법도 함께 정리
실습 코드
python main.py좋아요 수는 영상마다 안정적으로 조회되지 않을 수 있어 초반 목표에서 제외하는 편이 좋습니다.
Step 11
조회가 되면 이제 저장 기능을 붙입니다. 이 단계에서 보통 720p 한계를 만나게 됩니다.
먼저 기본 다운로드 기능부터 구현합니다. 이 단계의 목표는 "다운로드가 된다"는 것 자체를 확인하는 것입니다.
실습 코드
조회 기능이 동작하니 이제 다운로드 버튼을 추가해줘. 조건: - 기존 조회 기능은 유지 - 다운로드 버튼 추가 - 기본 저장 위치는 운영체제의 Downloads 폴더 - 다운로드 진행 상태를 간단히 표시 - 먼저 구현이 쉬운 방식으로 시작
고화질 영상은 영상 스트림과 오디오 스트림이 분리된 경우가 많습니다. 이때는 둘을 합칠 도구가 따로 필요합니다.
Step 12
ffmpeg는 파이썬 패키지가 아니라 명령줄(CLI) 프로그램입니다. 그래서 설치와 PATH 설정이 함께 필요합니다.
명령줄 도구는 터미널에서 명령어로 실행하는 프로그램입니다. 우리는 이미 여러 명령줄 도구를 사용하고 있습니다.
실습 코드
PyQt5 GUI → yt-dlp → ffmpeg → 완성 파일 저장터미널에서 명령어로 실행하는 프로그램입니다. 화면 버튼 대신 명령어로 동작합니다.
Full HD 이상에서는 영상과 음성을 각각 받은 뒤 합치는 작업이 필요한데, 그 병합을 ffmpeg가 담당합니다.
Step 13
운영체제가 ffmpeg 위치를 찾을 수 있게 해야 합니다. 그 설정이 PATH 환경변수입니다.
Windows에서는 ffmpeg를 내려받아 압축을 푼 뒤, bin 폴더 경로를 PATH에 등록해야 합니다.
1. ffmpeg 압축 파일을 내려받아 압축을 풉니다
2. 예시로 C:\ffmpeg 위치에 폴더를 둡니다
3. C:\ffmpeg\bin 경로를 복사합니다
4. Windows 검색에서 "환경 변수"를 열고 Path에 새 항목으로 추가합니다
5. 터미널을 완전히 다시 열고 아래 명령으로 확인합니다
실습 코드
ffmpeg -version프로그램이 ffmpeg를 호출할 때 운영체제가 ffmpeg.exe가 어디 있는지 알아야 하기 때문입니다. PATH가 없으면 "ffmpeg not found" 오류가 납니다.
ffmpeg -version이 출력된다bin 폴더까지 들어간 경로인지 다시 확인한다Step 14
macOS에서는 보통 Homebrew로 설치하는 것이 가장 단순합니다.
실습 코드
brew install ffmpeg ffmpeg -version
실습 코드
echo 'export PATH="$(brew --prefix)/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
brew로 설치해도 쉘 설정에 따라 터미널이 ffmpeg를 바로 못 찾는 경우가 있습니다. 이때 PATH에 brew bin 경로를 잡아주면 됩니다.
macOS에서는 zsh를 쓰는 경우가 많아서 ~/.zshrc를 수정하는 예시를 사용합니다.
Step 15
ffmpeg 준비가 끝났다면 다시 명세를 확장하고, 고화질 다운로드를 구현합니다.
이제부터는 단순 다운로드가 아니라 영상 + 음성 병합을 포함한 고화질 다운로드를 목표로 합니다.
실습 코드
plan.md를 업데이트했어. 이제 고화질 다운로드를 구현해줘. 조건: - ffmpeg가 설치되어 있다고 가정 - bestvideo+bestaudio 조합 우선 - 없으면 가능한 다음 화질로 자동 fallback - 병합 후 하나의 파일로 저장 - 기존 조회 기능과 다운로드 버튼 흐름은 유지 - 상태 메시지에 현재 진행 상황 표시
실습 코드
ffmpeg -version고화질 구현 전에는 plan.md에 품질 정책과 ffmpeg 사용 조건을 한 번 더 반영하고 Go 하는 흐름이 가장 안정적입니다.
Step 16
1부에서 배운 GitHub CLI 흐름을 이번 프로젝트에 실제로 적용합니다.
실습 결과물을 로컬에만 두지 말고, GitHub에 저장해 두면 다음 시간에 이어서 수정하기 쉽습니다.
실습 코드
git init git add . git commit -m "feat: youtube downloader" git branch -M main gh repo create youtube-downloader --public --source=. --remote=origin git push -u origin main
이미 같은 이름의 저장소가 있다면 gh repo create 대신 기존 원격 저장소를 연결해서 푸시하면 됩니다.
Step 17
Windows 배포 기준으로 PyInstaller를 사용해 실행 파일을 만듭니다.
PyInstaller는 파이썬 프로그램과 필요한 실행 환경을 묶어서 배포용 실행 파일 형태로 만들어주는 도구입니다.
실습 코드
pip install pyinstaller pyinstaller --onefile --windowed main.py
실습 코드
dist/ └─ main.exe
파이썬 프로그램과 필요한 환경을 묶어서 배포용 실행 파일 형태로 만드는 도구입니다.
Step 18
실행 → 오류 확인 → Cursor 수정 → 재실행. 이 반복이 AI Native 개발의 핵심 루프입니다.
프로그램이 한 번에 완성되지 않아도 괜찮습니다. 중요한 것은 에러를 정확히 보고, 그 에러를 바탕으로 다시 Cursor와 협업하는 것입니다.
실습 코드
아래는 실행 에러 로그야. 원인과 수정 방향을 먼저 설명해주고, 승인된 범위 안에서만 고쳐줘. [에러 로그 붙여넣기]
아이디어를 바로 코딩하지 않고, 명세를 다듬고 검토한 뒤 구현하는 전체 흐름을 경험했습니다.
Step 19
로컬 앱 개발을 완료했습니다. 이제 웹앱을 만들어볼 차례입니다.
아이디어부터 실행 파일까지, 전체 개발 과정을 경험했습니다.
AI와의 협업
명세 작성
로컬 앱 개발
명령줄 도구
버전 관리
배포
로컬 앱 개발을 완료했으니, 이제 웹앱을 만들어볼 차례입니다!
웹앱의 장점:
웹앱은 설치 없이 브라우저에서 바로 사용할 수 있고, 여러 사람과 쉽게 공유할 수 있습니다.
수고하셨습니다! 다음 강의에서 웹앱 개발을 시작해봅시다. 🚀
FastAPI·Streamlit·Cursor 리팩토링 흐름을 따라가며, 4강 본실습 전에 뉴스룸 서비스 구조를 미리 경험합니다.
29 steps
Step 1
좋습니다. 아래는 3강 part1을 강사가 그대로 읽고 진행할 수 있는 수준으로 쓴 강의용 원고입니다.
Step 2
Step 3
Step 4
학생들에게 채팅창 또는 노트에 아래를 적게 합니다.
실습 코드
입력: RSS 주소 처리 1: 뉴스 기사 가져오기 처리 2: AI 요약하기 출력: 제목 + 링크 + 요약 결과
Step 5
실습 코드
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Cursor가 아래 정도를 내면 좋습니다.
실습 코드
app/ main.py routers/ news.py services/ rss_service.py summary_service.py core/ config.py schemas.py
Step 6
실습 코드
mkdir my-newsroom cd my-newsroom python -m venv .venv
Windows
.venv\Scripts\activatemacOS / Linux
source .venv/bin/activate패키지 설치
pip install fastapi uvicorn streamlit feedparser python-dotenv requests pip install -U google-genai
requirements 저장
pip freeze > requirements.txtStep 7
실습 코드
mkdir app mkdir app\routers mkdir app\services mkdir app\core
또는 Cursor에게 생성 요청
이 프로젝트에 아래 구조를 생성해줘. app/ main.py routers/news.py services/rss_service.py services/summary_service.py core/config.py schemas.py __init__.py
Step 8
프로젝트 루트에 `.env` 파일 생성
GEMINI_API_KEY=여기에_본인_API_KEY`.gitignore` 생성 또는 수정
.venv/ .env __pycache__/
Step 9
실습 코드
app/services/rss_service.py 파일에 다음 기능을 구현해줘. 요구사항: - 함수 이름은 fetch_rss_items - 입력: feed_url(str), limit(int=5) - 출력: 기사 목록(list[dict]) - 각 기사에는 title, link, published, summary 정도만 포함 - 예외가 발생하면 초보자도 이해하기 쉬운 메시지로 raise - 교육용이므로 코드에 주석을 충분히 달아줘
학생들에게 다음 질문:
Step 10
실습 코드
app/services/summary_service.py 파일에 Gemini 기반 요약 함수를 구현해줘. 요구사항: - 함수 이름은 summarize_news_items - 입력: 뉴스 목록(list[dict]) - 출력: 요약 결과가 포함된 뉴스 목록(list[dict]) - 각 기사에 ai_summary, why_it_matters, keywords 필드를 추가 - GEMINI_API_KEY 환경변수를 읽도록 구성 - Google GenAI SDK를 사용 - 응답 파싱이 불안정하지 않도록 프롬프트를 구조적으로 작성 - 실패 시 fallback 메시지를 반환 - 교육용이므로 최대한 읽기 쉽게 작성
Step 11
실습 코드
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Step 12
실습 코드
app/routers/news.py 에 FastAPI 라우터를 구현해줘. 요구사항: - GET /health - POST /summarize - POST /summarize 는 NewsroomRequest를 입력으로 받는다 - 내부에서 fetch_rss_items -> summarize_news_items 순서로 호출한다 - 응답은 NewsroomResponse 형태로 반환한다 - 에러 발생 시 HTTPException으로 적절히 처리한다 - 교육용이라서 흐름이 읽히도록 작성해줘
실습 코드
app/main.py 파일을 만들어줘. 요구사항: - FastAPI 앱 생성 - news 라우터 등록 - 앱 제목은 My Newsroom API - 초보자 교육용 예시라 주석 포함
Step 13
실습 코드
uvicorn app.main:app --reload브라우저 접속
FastAPI는 기본적으로 /docs에서 자동 인터랙티브 문서를 제공합니다. 실습 때는 이 페이지에서 바로 요청을 날려볼 수 있습니다. ([FastAPI][3])
실습 코드
{ "feed_url": "https://feeds.feedburner.com/TechCrunch/", "limit": 3 }
학생들에게 확인할 것:
Step 14
실습 코드
git add . git commit -m "feat: build FastAPI newsroom backend MVP"
Step 15
좋습니다. 아래는 3강 part2를 강사가 그대로 읽고 진행할 수 있는 수준으로 쓴 강의용 원고입니다.
이 강의는 part1에서 만든 FastAPI 구조를 Cursor AI로 Streamlit 서비스로 리팩토링하기에 집중합니다.
실습 기준도 현재 공식 흐름에 맞췄습니다. Streamlit Community Cloud는 GitHub 저장소와 직접 연결해 앱을 배포하고, `secrets.toml` 형태의 비밀값 관리를 지원합니다. Gemini 쪽은 현재 Google GenAI SDK(`google-genai`)가 공식 권장 Python SDK이며, GEMINI_API_KEY 환경변수를 자동으로 읽을 수 있습니다. ([Streamlit Docs][1])
Step 16
Step 17
Step 18
Step 19
Step 20
실습 코드
총 24줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Step 21
Cursor에게 streamlit_app.py 생성 요청 후, 학생들은 아래 구성 확인:
Step 22
실습 코드
streamlit_app.py 에서 FastAPI를 호출하지 말고, 기존 services/rss_service.py 와 services/summary_service.py 를 직접 import 해서 사용하도록 바꿔줘. 요구사항: - 버튼을 눌렀을 때만 실행 - 로딩 중 메시지 표시 - 결과는 기사별로 제목, 링크, AI 요약, 왜 중요한지, 키워드를 출력 - 코드가 길어지면 helper 함수로 분리
Step 23
실습 코드
Streamlit UI를 개선해줘. 요구사항: - 각 기사 결과를 시각적으로 구분해줘 - 제목은 눈에 띄게 - 링크는 바로 클릭 가능하게 - ai_summary 와 why_it_matters 는 본문처럼 읽기 좋게 - keywords 는 작은 태그처럼 보이게 - 전체 UI는 교육용 데모답게 깔끔하고 단순하게
Step 24
실습 코드
현재 Streamlit 앱은 동작하지만 파일이 길고 책임이 섞여 있다. 리팩토링해줘. 목표: - UI 코드와 로직 보조 함수를 적절히 분리 - 변수명 읽기 쉽게 정리 - 중복 제거 - 초보자 교육용 코드답게 주석 보강 - 파일 수는 과하게 늘리지 말고 단순하게 유지
Step 25
실습 코드
streamlit run streamlit_app.pyStep 26
로컬 참고용 파일 생성
mkdir .streamlit`.streamlit/secrets.toml` 예시
GEMINI_API_KEY = "여기에_실제_키는_배포_플랫폼에서_입력"Step 27
실습 코드
git add . git commit -m "refactor: convert FastAPI newsroom into Streamlit app" git push
Step 28
1. Streamlit Community Cloud 로그인
2. GitHub 연결
3. 저장소 선택
4. 브랜치 선택
5. 앱 파일 지정: streamlit_app.py
6. Secrets 입력: GEMINI_API_KEY
7. Deploy 클릭
Step 29
실습 코드
[ ] 앱 URL 접속 성공 [ ] RSS 입력 후 실행 성공 [ ] 요약 결과 출력 성공 [ ] 링크 이동 성공 [ ] 에러 시 화면 메시지 확인
RSS 주소를 여러 개 받아서 통합 뉴스룸 만들기
카테고리별 요약 탭 만들기
"왜 중요한가" 대신 "실무 영향" 섹션 추가하기
오늘 요약 결과를 Markdown으로 다운로드하기
관심 키워드를 입력하면 키워드 포함 기사만 보여주기
3강에서 익힌 흐름을 바탕으로, 기획·RSS·Gemini 요약·FastAPI 핵심 기능을 프로젝트 단위로 완성합니다.
12 steps
Step 1
실습 전에 브라우저 LLM(예: Gemini, Google AI Studio)으로 기획을 정리해 두면 좋습니다.
"국내 IT 뉴스 RSS를 수집하여 Gemini API로 분석하는 Streamlit 앱을 기획해줘. DB 없이 JSON 파일과 GitHub을 활용한 구조로 기획하고, Cursor AI용 마크다운 기획안을 작성해줘."
"인터넷 뉴스 주소를 넣으면 자동으로 최신 글을 가져와서 AI가 요약해주는 사이트를 만들고 싶어. 복잡한 데이터베이스 설치 없이 간단하게 파일로 저장하고, 나중에 웹사이트로 바로 띄울 수 있게 기획해줘."
실습 도메인 용어 사전 (AI와 대화할 때 참고)
| 용어 | 설명 |
|---|---|
| Streamlit | 파이썬 코드를 웹사이트 화면으로 바꿔주는 도구 |
| RSS | 뉴스를 기계가 읽기 좋게 실시간으로 보내주는 규격 |
| Gemini API | 구글 AI 모델을 내 프로그램에서 쓰는 기능 |
| JSON | 데이터를 텍스트 파일 형태로 가볍게 저장하는 방식 |
Step 2
학생들에게 채팅창 또는 노트에 아래를 적게 합니다.
실습 코드
입력: RSS 주소 처리 1: 뉴스 기사 가져오기 처리 2: AI 요약하기 출력: 제목 + 링크 + 요약 결과
Step 3
실습 코드
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Cursor가 아래 정도를 내면 좋습니다.
실습 코드
app/ main.py routers/ news.py services/ rss_service.py summary_service.py core/ config.py schemas.py
Step 4
실습 코드
mkdir my-newsroom cd my-newsroom python -m venv .venv
Windows
.venv\Scripts\activatemacOS / Linux
source .venv/bin/activate패키지 설치
pip install fastapi uvicorn streamlit feedparser python-dotenv requests pip install -U google-genai
requirements 저장
pip freeze > requirements.txtStep 5
실습 코드
mkdir app mkdir app\routers mkdir app\services mkdir app\core
또는 Cursor에게 생성 요청
이 프로젝트에 아래 구조를 생성해줘. app/ main.py routers/news.py services/rss_service.py services/summary_service.py core/config.py schemas.py __init__.py
Step 6
프로젝트 루트에 `.env` 파일 생성
GEMINI_API_KEY=여기에_본인_API_KEY`.gitignore` 생성 또는 수정
.venv/ .env __pycache__/
Step 7
실습 코드
app/services/rss_service.py 파일에 다음 기능을 구현해줘. 요구사항: - 함수 이름은 fetch_rss_items - 입력: feed_url(str), limit(int=5) - 출력: 기사 목록(list[dict]) - 각 기사에는 title, link, published, summary 정도만 포함 - 예외가 발생하면 초보자도 이해하기 쉬운 메시지로 raise - 교육용이므로 코드에 주석을 충분히 달아줘
학생들에게 다음 질문:
Step 8
실습 코드
app/services/summary_service.py 파일에 Gemini 기반 요약 함수를 구현해줘. 요구사항: - 함수 이름은 summarize_news_items - 입력: 뉴스 목록(list[dict]) - 출력: 요약 결과가 포함된 뉴스 목록(list[dict]) - 각 기사에 ai_summary, why_it_matters, keywords 필드를 추가 - GEMINI_API_KEY 환경변수를 읽도록 구성 - Google GenAI SDK를 사용 - 응답 파싱이 불안정하지 않도록 프롬프트를 구조적으로 작성 - 실패 시 fallback 메시지를 반환 - 교육용이므로 최대한 읽기 쉽게 작성
Step 9
실습 코드
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Step 10
실습 코드
app/routers/news.py 에 FastAPI 라우터를 구현해줘. 요구사항: - GET /health - POST /summarize - POST /summarize 는 NewsroomRequest를 입력으로 받는다 - 내부에서 fetch_rss_items -> summarize_news_items 순서로 호출한다 - 응답은 NewsroomResponse 형태로 반환한다 - 에러 발생 시 HTTPException으로 적절히 처리한다 - 교육용이라서 흐름이 읽히도록 작성해줘
실습 코드
app/main.py 파일을 만들어줘. 요구사항: - FastAPI 앱 생성 - news 라우터 등록 - 앱 제목은 My Newsroom API - 초보자 교육용 예시라 주석 포함
Step 11
실습 코드
uvicorn app.main:app --reload브라우저 접속
FastAPI는 기본적으로 /docs에서 자동 인터랙티브 문서를 제공합니다. ([FastAPI][3])
실습 코드
{ "feed_url": "https://feeds.feedburner.com/TechCrunch/", "limit": 3 }
학생들에게 확인할 것:
Step 12
실습 코드
git add . git commit -m "feat: build FastAPI newsroom backend MVP"
FastAPI 구조를 Streamlit 서비스로 바꾸고 UI와 실행 흐름을 정리합니다.
13 steps
Step 1
@plan.md 등 기획 문서를 기준으로 Cursor 에이전트(Ctrl+I)로 Streamlit 뉴스룸 앱 구현. 필요한 라이브러리 설치까지 한 번에 요청.
API 키는 secrets.toml에 설정. streamlit run app.py(또는 streamlit_app.py)로 로컬 실행 확인.
GitHub 푸시 → Streamlit Cloud에서 저장소 연결 → 온라인 환경변수에 API 키 등록.
Step 2
Step 3
Step 4
실습 코드
총 24줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
Step 5
Cursor에게 streamlit_app.py 생성 요청 후, 학생들은 아래 구성 확인:
Step 6
실습 코드
streamlit_app.py 에서 FastAPI를 호출하지 말고, 기존 services/rss_service.py 와 services/summary_service.py 를 직접 import 해서 사용하도록 바꿔줘. 요구사항: - 버튼을 눌렀을 때만 실행 - 로딩 중 메시지 표시 - 결과는 기사별로 제목, 링크, AI 요약, 왜 중요한지, 키워드를 출력 - 코드가 길어지면 helper 함수로 분리
Step 7
실습 코드
Streamlit UI를 개선해줘. 요구사항: - 각 기사 결과를 시각적으로 구분해줘 - 제목은 눈에 띄게 - 링크는 바로 클릭 가능하게 - ai_summary 와 why_it_matters 는 본문처럼 읽기 좋게 - keywords 는 작은 태그처럼 보이게 - 전체 UI는 교육용 데모답게 깔끔하고 단순하게
Step 8
실습 코드
현재 Streamlit 앱은 동작하지만 파일이 길고 책임이 섞여 있다. 리팩토링해줘. 목표: - UI 코드와 로직 보조 함수를 적절히 분리 - 변수명 읽기 쉽게 정리 - 중복 제거 - 초보자 교육용 코드답게 주석 보강 - 파일 수는 과하게 늘리지 말고 단순하게 유지
Step 9
실습 코드
streamlit run streamlit_app.pyStep 10
로컬 참고용 파일 생성
mkdir .streamlit`.streamlit/secrets.toml` 예시
GEMINI_API_KEY = "여기에_실제_키는_배포_플랫폼에서_입력"Step 11
실습 코드
git add . git commit -m "refactor: convert FastAPI newsroom into Streamlit app" git push
Step 12
1. Streamlit Community Cloud 로그인
2. GitHub 연결
3. 저장소 선택
4. 브랜치 선택
5. 앱 파일 지정: streamlit_app.py
6. Secrets 입력: GEMINI_API_KEY
7. Deploy 클릭
Step 13
실습 코드
[ ] 앱 URL 접속 성공 [ ] RSS 입력 후 실행 성공 [ ] 요약 결과 출력 성공 [ ] 링크 이동 성공 [ ] 에러 시 화면 메시지 확인
RSS 주소를 여러 개 받아서 통합 뉴스룸 만들기
카테고리별 요약 탭 만들기
"왜 중요한가" 대신 "실무 영향" 섹션 추가하기
오늘 요약 결과를 Markdown으로 다운로드하기
관심 키워드를 입력하면 키워드 포함 기사만 보여주기
한국투자증권 API, 네이버 검색 API, Gemini를 연결해 주식 분석 앱을 만듭니다.
17 steps
Step 1
좋습니다.
이번 5강은 “직접 코드를 처음부터 손으로 짜는 강의” 가 아니라,
Google AI Studio와 Cursor AI를 오가며 명세 → 검토 → 수정 → 확정 → 개발까지 진행하는 AI 네이티브 바이브코딩 실습으로 잡는 게 훨씬 잘 맞습니다.
즉, 학습자는 명령어와 설치법을 전부 외우는 사람이 아니라,
이 되는 흐름으로 가면 됩니다.
아래는 그 방향에 맞춘 5강 실습자료 텍스트북 버전입니다.
말투도 강사 대본보다는 교재형 실습 문체로 정리했습니다.
이번 실습에서는 한국투자증권 Open API, 네이버 검색 API, Gemini를 활용하여 주식 분석 앱을 만드는 전체 흐름을 경험한다.
이 실습의 핵심은 단순히 API를 붙여서 기능을 만드는 것이 아니라,
Google AI Studio와 Cursor AI를 역할에 따라 나누어 활용하는 개발 방식을 익히는 데 있다.
이번 실습에서는 다음과 같은 흐름으로 작업을 진행한다.
즉, 이번 실습은 “정답 코드를 외워서 따라치는 실습”이 아니라
AI와 협업하며 실제 서비스를 설계하고 구현하는 실습이다.
최종적으로 다음 기능을 갖춘 앱을 목표로 한다.
이번 실습에서는 다음 원칙을 따른다.
1. 설치 명령어를 외우지 않는다.
필요한 설치나 실행 명령어는 Cursor AI 또는 Google AI Studio에 직접 묻는다.
2. 처음부터 완벽한 코드를 요구하지 않는다.
먼저 명세를 만들고, 그 다음 검토하고, 마지막에 개발을 확정한다.
3. 한 번에 큰 요구를 던지기보다
기능 단위로 나누어 요청하고 검토한다.
4. AI가 만든 결과를 그대로 믿지 않고
다른 AI로 교차 검토한다.
Step 2
이번 실습은 다음과 같은 역할 분담으로 진행한다.
이번 실습의 핵심은
“AI Studio는 설계 중심, Cursor AI는 구현 중심” 으로 활용하는 것이다.
Step 3
AI에게 요청하기 전에, 만들 서비스의 목적을 한 문장으로 정리한다.
Step 4
이 단계에서는 아직 코드를 만들지 않는다.
먼저 무엇을 만들지 명세화한다.
Google AI Studio에 아래와 같이 요청한다.
실습 코드
총 27줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
이 단계의 목적은 잘 쓰인 명세 초안을 얻는 것이다.
Step 5
Google AI Studio가 결과를 주면, 바로 확정하지 않는다.
먼저 다음 기준으로 읽어본다.
이 단계에서는 “좋다 / 나쁘다”보다
“실습 가능한가, 너무 무거운가” 를 중심으로 본다.
실습에서는 완성형 서비스보다
작동하는 작은 흐름이 더 중요하다.
Step 6
이제 AI Studio가 만든 초안을 Cursor AI에게 가져가서 검토시킨다.
여기서는 Cursor AI에게 단순 요약이 아니라,
개발자 관점의 문제점과 보완점을 찾게 해야 한다.
실습 코드
총 17줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
이 단계의 핵심은
AI Studio가 만든 설계를 Cursor AI가 비판적으로 읽게 하는 것이다.
Step 7
Cursor AI의 검토 결과가 나오면, 그 내용을 다시 정리한다.
보통 다음과 같은 수정 포인트가 나온다.
이 단계에서는 Cursor AI의 답변을 통째로 다시 넣는 것이 아니라,
수정할 핵심 항목만 추려서 다시 AI Studio로 가져가는 것이 중요하다.
Step 8
이제 다시 Google AI Studio에서
Cursor AI의 피드백을 반영한 개선 명세서를 만든다.
실습 코드
총 22줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
이 과정을 통해 명세가 점점 더 실전적으로 다듬어진다.
Step 9
2차 수정된 명세는 다시 Cursor AI로 가져가 최종 검토를 받는다.
이번에는 단순 검토가 아니라
“이제 개발 시작해도 되는지” 를 확인하는 단계다.
실습 코드
총 16줄 · 펼치기를 누르면 전체 코드를 볼 수 있습니다.
이 단계가 끝나면
명세는 설계 문서에서 실제 개발 기준 문서로 전환된다.
Step 10
명세가 확정되었다면 바로 전체 코드를 생성하기보다,
먼저 개발 순서를 물어보는 것이 좋다.
이 단계에서 중요한 것은
구현보다 순서다.
앱을 한 번에 완성하려고 하면 오류가 많아지고,
문제가 생겼을 때 어디서 잘못됐는지 찾기 어려워진다.
Step 11
이제 Cursor AI에서 실제 개발을 시작한다.
다만 이 단계에서도 전체 기능을 한 번에 요구하지 않는다.
먼저 프로젝트 뼈대만 만든다.
실습 코드
확정된 명세를 기준으로 FastAPI 프로젝트 뼈대를 만들어줘. 중요: - 지금은 전체 기능 구현보다 프로젝트 구조를 먼저 만들고 싶다 - router, service, core, schema 역할이 분리된 구조로 제안해줘 - 각 파일의 책임도 함께 설명해줘 - 설치 명령어는 자세히 적지 말고, 필요하면 내가 따로 물어볼 수 있게 해줘 - 코드는 한 번에 전부 만들지 말고, 먼저 폴더 구조와 초기 파일 구성을 제안해줘
여기서 얻고 싶은 것은
정리된 폴더 구조와 파일 역할이다.
Step 12
이번 실습의 중요한 원칙 중 하나는
명령어를 교재가 직접 다 알려주는 방식이 아니라, AI에게 질문하는 방식으로 익히는 것이다.
예를 들어 아래처럼 질문할 수 있다.
.env 파일을 읽기 위해 어떤 라이브러리가 필요한지 알려줘이렇게 하면 학습자는
“정답 텍스트를 외우는 사람”이 아니라
필요한 순간에 AI에게 정확히 질문하는 사람이 된다.
이것이 AI 네이티브 방식의 핵심이다.
Step 13
이제 본격적인 기능 구현에 들어간다.
첫 번째 구현 대상은 거래량 상위 종목 조회 기능이다.
이 단계에서는 아래 목표만 잡는다.
/stocks/top-volume 엔드포인트 구현중요한 점은
아직 네이버나 Gemini는 붙이지 않는다는 것이다.
먼저 숫자 데이터가 정확히 오는지부터 확인한다.
Step 14
거래량 상위 종목 조회 기능이 동작하면,
여기서 다시 한 번 Google AI Studio에 구조 검토를 받을 수 있다.
이 단계는 필수는 아니지만 매우 좋다.
예를 들어 이렇게 요청할 수 있다.
실습 코드
현재 FastAPI 프로젝트에서 한국투자증권 API를 이용한 거래량 상위 종목 조회 기능까지 구현했다. 다음 단계로 네이버 검색 API와 Gemini 분석 기능을 붙이려 한다. 현재 구조를 기준으로, - 어떤 서비스 분리가 더 필요할지 - 분석 기능을 붙일 때 어떤 데이터 구조가 좋은지 - 종목 상세 분석 API를 어떻게 설계하면 좋은지 실습 프로젝트 관점에서 검토해줘.
이렇게 하면 개발 중간에도
명세와 구현이 계속 맞물려 돌아간다.
Step 15
다음으로는 종목 상세 분석에 필요한 뉴스 검색 기능을 추가한다.
이 단계의 목표는 다음과 같다.
이 기능은
Gemini 분석보다 먼저 정확히 동작해야 한다.
왜냐하면 Gemini는 뉴스가 있어야 분석할 수 있기 때문이다.
즉, 이 단계의 핵심은
검색과 정리다.
Step 16
이제 마지막 핵심 기능인 분석을 붙인다.
목표는 다음과 같다.
이 세 가지를 Gemini에게 전달하고,
아래와 같은 형태의 분석 결과를 받는 것이다.
이 단계에서 중요한 점은
자유로운 문장으로 받는 것이 아니라
앱에서 바로 사용할 수 있는 구조화된 응답으로 받도록 요청하는 것이다.
그리고 이 기능을 /stocks/{symbol}/analysis 같은 엔드포인트로 묶어
종목 상세 분석 API를 완성한다.
Step 17
이제 앱이 동작하기 시작하면 끝이 아니다.
마지막으로 반드시 아래 과정을 거친다.
1. Cursor AI에 코드 품질 검토 요청
2. Google AI Studio에 사용자 흐름 점검 요청
3. 누락된 예외 처리 보완
4. 응답 구조 정리
5. README 또는 개발 메모 정리
6. “MVP 완성” 기준 확정
이 단계에서 실습자는 단순히 기능만 구현한 것이 아니라,
AI와 함께 설계하고, 검토하고, 고도화하는 전체 개발 사이클을 경험하게 된다.
이번 실습이 끝났을 때 갖게 되는 결과물은 다음과 같다.
이번 4강의 본질은
“주식 앱 하나 만들기”에만 있지 않다.
더 중요한 것은 다음과 같다.
즉, 이번 실습은
AI를 검색 도구처럼 쓰는 단계가 아니라, 공동 설계자와 공동 개발자로 쓰는 방식을 연습하는 실습이다.
이번 실습에서는 한국투자증권 API, 네이버 검색 API, Gemini를 활용하여 주식 분석 앱을 만드는 과정을 다루었다.
그러나 이 실습의 진짜 목적은 특정 API를 익히는 것보다,
Google AI Studio와 Cursor AI를 오가며 설계-검토-수정-확정-개발의 흐름을 경험하는 것에 있다.
앞으로 새로운 서비스를 만들 때도
처음부터 모든 것을 직접 해결하려 하기보다,
AI와 역할을 나누고, 질문을 정교하게 만들고, 결과를 교차 검토하면서
더 빠르고 더 구조적으로 개발을 진행할 수 있어야 한다.
이번 4강은 바로 그 감각을 익히기 위한 실습이다.
원하시면 다음 단계로 바로 이어서
이 16스텝을 실제 교재 페이지 구성 형태로 더 다듬어서,
각 스텝마다 실습 목표 / 입력 프롬프트 / 체크포인트 / 결과물 형식으로 재편집해드리겠습니다.