This lesson is only available in Korean for now.
Dr. Son's Databases, First Steps

From a single variable
to a real online store

You learn databases from the very beginning — analogies instead of jargon, and running things yourself instead of only reading about them.
Python and SQL both run right inside this page. There is nothing to install.

🐍 Python🗄️ SQLite3🧪 Flask 🎨 Bootstrap🇬🇧 English
Start lesson 1 →

How you'll learn

📦Understanding by analogy

A variable is a labelled box; an index is the index at the back of a book. Unfamiliar ideas are explained in terms of things you already know.

▶️Run it yourself

Every piece of code has a run button. Change it, get it wrong, try it again.

🎨See it drawn

Every lesson comes with an illustration of the idea it teaches.

🛠️Learn by building

You genuinely finish a to-do app and an online store, and they are saved on a real server.

Full curriculum

01
변수 — 이름표를 붙인 상자
데이터베이스의 가장 작은 조상
✓
02
구조화된 변수 — 칸막이가 있는 하나의 상자
흩어진 상자들을 하나로 묶기
✓
03
레코드 — 한 사람의 학생증 한 장
데이터 세계의 '한 줄'
✓
04
CRUD — 데이터로 할 수 있는 일은 딱 4가지
만들기 · 읽기 · 고치기 · 지우기
✓
05
테이블 — 학생증을 모으면 출석부가 된다
레코드를 쌓아 만든 '표'
✓
06
데이터베이스 — 표들을 모아 둔 캐비닛
드디어 주인공의 등장
✓
07
인덱스 — 책 뒤에 붙은 '찾아보기'
10만 줄을 0.001초에 찾는 비결
✓
08
필드 — 세로 한 칸, 그리고 '타입'이라는 약속
표에 규칙을 심는 곳
✓
09
첫 번째 작품 — 할 일 목록 앱
지금까지 배운 걸 전부 합쳐 봅시다
✓
10
관계형 데이터베이스 — 표와 표를 잇는 열쇠
중복을 없애는 가장 우아한 방법
✓
11
DBMS — 데이터를 지키는 사서(司書)
데이터베이스와 DBMS는 다른 것입니다
✓
12
데이터는 어디에 저장될까 — 브라우저 vs 서버
혼자만의 서랍과 모두의 금고
✓
13
SQLite3 — 파일 하나가 곧 데이터베이스
풀스택 뼈대 ① 진실을 보관하는 층
✓
14
Flask — 요청을 받아 DB를 여는 문
풀스택 뼈대 ② 판단하는 층
✓
15
Jinja2 — 표의 한 줄이 화면의 한 줄이 되는 곳
풀스택 뼈대 ③ 화면을 만드는 층
✓
16
Bootstrap — 데이터를 '보기 좋은 화면'으로
풀스택 뼈대 ④ 꾸미는 층
✓
17
폼과 POST — 사용자의 입력이 DB로 들어가는 길
읽기만 하던 앱이 드디어 '쓰기'를 배웁니다
✓
18
졸업 작품 — 진짜 쇼핑몰 만들기
SQLite3 · Flask · Jinja2 · Bootstrap을 한 채의 집으로
✓
19
회원과 로그인 — '누구의 데이터인가'
심화편 · 세션과 비밀번호를 다루는 법
✓
20
배포 — 내 방 컴퓨터를 세상에 연결하기
도메인 · HTTPS · 리버스 프록시 · NAT 뚫기
✓