바이브 코딩 시대의 기술 지도: 하드웨어부터 앱까지
AI에게 말로 코드를 시키는 "바이브 코딩" 시대에도, 무엇이 어디서 어떻게 돌아가는지 알아야 AI와 제대로 일할 수 있어요. 오늘은 AI 산업의 가치사슬과 하드웨어부터 앱까지의 기술 층, 학습과 추론, 코드를 읽는 여섯 가지 개념, 그리고 코랩·API·깃으로 앱을 만드는 흐름을 배웠어요.
보충 표시는 교수님 자료와 필기에 없는데 이해를 위해 더한 내용이에요.
용어 사전
이 노트에 나오는 줄임말이에요. 처음 보면 이 표로 돌아와서 확인하세요.
| 용어 | 뜻 |
|---|---|
| GPU | Graphics 그래픽 + Processing 처리 + Unit 장치 단순한 계산을 한꺼번에 아주 많이 하는 칩 |
| TPU | Tensor 숫자 묶음 + Processing 처리 + Unit 장치 구글이 AI 계산 전용으로 만든 칩 |
| NPU | Neural 신경 + Processing 처리 + Unit 장치 신경망 계산(특히 추론)에 특화된 칩 |
| CUDA | Compute 계산 + Unified 통합된 + Device 장치 + Architecture 구조 NVIDIA GPU에 병렬 계산을 시키는 플랫폼 |
| API | Application 응용 프로그램 + Programming 프로그래밍 + Interface 접점 프로그램끼리 일을 부탁하는 약속된 창구 |
| SaaS | Software 소프트웨어 + as a Service 서비스로 설치 없이 인터넷으로 빌려 쓰는 소프트웨어 (구독형) |
| UI | User 사용자 + Interface 접점 사용자가 보고 누르는 화면 |
| UX | User 사용자 + eXperience 경험 앱을 처음부터 끝까지 쓰는 전체 경험 |
| CLI | Command 명령 + Line 줄 + Interface 접점 글자 명령으로 프로그램을 다루는 창 (터미널) |
| IDE | Integrated 통합 + Development 개발 + Environment 환경 코드 작성·실행·오류 찾기를 한곳에서 하는 프로그램 |
| SQL | Structured 구조화된 + Query 질의 + Language 언어 데이터베이스에서 자료를 찾고 바꾸는 언어 |
| CRUD | Create 만들기 + Read 읽기 + Update 고치기 + Delete 지우기 데이터베이스로 하는 네 가지 기본 작업 |
1부. 바이브 코딩: AI 시대에 코딩을 배우는 이유
1-1. 수업을 연 세 편의 영상
교수님은 수업 시작에 세 편의 영상을 소개했어요.
| 영상 제목 | 핵심 메시지 |
|---|---|
| High School Dropout to OpenAI Researcher ▶ youtu.be/vq5WhoPCWQ8 | 고등학교를 그만둔 사람이 AI에게 물어 가며 공부해 OpenAI 연구자가 됐어요. |
| 토스 최연소 PO 출신 22살이 말하는 AI 시대 주니어 생존법 ▶ youtu.be/hOfLzY-G59g | 젊은 실무자가 AI를 무기로 빠르게 성장하는 방법이에요. |
| 10대는 왜 학교를 자퇴하고 창업했을까? ▶ youtu.be/MMRPNFbrf8I | 학교 밖에서 AI 도구로 직접 만들어 보며 배우는 길이에요. |
첫 영상의 주인공은 스웨덴 출신의 가브리엘 페테르손(Gabriel Petersson)이에요. 2019년 고등학교를 그만두고 스타트업에서 일하다 OpenAI에 들어가 영상 생성 모델 Sora 팀 연구자가 됐어요. 그는 교과서를 처음부터 읽지 않고, ChatGPT에게 작은 프로젝트를 먼저 만들어 달라고 한 뒤 모르는 부분을 거꾸로 채워 가며 배웠다고 말했어요.
세 영상의 공통점은 하나예요. AI를 선생님이자 동료로 쓰면, 학벌이나 나이와 상관없이 빠르게 만들고 배울 수 있다는 거예요.
- AI 도구 덕분에 배우는 속도와 방식이 바뀌었어요.
- 먼저 만들어 보고, 모르는 것을 채워 가는 방식이 가능해졌어요.
1-2. 바이브 코딩: 말로 시키는 코딩
교수님은 바이브 코딩이 미국 개발자와의 격차를 없애 줬다고 했어요. 예전에는 실력 좋은 개발자를 많이 가진 쪽이 앞서갔지만, 이제는 누구나 AI에게 말로 시켜 코드를 만들 수 있어요.
바이브 코딩 Vibe Coding
"바이브(vibe)"는 분위기·느낌이라는 뜻이에요. 문법을 외우기보다 "이런 느낌으로 만들어 줘"라고 말하며 만든다는 데서 나온 이름이에요.
사람과 AI가 일을 나눠요. 사람은 무엇을 왜 만들지 정하고 결과가 맞는지 판단해요. AI는 실제 코드를 쓰고 고치고, 오류를 설명해요.
슬라이드는 중요한 점을 하나 짚어요. AI로 만든 앱이라고 해서 그 앱 안에 AI 기능이 꼭 들어 있는 것은 아니에요. AI는 "만드는 도구"로만 쓰일 수도 있어요.
풀고 싶은 문제와 원하는 결과를 말로 적어요.
AI가 코드를 쓰고 실행해요.
결과를 보고 "여기가 다르다"고 정확히 다시 안내해요.
| 비유 | AI 코딩 | |
| "거실을 밝고 넓어 보이게 해 주세요" | ↔ | 자연어 지시 (프롬프트) |
| 시공 업체가 실제로 공사 | ↔ | AI가 코드 작성 |
| 완성된 집을 보고 "조명이 어두워요" | ↔ | 결과 판단과 다시 안내 |
"바이브 코딩"이라는 말은 2025년 2월 OpenAI 공동 창업자 안드레이 카르파시(Andrej Karpathy)가 처음 써서 널리 퍼졌어요.
- 사람은 문제·기대 동작·우선순위·결과 판단을 맡아요.
- AI는 코드 작성·수정·테스트·설명을 맡아요.
- 원하는 결과를 정확히 안내하는 능력이 핵심이에요.
1-3. 그래도 컴퓨터의 언어를 알아야 하는 이유
우리가 코딩을 배운 이유는 컴퓨터가 알아듣는 언어로 말하기 위해서였어요. 이제는 컴퓨터(AI)가 내 말을 알아듣게 됐어요. 하지만 하드웨어는 여전히 자연어를 쓰지 않아요. 칩은 모두 컴퓨터 언어로만 움직여요.
컴파일러와 인터프리터 Compiler · Interpreter
컴퓨터 칩(하드웨어)은 0과 1로 된 기계어만 알아들어요. 그래서 사람이 쓴 코드는 반드시 기계어로 번역돼야 해요.
컴파일러(compiler, 모아서 번역하는 것)는 코드 전체를 미리 번역해 실행 파일을 만들어요. C 언어가 대표적이에요. 기계어에 가까워 빠르지만 배우기 어렵고, 오류를 찾으려면 도구와 기술이 필요해요.
인터프리터(interpreter, 통역사)는 코드를 한 줄씩 바로 번역하며 실행해요. 파이썬이 대표적이에요. 배우기 쉽고 바로 결과가 나오지만, 들여쓰기 규칙이 엄격하고 속도는 상대적으로 느려요.
사람이 코드를 써요 (C, 파이썬 등).
컴파일러 또는 인터프리터가 기계어로 바꿔요.
칩이 기계어를 실행해 결과를 내요.
| 비유 | 프로그래밍 | |
| 책 한 권을 통째로 번역해 출판 | ↔ | 컴파일러 |
| 회의장에서 한 문장씩 동시통역 | ↔ | 인터프리터 |
| 번역된 말을 듣는 외국인 | ↔ | 하드웨어(칩) |
그래서 AI가 만든 코드는 "마음에 드는 형식으로" 바로 나오지 않는 경우가 많아요. 내가 풀고 싶은 문제가 무엇인지, 결과가 어떤 모습이어야 하는지를 정확하게 안내해야 해요.
교수님은 실리콘밸리 이야기도 했어요. 그곳에서는 소프트웨어 팀장과 엔지니어 사이에서 양쪽 말을 다 할 줄 아는 사람이 중요해요. 엔지니어의 말이 "외계어"처럼 들리면 일을 맡길 수도, 결과를 판단할 수도 없기 때문이에요.
Q. 파이썬은 왜 AI 공부의 첫 언어인가요?
A. 슬라이드는 파이썬을 "AI 세계의 모국어"라고 불러요. PyTorch, TensorFlow 같은 AI 도구가 대부분 파이썬으로 쓰여 있고, 문법이 쉬워 바로 실행해 볼 수 있기 때문이에요.
- 하드웨어는 컴퓨터 언어로만 움직여요.
- C는 컴파일, 파이썬은 인터프리터 방식이에요.
- 엔지니어의 언어를 이해해야 AI와 사람 모두에게 일을 맡길 수 있어요.
AI에게 일을 시킬 때는 "무엇을, 왜, 어떤 결과로"를 먼저 적어 보세요. 강의의 마지막 메시지처럼, 그 분야의 "원어민"(엔지니어·AI)과 그들의 언어로 대화할 수 있으면 협업 속도가 크게 빨라져요.
2부. AI 가치사슬과 기술의 층
2-1. AI 가치사슬: 누가 무엇을 파나
AI 가치사슬 AI Value Chain
"가치사슬"은 원재료가 제품이 되어 손님에게 가기까지 각 단계에서 가치가 더해지는 흐름을 말해요.
AI에서는 데이터를 모아 파는 회사, 칩을 만드는 회사, 컴퓨터를 빌려주는 클라우드 회사, 모델을 만드는 회사, 그 모델로 서비스를 만드는 회사가 차례로 이어져요.
사슬을 보면 "우리 회사는 어디에 서 있고, 누구에게 의존하는가"를 알 수 있어요. 수업에서 교수님이 "밸류체인을 봐야 한다"고 강조한 이유예요.
데이터와 칩, 컴퓨터(클라우드)를 준비해요.
그 위에서 모델을 학습시켜요.
모델을 불러 쓰는 앱·서비스를 만들어 고객에게 팔아요.
| 비유 | AI 산업 | |
| 밀가루 농장 | ↔ | 데이터 공급자 |
| 오븐 제조사 | ↔ | 하드웨어 제조사 |
| 공용 주방 대여 | ↔ | 클라우드 |
| 빵 레시피 개발 | ↔ | 모델 개발 |
| 동네 빵집 판매 | ↔ | 앱·서비스 |
수업 필기에 나온 각 단계의 예를 정리하면 이래요.
| 단계 | 하는 일 | 예 |
|---|---|---|
| 데이터 공급자 | 웹사이트·데이터를 모아 팔아요 | 공개 데이터셋, 웹 수집, 출판사 |
| 하드웨어 제조사 | 칩을 만들어요. 추론용 칩을 직접 만드는 회사도 있어요 | NVIDIA, AMD, Intel, Google(TPU) |
| 클라우드 | 컴퓨터를 빌려줘요 (로컬 서버 대신) | AWS, 구글 클라우드, 애저, 클라우드플레어 |
| 모델 개발 | 거대 모델을 학습시켜요 | OpenAI, Anthropic, Meta, Google DeepMind, Mistral |
| 앱 개발 | API로 모델을 불러 서비스를 만들어요 | SaaS 회사, 기업, 개발자 |
필기의 "리벨리온"은 2020년에 세워진 한국의 AI 칩 회사 리벨리온(Rebellions)이에요. AI 추론에 특화된 NPU(신경망 처리 장치)를 만들어 NVIDIA와 경쟁하겠다고 밝혔고, 2026년 3월에는 상장 전 투자로 약 4억 달러를 모았어요.
교수님은 "SaaS는 더 이상 팔리지 않는다"고 했어요. 빅테크가 만든 AI 엔진에서 기능을 가져다 쓰면, 예전에 따로 사던 소프트웨어 기능을 직접 쉽게 만들 수 있기 때문이에요. 그만큼 소프트웨어 회사의 "해자(경쟁사가 넘기 어려운 벽)"가 낮아지고 있어요.
실제로 2026년 초 AI 에이전트 제품들이 잇따라 나오자 "SaaS 종말(SaaSpocalypse)"이라는 말과 함께 미국 소프트웨어 회사 주가가 크게 떨어졌어요. 다만 모든 SaaS가 끝났다는 해석에는 반론도 많아요.
- AI 산업은 데이터 → 하드웨어 → 클라우드 → 모델 → 앱으로 이어져요.
- AI가 기능을 쉽게 만들어 주면서 소프트웨어의 해자가 낮아지고 있어요.
2-2. 기술의 층: 하드웨어부터 소비자 앱까지
기술의 층 (소프트웨어 스택) Technology Layers · Software Stack
"스택(stack)"은 차곡차곡 쌓은 더미라는 뜻이에요. 아래층이 위층을 받쳐 줘야 위층이 돌아가요.
맨 아래는 칩·메모리 같은 하드웨어예요. 그 위에 하드웨어를 부리는 운영체제·드라이버·CUDA가 있고, 다시 그 위에 PyTorch 같은 AI 프레임워크, 학습된 모델, 백엔드와 데이터베이스, 화면(인터페이스), 마지막으로 사용자가 쓰는 앱이 올라가요.
실제로는 몇 개 층이 합쳐지거나 외부 서비스로 대신하기도 해요. 예를 들어 모델 층을 OpenAI API로 빌려 쓰면 아래 세 층은 직접 신경 쓰지 않아도 돼요.
하드웨어와 컴퓨트 소프트웨어가 계산할 바탕을 만들어요.
프레임워크와 모델이 AI 계산을 해요.
서비스·화면·앱이 그 결과를 사용자에게 보여 줘요.
| 비유 | AI 앱 | |
| 땅과 기초 공사 | ↔ | 하드웨어 |
| 전기·수도 배관 | ↔ | 컴퓨트 소프트웨어(OS·CUDA) |
| 가구와 가전 | ↔ | 프레임워크·모델 |
| 입주민이 사는 집 | ↔ | 소비자 앱 |
- 아래(하드웨어)가 위(앱)를 받쳐요.
- 층을 알면 문제가 생긴 곳을 빨리 찾을 수 있어요.
2-3. 하드웨어: CPU·GPU·메모리·저장 장치
GPU와 메모리 GPU · Graphics Processing Unit
GPU는 Graphics 그래픽 + Processing 처리 + Unit 장치의 줄임말이에요. 원래 게임 화면의 수많은 점(픽셀)을 동시에 그리려고 만들었어요.
CPU(중앙 처리 장치)는 복잡한 일을 차례대로 잘하는 똑똑한 일꾼 몇 명이에요. GPU는 단순한 계산을 동시에 하는 일꾼 수천 명이에요. 신경망은 곱하고 더하는 계산을 엄청 많이 하니까 GPU가 잘 맞아요.
계산만큼 중요한 게 메모리예요. 실행하는 동안 데이터와 모델의 숫자(가중치)를 올려 둘 작업 공간(RAM·GPU 메모리)이 모자라면 큰 모델은 아예 돌아가지 않아요. 구글의 TPU처럼 AI 전용으로 만든 칩도 있어요.
CPU가 요청을 받고 파일을 읽는 등 전체를 지휘해요.
모델 계산은 GPU(또는 TPU)에 맡겨요.
RAM·GPU 메모리에 데이터와 가중치를 올려 두고, SSD에 결과를 저장해요.
| 비유 | 컴퓨터 | |
| 주방장 몇 명 | ↔ | CPU |
| 채소 써는 보조 수백 명 | ↔ | GPU |
| 조리대 넓이 | ↔ | RAM·GPU 메모리 |
| 냉장고·창고 | ↔ | SSD 저장 장치 |
| 부품 | 역할 | 회의 요약 앱에서 |
|---|---|---|
| CPU | 일반 처리와 지휘 | 요청 처리, 파일 읽기 |
| GPU / TPU | 맞는 숫자 계산을 빠르게 | 모델 계산 실행 |
| RAM / GPU 메모리 | 실행 중 작업 공간 | 데이터·가중치·중간 값 보관 |
| SSD / 네트워크 | 오래 저장 / 통신 | 파일 저장, 원격 서비스 호출 |
- GPU는 병렬 계산에 강하지만, 메모리 크기도 중요해요.
- 딥러닝 장비는 개인 서버(인텔 CPU+NVIDIA GPU) 또는 클라우드(코랩·세이지메이커·ML 스튜디오)예요.
2-4. 쿠다(CUDA): 소프트웨어와 칩을 잇는 다리
쿠다 CUDA · Compute Unified Device Architecture
CUDA는 Compute 계산 + Unified 통합된 + Device 장치 + Architecture 구조의 줄임말이에요. NVIDIA가 만들었어요.
우리가 파이썬으로 PyTorch를 쓰면, PyTorch는 CUDA와 GPU 라이브러리를 거쳐 드라이버를 통해 GPU에 일을 시켜요. 수업에서 "어셈블러 위에 쿠다, 그 위에 파이토치, 그 위에 우리 코드"라고 한 순서가 이거예요.
전 세계 AI 개발 도구가 CUDA를 기준으로 만들어져 있어서, 다른 회사 칩으로 옮기기가 쉽지 않아요. 이것을 NVIDIA의 "소프트웨어 해자(성을 지키는 물길)"라고 불러요. 수업에서는 AI가 코드를 쉽게 옮겨 주면서 이 해자가 낮아지고 있다고 했어요.
파이썬 코드가 PyTorch 함수를 불러요.
PyTorch가 CUDA 라이브러리로 GPU용 계산을 만들어요.
드라이버가 그 계산을 GPU에 보내 실행해요.
| 비유 | GPU 사용 | |
| 본사 기획자 | ↔ | 파이썬 코드 |
| 공장 언어를 아는 통역 회사 | ↔ | CUDA |
| 공장 현장 반장 | ↔ | GPU 드라이버 |
| 생산 라인 | ↔ | GPU |
CUDA는 2006~2007년에 처음 공개됐어요. 그 뒤 거의 20년 동안 쌓인 도구와 코드 덕분에 NVIDIA가 AI 칩 시장을 이끌고 있어요.
Q. 필기의 "팹리스 협회 위원"은 무슨 뜻이었을까요?
A. 팹리스(fabless)는 공장(fab) 없이 칩 설계만 하는 회사예요. 교수님이 이런 반도체 설계 업계 단체 활동을 하신다는 소개로 보이지만, 정확한 단체 이름은 확인이 필요해요.
- 파이썬 코드 → PyTorch → CUDA → 드라이버 → GPU 순서로 명령이 내려가요.
- CUDA 생태계가 NVIDIA의 소프트웨어 해자예요.
AI 서비스를 기획할 때 "우리는 가치사슬의 어디에 서 있나"를 먼저 그려 보세요. 칩·클라우드·모델 중 한 곳에만 기대고 있다면, 가격 인상이나 정책 변경에 대비한 대안(다른 클라우드, 다른 모델 API)을 준비해 두는 게 좋아요.
3부. 학습과 추론, 그리고 개발 도구
3-1. 학습 단계와 추론 단계
학습과 추론 Training · Inference
모델 안에는 수많은 숫자(가중치, 파라미터)가 있어요. 학습은 정답이 있는 예시를 보여 주며 이 숫자를 조금씩 고치는 과정이에요. 2주차에 배운 역전파가 바로 학습 방법이에요.
추론은 학습이 끝난 숫자를 고정해 두고, 새 입력이 들어오면 계산만 해서 결과를 내요. 우리가 ChatGPT에 질문하는 순간이 추론이에요.
학습은 한 번에 엄청난 계산이 필요하고, 추론은 작은 계산을 아주 자주 해요. 그래서 추론만 잘하는 칩을 따로 만드는 회사도 생겨요. 대부분의 첫 AI 앱은 학습을 직접 하지 않고, 이미 학습된 모델을 API나 내 컴퓨터에서 불러 써요.
예시 데이터와 목표를 준비해요.
학습으로 가중치를 맞춰요.
새 입력이 오면 그 가중치로 추론해 답을 내요.
| 비유 | AI | |
| 운전 학원에서 연습 | ↔ | 학습 |
| 몸에 익은 운전 감각 | ↔ | 가중치 |
| 처음 가는 길을 운전 | ↔ | 추론 |
- 학습은 가중치를 바꾸고, 추론은 가중치를 그대로 써요.
- 첫 AI 앱은 보통 이미 학습된 모델을 API로 불러 써요.
3-2. 언어·프레임워크·라이브러리·도구
프레임워크와 라이브러리 Framework · Library
비슷한 이름이 많아서 헷갈리지만 역할이 달라요. 언어(Python·JavaScript)는 지시를 적는 규칙, 런타임(파이썬 인터프리터·Node.js)은 프로그램을 실제로 실행하는 것이에요.
라이브러리(React, 문서 처리 패키지 등)는 내가 필요할 때 불러 쓰는 부품이에요. 프레임워크(FastAPI, Django, PyTorch 등)는 정해진 구조가 있어서, 그 틀에 맞춰 내 코드를 끼워 넣어요.
AI 분야의 대표 프레임워크는 PyTorch, TensorFlow, Keras, JAX예요. 그 위에 Hugging Face Transformers, LangChain 같은 모델 라이브러리가 있어요.
언어(파이썬)를 골라요.
일의 종류에 맞는 프레임워크(예: PyTorch)를 골라요.
필요한 라이브러리를 더해 기능을 채워요.
| 비유 | 개발 | |
| 한국어·영어 | ↔ | 언어 |
| 밀키트 소스 한 봉지 | ↔ | 라이브러리 |
| 프랜차이즈 조리 매뉴얼 | ↔ | 프레임워크 |
| 가스레인지 | ↔ | 런타임 |
| 구분 | 뜻 | 예 |
|---|---|---|
| 언어 | 지시를 적는 규칙 | Python, JavaScript, TypeScript |
| 런타임 | 프로그램을 실행 | 파이썬 인터프리터, Node.js |
| 라이브러리 | 불러 쓰는 기능 | React, 문서 처리 패키지 |
| 프레임워크 | 한 종류 일의 틀과 도구 | FastAPI, Django, PyTorch |
| 편집기 / 코딩 도우미 | 작업 공간 / 개발 도움 | VS Code / AI 코딩 에이전트 |
웹 앱 하나에도 여러 언어가 함께 쓰여요.
| 기술 | 주된 역할 | 예 |
|---|---|---|
| HTML | 내용과 구조 | 제목, 글 입력 칸, 버튼 |
| CSS | 모양과 배치 | 색, 간격, 화면 크기에 맞춘 배치 |
| JavaScript / TypeScript | 동작과 앱 논리 | 클릭을 받아 요약 요청 보내기 |
| Python | 서버 논리, 데이터, AI 작업 | 글을 처리하고 모델 부르기 |
| SQL | 데이터 찾기와 바꾸기 | 지난주에 저장한 요약 찾기 |
- 언어·런타임·라이브러리·프레임워크는 역할이 달라요.
- 웹 앱은 HTML(구조)·CSS(모양)·JavaScript(동작)·Python(서버·AI)·SQL(데이터)로 이뤄져요.
개발팀이 "PyTorch로 학습하고 FastAPI로 서빙해요"라고 하면, "학습은 PyTorch 프레임워크로, 추론 결과는 FastAPI라는 API 틀로 내보낸다"는 뜻이에요. 용어의 층만 알아도 회의가 훨씬 잘 들려요.
4부. AI가 짠 코드를 읽는 여섯 가지 개념
4-1. 쉬운 코딩 5단계
슬라이드는 코딩을 "컴퓨터와 대화하기"라고 불러요. 아이가 말을 배우듯, 좋은 예제를 따라 하면서 배우면 돼요.
요즘은 1단계 "생성"을 AI가 해 줘요. 그래서 우리에게 중요한 것은 2~5단계, 즉 실행하고, 읽고, 고치고, 시험하는 힘이에요. 다음 장의 여섯 개념이 "읽기"의 기본기예요.
- 예제를 만들고 → 실행하고 → 읽고 → 고치고 → 시험해요.
- AI 시대에는 읽고 검증하는 힘이 더 중요해요.
4-2. 거의 모든 프로그램에 들어 있는 여섯 개념
Q. 필기에는 "6개 컨셉"인데 목록은 다섯 줄이에요. 왜 그런가요?
A. 슬라이드 19쪽 표의 첫 줄이 "변수와 타입"이에요. 변수(variable)와 타입(type)을 둘로 세면 변수·타입·조건·반복·함수·상태, 이렇게 여섯 개가 돼요.
| 개념 | 쉬운 뜻 | 회의 요약 앱 예 |
|---|---|---|
| 변수와 타입 | 이름 붙인 값과 그 종류 | meeting_text는 문자열 |
| 조건 | 검사해서 다르게 행동 | 비어 있으면 안내 문구 보이기 |
| 반복 | 같은 일 되풀이 | 저장된 요약 모두 보여 주기 |
| 함수 | 이름 붙인 재사용 작업 | summarize(text) |
| 상태 | 앱의 지금 상황 | 준비·처리 중·성공·실패 |
변수와 타입 Variable · Type
프로그램은 값을 기억해 두고 다시 써야 해요. 값을 담아 두는 상자에 이름을 붙인 것이 변수예요. 예를 들어 meeting_text라는 변수에 회의록 글을 넣어 둘 수 있어요.
타입은 값의 종류예요. 정수(3), 실수(3.4), 문자열("Hello"), 참·거짓(True/False) 등이 있어요. 타입에 따라 할 수 있는 일이 달라요. 숫자는 더할 수 있고, 글자는 이어 붙일 수 있어요.
슬라이드 81쪽처럼 my_list[4.0]을 쓰면 오류가 나요. 목록의 위치 번호는 정수 타입이어야 하는데 실수(4.0)를 넣었기 때문이에요.
이름을 정해요 (num).
= 기호로 값을 넣어요 (num = 3).
나중에 이름으로 꺼내 써요 (print(num)).
| 비유 | 파이썬 | |
| 사물함 이름표 | ↔ | 변수 이름 |
| 안에 든 물건 | ↔ | 값 |
| "책만", "신발만" 칸 구분 | ↔ | 타입 |
조건문 Condition · if / else
조건문은 프로그램이 상황에 따라 다르게 움직이게 해요. 파이썬에서는 if(만약)와 else(그렇지 않으면)를 써요.
조건 뒤에는 콜론(:)을 붙이고, 그 조건일 때 할 일은 들여쓰기(빈칸 4칸)해서 적어요. 파이썬은 들여쓰기로 "어디까지가 조건 안쪽인지"를 구분해요.
회의 요약 앱이라면 "입력이 비어 있으면 안내 문구를 보여 주고 AI를 부르지 않는다"가 조건문이에요.
조건을 검사해요 (num >= 0 ?).
참이면 if 아래 줄을 실행해요.
거짓이면 else 아래 줄을 실행해요.
| 비유 | 파이썬 | |
| "비가 오면" | ↔ | if 조건 |
| 우산 챙기기 | ↔ | 참일 때 할 일 |
| "아니면" 선글라스 | ↔ | else |
반복문 Loop · for
반복문은 사람이 같은 코드를 여러 번 쓰지 않게 해 줘요. 파이썬의 for 항목 in 목록:은 목록에서 하나씩 꺼내 아래 코드를 실행해요.
슬라이드 76쪽 예제는 숫자 9개를 하나씩 꺼내 sum에 더해요. 반복이 끝나면 합계 48이 나와요.
앱에서는 "저장된 요약을 모두 화면에 보여 주기"가 반복문이에요.
목록에서 첫 항목을 꺼내요.
아래 코드를 실행해요 (sum에 더하기).
다음 항목으로 넘어가 끝날 때까지 되풀이해요.
| 비유 | 파이썬 | |
| 명단 | ↔ | 목록 (numbers) |
| 한 명씩 이름 부르기 | ↔ | for val in numbers |
| "출석" 체크 | ↔ | 반복할 일 |
함수 Function · def
함수는 재료(입력)를 받아 정해진 일을 하고 결과를 돌려줘요. 파이썬에서는 def 함수이름(입력):으로 만들어요.
슬라이드 77쪽의 greet(name)은 이름을 받아 인사말을 출력해요. 한 번 만들어 두면 greet("John"), greet("Mina")처럼 계속 쓸 수 있어요.
AI가 짠 코드를 읽을 때 함수 이름만 봐도 무슨 일을 하는지 알 수 있어요. 예를 들어 summarize(text)는 "글을 요약하는 함수"예요.
def로 이름과 입력을 정해요.
안에 할 일을 적어요.
이름(입력)으로 불러 써요.
| 비유 | 파이썬 | |
| 버튼 이름 "콜라" | ↔ | 함수 이름 |
| 넣는 동전 | ↔ | 입력 (name) |
| 나오는 음료 | ↔ | 결과 |
상태 State
같은 화면이라도 상황에 따라 보여 줄 것이 달라요. 버튼을 누르기 전, 기다리는 중, 결과가 나온 뒤, 오류가 난 뒤가 모두 다른 상태예요.
좋은 앱은 상태를 사용자에게 알려 줘요. 처리 중이면 진행 표시를 띄우고 버튼을 또 못 누르게 막아요. 실패하면 입력한 글을 지우지 않고 다시 시도하게 해 줘요.
슬라이드는 UI(화면)와 UX(전체 경험)를 구분해요. 상태를 잘 다루는 것이 좋은 UX의 기본이에요.
처음에는 "준비" 상태예요.
요청을 보내면 "처리 중"으로 바꾸고 버튼을 잠가요.
응답에 따라 "성공" 또는 "실패"로 바꿔요.
| 비유 | 앱 | |
| 주문 접수 | ↔ | 준비 |
| 조리 중 · 배달 중 | ↔ | 처리 중 |
| 배달 완료 | ↔ | 성공 |
| 주문 취소 | ↔ | 실패 |
- 여섯 개념만 알아도 AI가 짠 코드의 뼈대를 읽을 수 있어요.
- 파이썬은 들여쓰기로 범위를 정해요.
4-3. 여러 값을 담는 그릇: 컬렉션과 넘파이
| 컬렉션 | 순서 | 바꾸기 | 중복 |
|---|---|---|---|
| 리스트 (List) | 있음 | 가능 | 허용 |
| 딕셔너리 (Dictionary) | 이름(키)으로 찾음 | 가능 | 키는 중복 불가 |
| 세트 (Set) | 없음 | 가능 | 불가 |
| 튜플 (Tuple) | 있음 | 불가 | 허용 |
리스트와 컬렉션 List · Collection
컬렉션은 값 여러 개를 한꺼번에 담는 통이에요. 파이썬에는 리스트, 딕셔너리, 세트, 튜플 네 가지가 자주 쓰여요.
리스트는 대괄호 [ ]로 만들고, 순서가 있어요. 첫 칸이 0번이에요. 그래서 my_list[0]은 첫 번째, my_list[2]는 세 번째 값이에요. 리스트 안에 다른 리스트를 넣을 수도 있어요(중첩 리스트).
수많은 숫자를 빠르게 계산할 때는 NumPy(넘파이)를 써요. NumPy는 여러 줄·여러 칸으로 된 숫자 배열과 빠른 계산을 제공해요. 딥러닝의 텐서도 이런 숫자 배열이에요.
대괄호로 값을 모아요.
0부터 시작하는 위치 번호로 꺼내요.
반복문으로 모든 항목을 차례로 다뤄요.
| 비유 | 파이썬 | |
| 기차 한 대 | ↔ | 리스트 |
| 1호차, 2호차… | ↔ | 위치 번호 (0부터) |
| 객차 안의 작은 기차 | ↔ | 중첩 리스트 |
- 리스트는 0번부터 세요.
- 대량의 숫자 계산은 넘파이(NumPy) 배열로 해요.
AI가 코드를 주면 바로 쓰지 말고, 함수 이름·조건문·반복문만 먼저 훑어보세요. "빈 입력은 어떻게 처리하지?", "실패하면 어떤 상태가 되지?"를 확인하는 것만으로도 많은 오류를 미리 잡을 수 있어요.
5부. 코드를 실제로 돌리고, 앱으로 만들기
5-1. 프로젝트 실행 환경
실행 환경과 의존성 Execution Environment · Dependencies
의존성(dependency)은 내 코드가 기대고 있는 남의 코드(패키지)예요. 예를 들어 내 코드가 PyTorch를 쓰면 PyTorch가 의존성이에요.
패키지 매니저(pip, npm)는 이런 패키지를 설치하고 관리해요. 패키지마다 버전이 있어서, 버전이 안 맞으면 코드가 갑자기 안 돌아가기도 해요.
가상 환경은 프로젝트마다 파이썬 패키지를 따로 담는 방이에요. 프로젝트 A와 B가 서로 다른 버전을 써도 부딪히지 않아요. 터미널(CLI)은 이런 도구를 글자 명령으로 실행하는 창이에요.
프로젝트 폴더에 코드를 둬요.
패키지 매니저로 의존성을 설치해요 (가상 환경 안에).
터미널에서 런타임으로 실행해요.
| 비유 | 개발 환경 | |
| 내 가구 | ↔ | 프로젝트 파일 |
| 렌탈 가전 | ↔ | 의존성 |
| 렌탈 회사 앱 | ↔ | 패키지 매니저 |
| 방마다 따로 쓰는 멀티탭 | ↔ | 가상 환경 |
- 코드 + 의존성 + 런타임이 맞아야 앱이 돌아가요.
- 패키지 매니저·버전·가상 환경·터미널로 이것을 관리해요.
5-2. 노트북과 코랩으로 바로 실행하기
수업의 개발 환경은 이렇게 정리돼요. 운영체제는 리눅스·맥OS·윈도우, 언어는 파이썬(그 밖에 JavaScript, R 등), 라이브러리는 TensorFlow·Keras·PyTorch, 작업 도구는 코랩과 제미나이(AI 튜터)예요.
노트북과 코랩 Notebook · Google Colab
노트북 파일(.ipynb)은 글 칸(설명)과 코드 칸, 그리고 실행 결과로 이뤄져요. 코드 칸에 x=2+3을 실행하면 바로 아래에 5가 나와요.
코랩은 내 브라우저에서 보지만 실제 계산은 구글의 원격 컴퓨터에서 해요. 파이썬, TensorFlow, Keras가 미리 깔려 있고 GPU·TPU도 쓸 수 있어서 바로 딥러닝을 해 볼 수 있어요. 기본은 무료예요.
주의할 점이 있어요. 원격 컴퓨터는 잠시 빌린 것이라 시간이 지나면 기억(런타임 상태)과 임시 파일이 사라질 수 있어요. 중요한 파일은 따로 저장해야 해요. "다시 시작 후 전체 실행"이 잘 되면 다른 사람도 같은 결과를 얻을 수 있어요.
colab.research.google.com에서 노트북을 열어요.
코드 칸을 하나씩 실행하고 결과를 봐요.
입력 하나를 바꿔 결과를 예측하고 다시 실행해요.
| 비유 | 코랩 | |
| 내 노트북으로 접속 | ↔ | 브라우저 |
| 빌린 사무실 책상 | ↔ | Colab 런타임 |
| 공용 고성능 프린터 | ↔ | GPU · TPU |
| 퇴실하면 책상 정리됨 | ↔ | 런타임 상태가 사라짐 |
| 목적 | TensorFlow 쪽 | PyTorch 쪽 |
|---|---|---|
| 배우기 | TensorFlow.org 튜토리얼 | PyTorch 튜토리얼·문서 |
| 쓰고 실행하기 | Colab, JupyterLab, VS Code | Colab, JupyterLab, VS Code |
| 모델 만들기 | Keras | torch.nn |
| 데이터 불러오기 | tf.data | Dataset, DataLoader |
| 실험 살펴보기 | TensorBoard | 기록 도구, PyTorch Profiler |
- 작업 공간(코랩 등)과 프레임워크(TensorFlow·PyTorch)는 따로 고르는 거예요.
- 공식 튜토리얼을 코랩에서 열어 실행하는 것이 가장 쉬운 시작이에요.
5-3. 앱 하나가 움직이는 길: 화면·백엔드·API·데이터베이스
수업의 예시 앱은 회의 요약 앱이에요. 회의록을 붙여 넣고, "요약" 버튼을 누르고, 결과를 읽고 저장해요. 단순해 보여도 뒤에서 여러 부분이 함께 움직여요.
API Application Programming Interface
API는 Application 응용 프로그램 + Programming 프로그래밍 + Interface 접점의 줄임말이에요. "이런 형식으로 부탁하면 이런 형식으로 답해 줄게"라는 약속이에요.
회의 요약 앱에서 화면(프런트엔드)은 백엔드에 "이 글 요약해 줘"라고 요청해요. 백엔드는 입력을 검사하고, 사용자를 확인하고, AI 서비스의 API를 불러 요약을 받아 데이터베이스에 저장한 뒤 화면에 돌려줘요.
AI 서비스를 쓰는 비밀 열쇠(API 키)는 반드시 서버(백엔드) 쪽 비밀 저장소에 둬야 해요. 화면 코드에 넣으면 누구나 훔쳐 쓸 수 있어요.
화면이 백엔드에 요청을 보내요 (POST /summaries).
백엔드가 검사 후 AI 서비스 API를 불러요.
결과를 저장하고 화면에 응답해요 ({"summary": …}).
| 비유 | 앱 | |
| 손님 | ↔ | 화면 (프런트엔드) |
| 메뉴판과 주문서 양식 | ↔ | API |
| 홀 직원 | ↔ | 백엔드 |
| 주방 | ↔ | AI 서비스 |
데이터베이스는 앱의 기억이에요. 화면에 보이는 결과와 저장된 결과는 다른 상태예요. 다시 열었을 때도 보여야 진짜 저장된 거예요.
| 작업 | 뜻 | 회의 요약 앱 예 |
|---|---|---|
| Create (만들기) | 새 기록 저장 | 요약 저장하기 |
| Read (읽기) | 기록 열기 | 지난 회의록 열기 |
| Update (고치기) | 기록 수정 | 제목 고치기 |
| Delete (지우기) | 기록 삭제 | 기록 지우기 |
작은 시제품은 앱 안에서 도는 SQLite로 충분하고, 여러 사람이 함께 쓰면 서버 데이터베이스(예: PostgreSQL)를 써요. 웹 앱은 브라우저 주소로 열고, 데스크톱 앱은 설치해서 써요.
- 화면 → 백엔드 → AI 서비스 API → 데이터베이스 순서로 일이 흘러요.
- API 키는 반드시 서버 쪽에 숨겨요.
- 데이터베이스의 기본 작업은 만들기·읽기·고치기·지우기예요.
5-4. 코드를 지키고 나누고 배포하기: 깃·깃허브·허깅페이스
깃과 깃허브 Git · GitHub
커밋(commit)은 "여기까지 바꾼 것을 기록"하는 저장점이에요. 게임의 세이브 포인트처럼 언제든 그 시점으로 돌아갈 수 있어요.
브랜치(branch)는 본선(main)을 건드리지 않고 따로 시도해 보는 가지예요. 시도가 괜찮으면 풀 리퀘스트(pull request)로 검토를 요청하고, 합쳐요(merge).
깃허브에서 남의 코드를 가져다 쓸 때는 README(무엇을 하고 어떻게 실행하는지)와 LICENSE(써도 되는 조건)를 꼭 봐요. 공개된 코드라도 마음대로 써도 되는 건 아니에요. AI 모델과 데이터는 허깅페이스(Hugging Face)에서 찾고, 모델 카드로 용도와 조건을 확인해요.
작업 단위마다 커밋으로 저장점을 만들어요.
새 시도는 브랜치에서 해요.
검토(풀 리퀘스트) 후 본선에 합쳐요.
| 비유 | 깃 | |
| 보고서_v1, v2 저장 | ↔ | 커밋 |
| "수정안" 사본 만들기 | ↔ | 브랜치 |
| 팀장 검토 후 최종본 반영 | ↔ | 풀 리퀘스트 · 합치기 |
| 용어 | 뜻 |
|---|---|
| 로컬 | 내 컴퓨터에서 실행 |
| 클라우드 / 호스팅 | 네트워크로 계산·저장·앱 운영을 제공 |
| 컨테이너 | 앱과 실행에 필요한 것을 한 꾸러미로 포장 (예: Docker) |
| 운영 | 기록(로그), 업데이트, 백업, 장애 복구 |
- 깃은 저장점, 깃허브는 공유와 협업의 장소예요.
- 공개 코드라도 README와 LICENSE를 꼭 확인해요.
5-5. AI에게 일을 맡기고 결과를 검증하는 법
슬라이드 43쪽은 좋은 요청의 예를 보여 줘요. 눈에 보이는 동작과 바꿀 범위를 분명히 적는 게 핵심이에요.
"회의 요약 앱에 빈 입력 처리를 추가해 줘. 입력이 비어 있으면 설명을 보여 주고 AI를 부르지 마. 요청이 처리되는 동안 진행 표시를 보여 주고 중복 요청을 막아. 실패하면 입력을 지우지 말고 다시 시도할 수 있게 해. 먼저 기존 구조를 살펴보고, 실패하는 테스트를 하나 추가한 뒤, 가장 작은 변경을 하고, 테스트를 다시 돌려 결과를 설명해."
| 확인할 것 | 기대하는 동작 |
|---|---|
| 빈 입력 제출 | 설명이 보이고 AI 요청이 없어요. |
| 정상 회의록 제출 | 진행 표시 후 요약이 나와요. |
| 처리 중에 또 클릭 | 중복 요청을 막아요. |
| 요청 실패 흉내 | 입력이 남아 있어 다시 시도할 수 있어요. |
| 저장된 요약 다시 열기 | 저장된 내용이 그대로 보여요. |
문제가 생기면 증상으로 먼저 볼 곳을 정해요. 버튼이 반응하지 않으면 화면의 이벤트와 상태, 요청이 돌아오지 않으면 네트워크와 백엔드 기록, 모델이 안 뜨면 의존성과 메모리, 다시 열었을 때 결과가 없으면 저장·읽기 논리, 내 컴퓨터에서만 되면 배포와 설정·권한을 봐요.
Q. 필기의 "Company as a code"와 "정부 인프라를 아예 코드로"는 무슨 뜻인가요?
A. 1주차에 나온 "회사를 코드처럼" 운영한다는 생각이에요. 일하는 절차와 규칙을 코드와 문서로 적어 두면 AI가 읽고 실행·점검할 수 있어요. 교수님은 이 생각을 정부 인프라까지 넓혀 볼 수 있다고 했어요. 정부 사례의 구체적인 내용은 확인이 필요해요.
- 요청에는 눈에 보이는 동작과 바꿀 범위를 적어요.
- 기대 동작 목록이 있어야 결과를 받아들일지 판단할 수 있어요.
AI 개발을 맡길 때 "완료 기준"을 표로 먼저 써 두세요. 위의 다섯 줄 확인표처럼 기대 동작이 분명하면, 개발자든 AI든 결과를 객관적으로 검수할 수 있어요.
수업 영상 모음
필기와 강의 슬라이드에 나온 유튜브 링크예요. 제목을 누르면 열려요.
오늘 수업 전체 요약
| 부 | 한 줄 요약 |
|---|---|
| 1부 | 바이브 코딩은 말로 시키는 코딩이지만, 하드웨어는 여전히 컴퓨터 언어로 움직여서 문제와 결과를 정확히 안내하는 힘이 필요해요. |
| 2부 | AI 산업은 데이터·하드웨어·클라우드·모델·앱으로 이어지고, 앱 하나는 하드웨어부터 소비자 앱까지 7개 층으로 쌓여요. CUDA가 GPU와 소프트웨어를 이어요. |
| 3부 | 학습은 가중치를 맞추고 추론은 그 가중치로 답을 내요. 언어·라이브러리·프레임워크는 역할이 달라요. |
| 4부 | 변수와 타입·조건·반복·함수·상태, 그리고 리스트만 알아도 AI가 짠 코드의 뼈대를 읽을 수 있어요. |
| 5부 | 실행 환경을 갖추고 코랩으로 실험한 뒤, 화면·백엔드·API·DB로 앱을 만들고 깃으로 지키며, 기대 동작으로 검증해요. |
용어 색인
| 한글 | 영어 | 한 줄 뜻 | 나온 장 |
|---|---|---|---|
| 바이브 코딩 | Vibe coding | 말로 설명해 AI가 코드를 쓰게 하는 방식 | 1-2 |
| 컴파일러 | Compiler | 코드 전체를 미리 기계어로 번역 | 1-3 |
| 인터프리터 | Interpreter | 코드를 한 줄씩 바로 번역·실행 | 1-3 |
| AI 가치사슬 | AI value chain | 데이터→하드웨어→클라우드→모델→앱의 산업 흐름 | 2-1 |
| 해자 | Moat | 경쟁사가 넘기 어려운 강점 | 2-1 |
| 소프트웨어 스택 | Software stack | 앱을 이루는 기술의 층 | 2-2 |
| 그래픽 처리 장치 | GPU | 단순 계산을 동시에 많이 하는 칩 | 2-3 |
| 쿠다 | CUDA | NVIDIA GPU 병렬 계산 플랫폼 | 2-4 |
| 학습 | Training | 데이터로 가중치를 맞추는 단계 | 3-1 |
| 추론 | Inference | 배운 가중치로 새 입력에 답하는 단계 | 3-1 |
| 가중치 | Weights | 모델 안의 학습된 숫자 | 3-1 |
| 프레임워크 | Framework | 한 종류 일의 틀과 도구 묶음 | 3-2 |
| 라이브러리 | Library | 불러 쓰는 기능 모음 | 3-2 |
| 런타임 | Runtime | 프로그램을 실행하는 것 | 3-2 |
| 변수 | Variable | 값에 붙인 이름표 | 4-2 |
| 타입 | Type | 값의 종류 | 4-2 |
| 조건문 | Condition | 검사 결과에 따라 다르게 행동 | 4-2 |
| 반복문 | Loop | 같은 일을 되풀이 | 4-2 |
| 함수 | Function | 이름 붙인 재사용 코드 덩어리 | 4-2 |
| 상태 | State | 앱의 지금 상황 | 4-2 |
| 리스트 | List | 순서 있는 값 모음 (0번부터) | 4-3 |
| 넘파이 | NumPy | 숫자 배열 계산 라이브러리 | 4-3 |
| 의존성 | Dependency | 내 코드가 기대는 남의 패키지 | 5-1 |
| 가상 환경 | Virtual environment | 프로젝트별 패키지 방 | 5-1 |
| 노트북 | Notebook | 코드와 설명을 칸별로 섞은 문서 | 5-2 |
| 코랩 | Google Colab | 구글 컴퓨터에서 도는 노트북 서비스 | 5-2 |
| API | API | 프로그램끼리 일을 부탁하는 창구 | 5-3 |
| 데이터베이스 | Database | 앱의 기억 (저장소) | 5-3 |
| 커밋 | Commit | 변경을 기록한 저장점 | 5-4 |
| 브랜치 | Branch | 본선과 따로 시도하는 가지 | 5-4 |