바이브 코딩 용어 사전
코딩하면서 자주 듣게 될 용어들을 쉽게 정리했습니다
📱 프로그램 종류
CLI vs GUI vs Web - 프로그램의 진화
CLI (Command Line Interface)
명령줄 인터페이스
역사:
1970-80년대 컴퓨터는 CLI만 존재
마우스가 없었고, 모든 것을 키보드로 입력
DOS, Unix 시절의 유산
비유: 전문가용 수동 기어 자동차
- 정확한 제어 가능
- 익숙해지면 매우 빠름
- 초보자에게는 어려움
실제 모습:
C:\Users\홍길동> python script.py --input data.xlsx --output result.csv
CLI의 장점:
✅ 정확한 제어
- flag(옵션)으로 세밀한 조정
- --input, --output, --verbose 등
✅ 자동화 가능
- 스크립트로 저장해서 반복 실행
- 100개 파일을 한 번에 처리
✅ 원격 제어
- SSH로 서버 접속해서 명령 실행
- GUI는 화면 필요, CLI는 텍스트만
✅ 배치 처리
for file in *.xlsx; do python process.py $file; done
→ 폴더 안 모든 엑셀 자동 처리
✅ 리소스 효율
- 화면 그릴 필요 없음
- 메모리 적게 씀
CLI의 단점:
❌ 진입장벽 높음
- 명령어 외워야 함
- 오타 나면 에러
❌ 발견 불가능
- 어떤 기능 있는지 모름
- help 읽어야 함
언제 쓰나요?
- 서버 관리 (GUI 없는 환경)
- 자동화 스크립트
- 개발자 도구
- 바이브 코딩 초기 단계
GUI (Graphical User Interface)
그래픽 사용자 인터페이스
역사:
1984년 Macintosh에서 대중화
"일반인도 컴퓨터를 쓸 수 있게!"
Windows 95로 폭발적 확산
비유: 자동 기어 자동차
- 누구나 쉽게 사용
- 버튼만 누르면 됨
- 세밀한 제어는 제한적
실제 모습:
[파일 열기] 버튼 클릭
→ 폴더 창 열림
→ 파일 선택
→ [확인] 클릭
GUI의 장점:
✅ 직관적
- 보이는 대로 사용
- 설명서 안 봐도 됨
✅ 발견 가능성
- 메뉴 눌러보면 기능 발견
- 시각적 피드백
✅ 진입장벽 낮음
- 명령어 외울 필요 없음
- 마우스 클릭만
✅ 실수 방지
- "정말 삭제하시겠습니까?" 확인창
- 되돌리기 버튼
GUI의 단점:
❌ 반복 작업 느림
- 100개 파일 처리 → 100번 클릭
- 자동화 어려움
❌ 원격 사용 어려움
- 화면 전송 필요
- 느리고 불편
❌ 리소스 많이 씀
- 화면 렌더링
- 메모리/CPU 사용
언제 쓰나요?
- 일반 사용자용 프로그램
- 복잡한 시각화 필요
- 한 번만 쓰는 작업
- 사진/영상 편집
Web (웹 애플리케이션)
브라우저에서 실행되는 프로그램
역사:
2000년대 중반부터 본격화
Gmail(2004)이 혁명적 전환점
"설치 없이 바로 쓸 수 있다!"
비유: 공유 자동차 (쏘카)
- 내 차 아니어도 됨
- 어디서든 접근
- 최신 버전 자동 업데이트
실제 모습:
https://gmail.com 접속
→ 이메일 읽기/쓰기
→ 내 컴퓨터에 프로그램 없음
데스크톱 앱 vs Web 앱:
데스크톱 (Excel):
- 내 컴퓨터에 설치
- 인터넷 없어도 작동
- 버전 업데이트 수동
- Windows/Mac 따로 개발
Web (Google Sheets):
- 브라우저만 있으면 됨
- 인터넷 필요
- 자동 업데이트
- 모든 OS에서 동일
Web의 장점:
✅ 설치 불필요
- URL만 알면 바로 사용
- 저장 공간 안 씀
✅ 자동 업데이트
- 새로고침하면 최신 버전
- 사용자가 신경 안 써도 됨
✅ 크로스 플랫폼
- Windows, Mac, Linux 동일
- 스마트폰에서도 접근
✅ 협업 쉬움
- URL 공유만 하면 됨
- 실시간 동시 작업
✅ 중앙 관리
- 데이터가 서버에
- 내 컴퓨터 망가져도 안전
Web의 단점:
❌ 인터넷 필요
- 오프라인 작동 제한적
❌ 속도 제한
- 네트워크 왕복 필요
- 대용량 데이터 처리 느림
❌ 보안 우려
- 데이터가 서버에
- 서비스 종료되면?
언제 쓰나요?
- 여러 명 협업
- 여러 장소에서 접근
- 설치 부담 줄이기
- Streamlit이 바로 이거!
바이브 코딩에서:
CLI로 스크립트 작성
→ Streamlit으로 Web 앱 변환
→ URL만으로 공유 가능
🔧 개발 도구
IDE (통합 개발 환경)
Integrated Development Environment
역사:
초기에는 메모장에 코드 작성
→ 컴파일러 따로 실행
→ 에디터 + 컴파일러 + 디버거 통합
→ IDE 탄생!
비유: 주방 vs 식당 주방
- 일반 주방: 칼, 도마, 냄비 따로
- 식당 주방: 모든 도구 한곳에 체계적으로
메모장 vs IDE:
메모장으로 코딩:
1. 메모장에 코드 작성
2. 파일 저장
3. 터미널 열기
4. python script.py 실행
5. 에러 나면 1번으로
→ 불편!
IDE로 코딩:
1. 코드 작성하면서 에러 표시
2. F5 누르면 바로 실행
3. 에러 위치 자동으로 표시
→ 편함!
IDE 핵심 기능:
✅ Syntax Highlighting (문법 색깔)
- 함수는 파란색
- 문자열은 초록색
- 에러는 빨간 밑줄
→ 코드 읽기 쉬움
✅ IntelliSense (자동완성)
- pan 타이핑 → pandas 제안
- df. 타이핑 → .head(), .tail() 등 메서드 목록
→ 함수명 외울 필요 없음
✅ 실시간 에러 검사
- 괄호 안 닫음 → 즉시 표시
- 변수 오타 → 빨간 밑줄
→ 실행 전에 에러 발견
✅ 통합 터미널
- IDE 안에서 바로 실행
- 창 전환 불필요
✅ 디버거
- 코드 한 줄씩 실행
- 변수 값 확인
→ 버그 찾기 쉬움
바이브 코딩에서:
Antigravity 사용
- VS Code 기반
- Gemini AI 내장
- MCP로 Context7 연결
터미널 / 명령 프롬프트 / 콘솔
모두 같은 말!
비유: 컴퓨터와의 직접 대화창
- GUI: 메뉴판 보고 주문
- 터미널: 주방장한테 직접 말로 주문
OS별 이름:
- Windows: 명령 프롬프트 (cmd), PowerShell
- Mac/Linux: 터미널 (Terminal)
- IDE: 통합 터미널
용도:
- 프로그램 실행
- 패키지 설치
- Git 명령어
- 폴더 이동
- 파일 생성/삭제
기본 명령어:
Windows:
cd 폴더명 # 폴더 이동
dir # 목록 보기
mkdir 폴더명 # 폴더 생성
Mac/Linux:
cd 폴더명 # 폴더 이동
ls # 목록 보기
mkdir 폴더명 # 폴더 생성
공통:
python script.py # Python 실행
pip install pandas # 패키지 설치
Extension (확장 프로그램)
IDE에 추가하는 기능
비유: 스마트폰 앱
- 기본폰: 전화, 문자만
- 앱 설치: 카카오톡, 유튜브 등 추가
VS Code/Antigravity:
- 기본: 텍스트 편집만
- Python extension: Python 문법 이해
- AI extension: 코드 자동 작성
바이브 코딩 필수 Extension:
✅ Python (Microsoft)
- 문법 색깔
- 자동완성
- 에러 표시
✅ AI 도구 중 하나
- Antigravity: Gemini 기본 내장
- VS Code: Copilot, Claude 등 선택
🐍 Python 관련
Python 인터프리터
Python 코드를 실행하는 프로그램
비유: 번역기
- 한국어(Python 코드)
- → 컴퓨터어(기계어)
역할:
1. .py 파일 읽기
2. 한 줄씩 번역
3. 즉시 실행
확인:
터미널에서
python --version
→ Python 3.12.1
인터프리터 vs 컴파일러:
인터프리터 (Python):
- 한 줄씩 즉시 실행
- 느리지만 개발 빠름
- 에러 나면 그 줄에서 멈춤
컴파일러 (C, Java):
- 전체 번역 후 실행
- 빠르지만 개발 느림
- 컴파일 시간 필요
패키지 / 라이브러리 / 모듈
거의 같은 말! (엄밀히는 차이 있지만 신경 안 써도 됨)
비유: 레고 블록 세트
- 기본 블록(Python): 직접 만들어야 함
- 레고 세트(패키지): 완성품 제공
왜 쓰나요?
직접 만들기:
엑셀 읽기 → 1000줄 코드 필요
패키지 사용:
import pandas as pd
df = pd.read_excel("data.xlsx")
→ 2줄로 끝!
주요 패키지:
✅ pandas
- 엑셀/CSV 처리
- 데이터 분석
✅ requests
- 웹페이지 가져오기
- API 호출
✅ beautifulsoup4
- HTML 파싱
- 크롤링
✅ streamlit
- 웹앱 만들기
- 버튼, 입력창 자동 생성
✅ openai / anthropic
- AI API 호출
설치:
pip install pandas
→ 인터넷에서 다운로드 + 설치
사용:
import pandas as pd
→ 코드에서 불러오기
프레임워크
라이브러리보다 큰 개념
비유:
- 라이브러리: 연장 (내가 집 짓기)
- 프레임워크: 조립식 주택 (구조 정해짐)
라이브러리 (requests):
내가 주도권
필요한 기능만 가져다 씀
프레임워크 (Streamlit):
프레임워크가 주도권
정해진 방식대로 코드 작성
# Streamlit 방식
import streamlit as st
st.title("제목") # 이렇게 써야 함
→ Streamlit이 알아서 웹으로 변환
프레임워크 예시:
- Django/Flask: 웹 백엔드
- Streamlit: 데이터 앱
- PyQt: 데스크톱 GUI
장점:
✅ 빠른 개발
✅ 검증된 구조
✅ 모범 사례 내장
단점:
❌ 자유도 낮음
❌ 학습 곡선
venv (가상환경)
Virtual Environment
비유: 프로젝트별 사물함
- 공용 사물함: 충돌 발생
- 개인 사물함: 각자 독립
왜 필요?
문제 상황:
프로젝트A: pandas 1.3 필요
프로젝트B: pandas 2.0 필요
→ 하나만 설치 가능
→ 충돌!
가상환경 사용:
프로젝트A 가상환경: pandas 1.3
프로젝트B 가상환경: pandas 2.0
→ 독립적으로 관리
→ 충돌 없음!
사용법:
# 생성
python -m venv .venv
# 활성화
Windows: .venv\Scripts\activate
Mac/Linux: source .venv/bin/activate
# 패키지 설치
pip install pandas
# 비활성화
deactivate
바이브 코딩에서:
Week 10 이후에 배울 거예요
초반에는 불필요
🌐 웹/네트워크
API
Application Programming Interface
비유: 식당 메뉴판 + 주문 시스템
- 손님(내 프로그램): 메뉴판 보고 주문
- 주방(다른 프로그램/서버): 요리 제공
- 웨이터(API): 주문 전달
왜 필요?
직접 구현:
날씨 정보 → 기상청 서버 해킹?
번역 → 번역 엔진 개발?
→ 불가능!
API 사용:
날씨 API: "서울 날씨 알려줘"
번역 API: "Hello를 한국어로"
→ 간단!
실제 예시:
날씨 API:
import requests
# API 요청
response = requests.get("https://api.weather.com/seoul")
# 응답 받기
data = response.json()
print(data["temperature"]) # 15도
OpenAI API:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "안녕"}]
)
print(response.choices[0].message.content)
API 종류:
✅ RESTful API (제일 흔함)
- HTTP로 통신
- JSON 데이터
✅ GraphQL
- 필요한 데이터만 요청
✅ WebSocket
- 실시간 통신
- 채팅, 주식 등
바이브 코딩에서:
Week 7-8에서 AI API 배울 거예요
- OpenAI API
- Claude API
URL / 링크 / 주소
모두 같은 말
구조 이해:
https://www.example.com:443/path/to/page?id=123#section
1. https:// (프로토콜)
- 통신 방법
- http: 일반
- https: 암호화 (안전)
2. www.example.com (도메인)
- 서버 주소
- IP 주소의 별명
3. :443 (포트)
- 보통 생략
- 443: https 기본
- 80: http 기본
4. /path/to/page (경로)
- 서버 내 파일 위치
5. ?id=123 (쿼리)
- 파라미터 전달
- & 로 여러 개
6. #section (프래그먼트)
- 페이지 내 위치
실제 예시:
https://github.com/arimons/vibe-coding
→ GitHub 서버
→ arimons 사용자
→ vibe-coding 저장소
💾 버전 관리
Git
코드 버전 관리 도구
비유: 게임 세이브 포인트 + 타임머신
- 세이브: 특정 시점 저장
- 로드: 이전 시점으로 복구
- 분기: 다른 선택지 시도
왜 필요?
문제 상황:
- 코드 수정했다가 망가짐
- 어제 버전으로 돌아가고 싶음
- 어느 부분을 바꿨는지 모름
- 팀원과 코드 합치기 어려움
Git 사용:
- 모든 변경 기록
- 언제든 과거로 복구
- 누가 뭘 바꿨는지 추적
- 자동 병합
기본 개념:
Commit (저장):
git add .
git commit -m "엑셀 처리 기능 추가"
→ 현재 상태 저장
Branch (분기):
git branch feature-login
→ 새로운 시도 시작
→ 원본은 안전
Merge (병합):
git merge feature-login
→ 분기 합치기
주요 명령어:
git init # Git 시작
git status # 상태 확인
git add . # 변경사항 준비
git commit -m "" # 저장
git log # 기록 보기
git diff # 변경 비교
바이브 코딩에서:
Week 10에 자세히 배울 거예요
GitHub
Git 저장소를 온라인에서 관리
비유: Git = 카메라 / GitHub = 인스타그램
- Git: 사진(버전) 찍기
- GitHub: 온라인에 업로드 + 공유
차이점:
Git:
- 내 컴퓨터에서 버전 관리
- 오프라인 가능
- 무료 도구
GitHub:
- 온라인 저장소
- 협업 기능
- 포트폴리오
- 무료 + 유료
주요 기능:
✅ 코드 백업
- 컴퓨터 망가져도 안전
✅ 협업
- 여러 명이 동시 작업
- Pull Request로 리뷰
✅ 이슈 추적
- 버그 리포트
- 기능 요청
✅ 포트폴리오
- 취업시 코드 증명
GitHub Pages:
무료 웹호스팅
- .md 파일 → 자동으로 웹사이트
- vibe-coding 교재도 여기 올림
명령어:
git push # GitHub에 업로드
git pull # GitHub에서 다운로드
git clone # 저장소 복사
Repository (저장소)
프로젝트 폴더
비유: 프로젝트 전용 USB
- 코드, 문서, 설정 등 모두 포함
- Git으로 관리됨
구조:
my-project/ # 저장소 루트
├── .git/ # Git 데이터 (숨김)
├── src/ # 소스 코드
├── README.md # 프로젝트 설명
├── requirements.txt # 필요 패키지
└── .gitignore # Git 무시 파일
종류:
- 로컬 저장소: 내 컴퓨터
- 원격 저장소: GitHub
용어:
- Clone: 원격 → 로컬 복사
- Fork: 다른 사람 저장소 복사
- Star: 북마크 (좋아요)
⚙️ 실행 관련
실행 / Run / 런타임
프로그램을 돌리는 것
실행 방법:
1. CLI:
python script.py
2. IDE:
F5 또는 Run 버튼
3. 자동 실행:
- 부팅시
- 스케줄 (매일 9시)
런타임 (Runtime):
프로그램이 실행 중인 상태
런타임 에러:
- 실행 중에 발생하는 에러
- 문법 에러와 다름
예시:
# 문법 에러
print("hello" # 괄호 안 닫음
→ 실행 전에 발견
# 런타임 에러
x = 10 / 0 # 0으로 나누기
→ 실행해야 발견
에러 / 버그
에러 (Error): 프로그램이 멈춤
버그 (Bug): 잘못된 동작
비유:
- 에러: 차 시동 안 걸림 (치명적)
- 버그: 방향지시등 반대로 (동작하지만 잘못됨)
흔한 Python 에러:
SyntaxError (문법 에러):
print("hello" # 괄호 안 닫음
→ 실행 전에 발견
NameError (이름 에러):
print(x) # x 정의 안 함
→ 변수 없음
TypeError (타입 에러):
"hello" + 5 # 문자+숫자
→ 타입 안 맞음
ModuleNotFoundError:
import pandas # pandas 안 깔림
→ pip install pandas
IndentationError:
def hello():
print("hi") # 들여쓰기 안 함
→ Python은 들여쓰기 필수
IndexError:
lst = [1, 2, 3]
print(lst[10]) # 인덱스 없음
→ 범위 초과
에러 읽는 법:
Traceback (most recent call last):
File "script.py", line 5, in <module>
result = 10 / 0
ZeroDivisionError: division by zero
해석:
- script.py 파일
- 5번째 줄
- 0으로 나누기 에러
디버깅
Debugging = 벌레(Bug) 제거
역사:
1947년 Harvard Mark II 컴퓨터
실제 나방이 회로에 끼어서 오작동
→ "버그" 용어 탄생
디버깅 방법:
1. 에러 메시지 읽기
- 어느 줄?
- 무슨 에러?
2. print() 디버깅
print("여기까지 왔나?")
print(f"x 값: {x}")
→ 어디서 잘못됐는지 추적
3. AI한테 물어보기 (바이브 코딩 방식!)
에러 메시지 복사
→ AI한테 붙여넣기
→ "이 에러 뭐야? 어떻게 고쳐?"
4. 구글링
에러 메시지 검색
→ Stack Overflow
5. IDE 디버거
- 중단점 설정
- 한 줄씩 실행
- 변수 값 확인
바이브 코딩 디버깅:
1. 에러 메시지 복사
2. AI한테 물어보기
3. 제안된 코드 적용
4. 해결!
📝 코드 기본
변수
값을 담는 상자
비유: 이름표 붙인 박스
- 상자 안에 물건(값) 넣기
- 이름표로 찾기
예시:
name = "홍길동" # 문자열
age = 30 # 숫자
is_student = True # 참/거짓
변수명 규칙:
✅ 가능:
my_name
user_age
total2
❌ 불가능:
2total # 숫자로 시작
my-name # 하이픈
for # 예약어
변수의 장점:
반복 사용:
name = "홍길동"
print(f"안녕하세요 {name}님")
print(f"{name}님의 포인트")
한 번에 수정:
name을 "김철수"로 바꾸면
모든 곳에 적용
함수
특정 작업을 수행하는 코드 묶음
비유: 레고 블록
- 한 번 만들면 계속 재사용
- 조립해서 큰 프로그램 만들기
함수 없이:
print("=" * 50)
print("환영합니다!")
print("=" * 50)
print("=" * 50)
print("감사합니다!")
print("=" * 50)
→ 반복!
함수 사용:
def print_box(message):
print("=" * 50)
print(message)
print("=" * 50)
print_box("환영합니다!")
print_box("감사합니다!")
→ 깔끔!
함수의 장점:
✅ 재사용
✅ 코드 정리
✅ 유지보수 쉬움
예시:
def calculate_tax(price):
return price * 0.1
tax1 = calculate_tax(10000) # 1000
tax2 = calculate_tax(50000) # 5000
주석
코드 설명 (실행 안 됨)
비유: 요리책의 팁
- "이 단계가 중요해요!"
- "소금 대신 간장도 가능"
Python 주석:
# 한 줄 주석
x = 10 # 변수 선언
"""
여러 줄
주석
"""
좋은 주석:
# 할인율 적용
price = price * 0.9
나쁜 주석:
# x에 10을 넣음
x = 10
→ 코드만 봐도 알 수 있음
주석 원칙:
- "왜" 를 설명 (무엇이 아니라)
- 나중의 나를 위해
- 복잡한 부분만
바이브 코딩에서:
AI가 주석도 자동 작성
"# 엑셀 파일 읽기" 같은 주석 자동 생성
🤖 AI 관련
프롬프트
AI에게 주는 명령/질문
비유: 식당 주문
- 나쁜 주문: "뭐 좀"
- 좋은 주문: "된장찌개, 덜 짜게, 밥 곱빼기"
나쁜 프롬프트:
"엑셀 처리"
→ 뭘 어떻게?
좋은 프롬프트:
"pandas를 사용해서
data.xlsx 파일을 읽고,
'날짜' 컬럼으로 내림차순 정렬한 후,
sorted.xlsx로 저장하는
Python 코드를 작성해줘"
→ 구체적!
프롬프트 작성 팁:
✅ 구체적으로
❌ "웹 크롤링"
✅ "네이버 뉴스 제목 100개 크롤링"
✅ 단계별로
1. 파일 읽기
2. 중복 제거
3. 정렬
4. 저장
✅ 제약 조건 명시
- pandas 사용
- 에러 처리 포함
- 진행률 표시
✅ 예시 제공
입력: data.xlsx (이름, 나이)
출력: sorted.csv (나이순)
바이브 코딩 = 좋은 프롬프트 작성법 배우기
LLM
Large Language Model
거대 언어 모델
비유: 초대형 도서관 + 사서
- 엄청난 양의 책(학습 데이터)
- 질문하면 답변 생성
예시:
- GPT (OpenAI)
- Claude (Anthropic)
- Gemini (Google)
어떻게 작동?
학습:
인터넷의 수십억 페이지 읽음
→ 패턴 학습
→ 다음 단어 예측
사용:
"Python에서 엑셀 읽는 법"
→ 학습한 패턴으로 답변 생성
특징:
✅ 방대한 지식
✅ 자연어 이해
✅ 코드 생성 가능
⚠️ 한계:
❌ 환각(Hallucination)
- 그럴싸한 거짓말
- 없는 함수 만들어냄
❌ 최신 정보 부족
- 학습 데이터 기준
- → MCP Context7로 해결!
❌ 수학 약함
- 계산보다 패턴
바이브 코딩에서:
LLM = 코딩 조수
명령만 잘하면 코드 자동 작성
🔌 AI 도구 연동
MCP (Model Context Protocol)
AI가 외부 도구와 소통하는 표준
비유: USB 포트
- 컴퓨터에 USB 포트
- 키보드, 마우스, 프린터 연결
- AI에 MCP 포트
- 파일, 데이터베이스, 최신 문서 연결
왜 필요?
문제:
AI: "pandas로 엑셀 읽어"
→ pandas 1.0 문법으로 코드 생성
→ 실제 설치된 버전: pandas 2.0
→ 에러!
LLM 학습 데이터:
- 2025년 1월까지
- pandas 2.0 출시: 2025년 2월
- → 최신 문법 모름
해결책: MCP Context7
- 실시간으로 pandas 2.0 문서 검색
- 최신 문법 제공
- AI가 최신 코드 작성
MCP 서버 종류:
Context7 (필수!):
- 라이브러리 최신 문서
- pandas, requests, streamlit 등
- 구버전 코드 방지
Filesystem:
- 파일/폴더 접근
- 코드베이스 읽기
Database:
- MySQL, PostgreSQL 연결
- 쿼리 실행
Serena (고급):
- LSP 기반 코드 분석
- 함수 참조 찾기
- 대규모 프로젝트용
- 바이브 코딩에는 과함
설정 방법 (Antigravity):
1. 우상단 "..." 클릭
2. "MCP Servers" 선택
3. MCP Store 열기
4. "Context7" 검색
5. Install 클릭
6. 완료!
사용 예시:
Context7 없이:
"pandas로 엑셀 읽기"
→ pd.read_excel() # 옛날 방식
Context7 사용:
"pandas로 엑셀 읽기"
→ AI가 Context7에서 최신 문서 확인
→ pd.read_excel(engine='openpyxl') # 최신 방식
바이브 코딩에서:
✅ Context7만 설치하면 됨
❌ 다른 MCP는 불필요
📦 파일 관련
경로 (Path)
파일의 위치
비유: 집 주소
- 절대 주소: 서울시 강남구 테헤란로 123
- 상대 주소: 옆집, 2층
절대 경로 (Absolute Path):
Windows:
C:\Users\홍길동\Documents\project\data.xlsx
Mac/Linux:
/Users/honggildong/Documents/project/data.xlsx
상대 경로 (Relative Path):
현재 위치: C:\Users\홍길동\Documents\project
./data.xlsx # 같은 폴더
../images/photo.jpg # 상위 폴더의 images
subfolder/file.txt # 하위 폴더
특수 기호:
. 현재 폴더
.. 상위 폴더
~ 홈 폴더 (Mac/Linux)
OS별 차이:
Windows: 역슬래시 \
Mac/Linux: 슬래시 /
Python에서는:
import os
path = os.path.join("folder", "file.txt")
→ OS 상관없이 작동
확장자
파일 형식 구분
구조:
파일명.확장자
script.py
document.docx
주요 확장자:
코드:
- .py: Python
- .js: JavaScript
- .java: Java
- .c: C언어
데이터:
- .xlsx: 엑셀
- .csv: 쉼표로 구분
- .json: JavaScript Object
- .xml: 구조화된 데이터
- .txt: 텍스트
문서:
- .md: Markdown
- .docx: Word
- .pdf: PDF
실행 파일:
- .exe (Windows)
- .app (Mac)
- .sh (Linux 스크립트)
이미지:
- .jpg / .png / .gif
왜 중요?
Python에서:
파일 읽을 때 확장자 확인
if file.endswith('.xlsx'):
df = pd.read_excel(file)
elif file.endswith('.csv'):
df = pd.read_csv(file)
💡 기타 유용한 용어
오픈소스
Open Source
소스 코드가 공개된 프로그램
비유: 공개 레시피
- 일반 레시피: 비공개 (코카콜라)
- 공개 레시피: 누구나 보고 수정 가능
특징:
✅ 무료
✅ 수정 가능
✅ 재배포 가능
✅ 커뮤니티 개발
대표 예시:
- Python (언어)
- Linux (OS)
- VS Code (IDE)
- pandas (라이브러리)
vs 상용 소프트웨어:
- Windows (유료, 비공개)
- Adobe Photoshop (유료, 비공개)
왜 무료?
1. 취미 프로젝트
2. 회사 홍보
3. 커뮤니티 기여
오픈소스 라이선스:
- MIT: 제일 자유로움
- GPL: 수정본도 공개 필수
- Apache: 특허 보호
크로스 플랫폼
여러 운영체제에서 작동
비유: 멀티 어댑터
- 한국, 미국, 유럽 어디서나 사용
예시:
크로스 플랫폼:
- Python (Windows/Mac/Linux)
- VS Code
- Chrome
- Node.js
플랫폼 종속:
- .exe (Windows만)
- .dmg (Mac만)
- Safari (Mac/iPhone만)
장점:
✅ 개발 한 번
✅ 모든 OS 지원
✅ 사용자 넓음
어떻게 가능?
방법 1: 인터프리터 언어
Python 코드는 똑같음
Python 인터프리터가 OS별로 다름
방법 2: 가상 머신
Java → JVM 위에서 실행
방법 3: 웹
브라우저만 있으면 됨
의존성
Dependency
다른 패키지가 필요함
비유: 자동차 부품
- 엔진: 배터리 필요
- 배터리: 충전기 필요
→ 의존성 체인
예시:
Streamlit 설치:
pip install streamlit
자동으로 함께 설치:
- pandas
- numpy
- pillow
- ...
왜? Streamlit이 이것들 사용하니까
의존성 지옥 (Dependency Hell):
문제:
- 패키지A: numpy 1.20 필요
- 패키지B: numpy 1.24 필요
→ 충돌!
해결:
- venv로 분리
- 버전 명시
- requirements.txt 관리
requirements.txt:
pandas==2.0.0
requests>=2.28.0
streamlit==1.28.0
사용:
pip install -r requirements.txt
→ 명시된 버전 설치
배포 / 디플로이
Deploy
프로그램을 실제로 사용 가능하게
비유: 요리
- 개발: 요리 연습
- 배포: 손님에게 제공
배포 종류:
1. 웹 배포:
- Streamlit Cloud
- Heroku
- AWS
→ URL로 접근
2. 앱스토어:
- Google Play
- App Store
→ 다운로드 설치
3. 서버 배포:
- 회사 서버에 설치
- 내부에서만 사용
4. 실행 파일:
- .exe 만들기
- 배포용 패키징
바이브 코딩 배포:
개발:
python app.py
→ 내 컴퓨터에서만
배포:
streamlit deploy
→ https://my-app.streamlit.app
→ 전세계 누구나 접근
배포시 고려사항:
- 보안 (API 키 숨기기)
- 성능 (동시 접속)
- 비용 (서버 요금)
🎯 바이브 코딩 핵심 용어 Top 10
1. CLI: 명령어로 실행 (자동화 핵심)
2. Web: 브라우저에서 실행 (Streamlit)
3. IDE: 코드 에디터 (Antigravity)
4. 터미널: 명령어 입력 화면
5. 패키지: 남이 만든 코드 (pandas)
6. API: 프로그램끼리 소통 (OpenAI)
7. 에러: 프로그램 멈춤 (디버깅 대상)
8. 함수: 코드 묶음 (재사용)
9. 프롬프트: AI한테 주는 명령 (핵심 스킬)
10. MCP: AI에게 최신 문서 제공 (Context7)
💬 모르는 용어 나오면?
1. 이 문서 검색 (Ctrl+F)
- 5000단어 이상 수록
- 비유와 예시 포함
2. AI한테 물어보기
"Python에서 [용어]가 뭐야?"
"비유로 설명해줘"
3. 강의 중 질문하기
- 바보 같은 질문은 없습니다
- 모르는 게 당연합니다
기억하세요:
"개발자도 구글/AI 보면서 일합니다!"
작성일: 2025년 2월 11일
버전: 3.0 (비유와 맥락 강화)
대상: 바이브 코딩 Week 1 수강생
분량: 약 8,000 단어