기초 (Basic)
10주 · 완전 초보부터 함수까지
1주차 — 파이썬 시작하기
인터프리터 · 환경 설치 · REPL · 주석
파이썬이 어떤 언어인지 살펴보고, 내 컴퓨터에 Python 3.10+ 와 VS Code를 설치한 뒤 첫 print를 띄워봅니다. REPL과 스크립트 모드의 차이도 익힙니다.
2주차 — 변수와 자료형
변수 · int/float/str/bool · 형 변환 · type()
변수에 값을 담고, int·float·str·bool 4가지 기본 자료형을 다루고, type() 으로 타입을 확인하고, int()/float()/str() 로 형 변환합니다. None 의 의미도 익힙니다.
3주차 — 연산자와 입출력
산술/비교/논리 · input · print · f-string
산술·비교·논리 연산자, input() 으로 사용자 입력 받기, print() 와 f-string 으로 보기 좋게 출력하기, 그리고 입력받은 문자열을 숫자로 변환해 계산하는 패턴을 익힙니다.
4주차 — 조건문
if / elif / else · 들여쓰기 · 삼항 · Truthy/Falsy
조건에 따라 다른 코드를 실행시키는 if/elif/else, 들여쓰기 규칙(4칸 공백), 중첩 조건문, 삼항 표현식, 그리고 진리값(Truthy/Falsy) 개념을 익힙니다.
5주차 — 반복문
for · range · while · break · continue · 중첩
for + range() 로 정해진 횟수, while 로 조건이 참인 동안, break/continue 로 흐름 제어, 그리고 중첩 반복문으로 구구단·별 찍기 같은 2차원 패턴을 출력합니다.
6주차 — 리스트와 튜플
리스트 · 슬라이싱 · 메서드 · 튜플 · 언패킹
여러 값을 순서대로 담는 리스트와 변경 불가능한 튜플, 슬라이싱 [start:stop:step], 자주 쓰는 메서드(append/pop/sort), 그리고 튜플 언패킹을 익힙니다.
7주차 — 딕셔너리와 집합
dict · key/value · get/items · set · 합/교/차
키로 값을 빠르게 찾는 딕셔너리, 자주 쓰는 메서드(get, items, in), 중복 없는 집합과 합/교/차/대칭차 연산, 그리고 자료구조 선택 기준을 익힙니다.
8주차 — 문자열 다루기
메서드 · split/join · f-string 심화 · 이스케이프
문자열 인덱싱/슬라이싱, 자주 쓰는 메서드(split/join/strip/replace), f-string 심화(정렬·자릿수·진법), 이스케이프 문자(\n \t)를 익힙니다.
9주차 — 함수 기초
def · return · 기본값 · 키워드 인수 · 스코프
def 로 함수를 정의하고 호출, 매개변수와 인수의 차이, 기본값/키워드 인수, return으로 값 반환, 그리고 지역/전역 변수의 스코프를 익힙니다.
10주차 — 기초 종합 실습
1~9주차 통합 · 프로젝트 설계 · 디버깅
지금까지 배운 입력·조건·반복·자료구조·함수를 자연스럽게 조합해 작은 프로그램을 완성합니다. To-Do List, 단어장 퀴즈, 가계부, 숫자 야구 중 하나를 골라 만들어보세요.
중급 (Intermediate)
10주 · 함수 심화부터 OOP·정규식까지
1주차 — 함수 심화
*args/**kwargs · lambda · 고차함수 · 클로저
가변 인자(*args, **kwargs), 한 줄 람다, map/filter/sorted with key 같은 고차함수, 그리고 함수 안의 함수가 외부 변수를 기억하는 클로저까지 함수의 표현력을 한 단계 끌어올립니다.
2주차 — 컴프리헨션과 제너레이터
list/dict/set comp · yield · 메모리 효율
리스트·딕셔너리·집합 컴프리헨션으로 한 줄에 변환·필터·매핑을 처리하고, yield로 만드는 제너레이터로 메모리 효율적인 코드를 짭니다.
3주차 — 모듈과 패키지
import · __name__ · __init__.py · pip
자체 모듈 만들고 import, __name__ == "__main__" 패턴, 폴더를 패키지로 만드는 __init__.py, 그리고 pip 으로 외부 패키지 설치까지 익힙니다.
4주차 — 표준 라이브러리
datetime · random · pathlib · collections
추가 설치 없이 import만으로 쓸 수 있는 4가지 핵심 표준 모듈 — 날짜·시간(datetime), 무작위(random), 경로(pathlib), Counter/defaultdict(collections).
5주차 — 예외 처리
try/except/else/finally · raise · 사용자 정의 예외
try/except의 4개 절(try·except·else·finally), 여러 예외 분기 처리, raise로 의도적 발생, Exception 상속으로 사용자 정의 예외, 예외 체인을 익힙니다.
6주차 — 파일 입출력 (텍스트·CSV·JSON)
with open · csv · json · encoding utf-8
with open 으로 안전하게 텍스트 파일 읽고 쓰기, csv 모듈로 표 형식 데이터 처리, json 으로 구조화 데이터 직렬화·역직렬화를 익힙니다.
7주차 — 객체지향 (1) — 클래스와 인스턴스
class · __init__ · self · 캡슐화
데이터(속성)와 동작(메서드)을 묶는 클래스 정의, __init__ 생성자와 self의 의미, 인스턴스 변수 vs 클래스 변수, 그리고 _var/__var 캡슐화 관례.
8주차 — 객체지향 (2) — 상속·다형성·매직 메서드
extends · super · __str__ · __eq__ · classmethod
부모 클래스의 속성·메서드를 물려받는 상속, super() 호출, 다형성, __str__/__eq__/__add__ 같은 매직 메서드 오버라이딩, classmethod와 staticmethod까지.
9주차 — 정규표현식
re · 메타문자 · 그룹 · sub · compile
re 모듈로 패턴 매칭, 자주 쓰는 메타문자(\d \w \s + * ?), 그룹 캡처(이름 그룹 포함), 치환(sub), raw string, compile 활용까지.
10주차 — 중급 종합 실습
OOP + JSON + 모듈 분리 + 패키지 구조
OOP·예외·파일 I/O를 모두 사용한 미니 프로젝트 (단어장/가계부/로그 분석/연락처) 중 하나를 모듈 분리된 패키지 구조로 완성합니다.
고급 (Advanced)
10주 · 타입·동시성·테스트·패키징
1주차 — 타입 힌트와 dataclass
정적 타입 · typing · dataclass · frozen
타입 힌트 문법, typing 모듈(Optional/Union/Callable), 그리고 보일러플레이트를 줄여주는 @dataclass 와 frozen 옵션까지 — 견고한 코드의 출발점입니다.
2주차 — 데코레이터와 컨텍스트 매니저
@deco · functools.wraps · with · contextmanager
함수 데코레이터, 인자 받는 데코레이터, 클래스/함수 기반 컨텍스트 매니저까지 — 횡단 관심사를 깔끔히 분리하는 두 도구를 익힙니다.
3주차 — 이터레이터·제너레이터 심화
프로토콜 · yield from · itertools · 코루틴
for 루프 뒤에 숨은 __iter__/__next__ 프로토콜, yield from 위임, itertools 의 강력한 함수들, 그리고 코루틴 기초까지 다룹니다.
4주차 — 동시성 (1) 스레딩과 멀티프로세싱
GIL · ThreadPoolExecutor · ProcessPoolExecutor · Lock
I/O 바운드 작업은 ThreadPoolExecutor 로, CPU 바운드는 ProcessPoolExecutor 로 — GIL 의 의미와 동시성 도구의 선택 기준을 익힙니다.
5주차 — 동시성 (2) asyncio
async/await · gather · Queue · timeout
async/await 문법, asyncio.gather 로 동시 실행, Queue 기반 producer/consumer, 그리고 wait_for 타임아웃까지 — 비동기 프로그래밍의 핵심을 익힙니다.
6주차 — 테스트 (unittest, pytest)
pytest · parametrize · fixture · mock
pytest 기본 사용법, parametrize 로 다양한 케이스, fixture 로 공통 setup, 그리고 mock 으로 외부 의존성을 격리하는 방법까지 다룹니다.
7주차 — 웹 스크래핑
requests · BeautifulSoup · session · robots.txt
requests 로 HTTP 요청, BeautifulSoup 로 HTML 파싱, 세션·쿠키 관리, 그리고 robots.txt 와 매너까지 — 윤리적 스크래핑의 기본을 익힙니다.
8주차 — NumPy / Pandas 입문
ndarray · DataFrame · groupby · CSV
NumPy 배열 연산과 인덱싱, Pandas DataFrame 의 필터·정렬·groupby, 그리고 CSV 읽고 분석하기까지 — 데이터 처리의 두 거인을 만납니다.
9주차 — 패키징과 배포
venv · pyproject.toml · console_scripts · TestPyPI
가상환경, pyproject.toml 의 구조, console_scripts 로 CLI 도구 제공, 그리고 TestPyPI 업로드까지 — 자체 패키지를 만들어 배포하는 전체 흐름.
10주차 — 고급 종합 실습
타입 + 비동기 + 외부 라이브러리 + 테스트 + 배포
비동기·외부 라이브러리·테스트·배포를 통합한 실전 프로젝트. 패키지 구조 + CI 적용까지 포함합니다.
실습 프로젝트 (Practice)
16개 · 난이도별 콘솔 프로젝트 (★ ~ ★★★★)
Lv1 · 기초 응용 (★)
Lv1 · 가위바위보 (3판 2선승)
조건문·반복문·random
사용자와 컴퓨터가 가위·바위·보를 내고 3판 2선승으로 승부를 가립니다. 잘못된 입력 재요청, 통산 전적 누적까지 다룹니다.
Lv1 · 숫자 맞추기 (난이도 선택)
함수 분리 + 시도 제한
1~N 사이 랜덤 숫자를 시도 횟수 제한 안에 맞히는 게임. 난이도 3단계, 함수 분리, 재도전 옵션을 다룹니다.
Lv1 · CLI 계산기
메뉴 + 결과 누적 + 이력
메뉴 선택형 사칙연산 계산기. 결과를 누적해 다음 계산에 사용할 수 있고, 종료 시 전체 이력을 출력합니다.
Lv1 · 단위 변환기
다중 카테고리 + 양방향
길이/무게/온도를 양방향으로 변환하는 메뉴 CLI. 변환 함수를 카테고리별로 분리하고 메뉴 핸들러로 매핑합니다.
Lv2 · 자료구조 응용 (★★)
Lv2 · To-Do List
우선순위·마감일 + 정렬·필터
할 일 추가/조회/완료/삭제 + 우선순위·마감일을 갖춘 메모리 기반 할 일 관리. list 의 dict 컬렉션을 다룹니다.
Lv2 · 단어장 퀴즈
양방향 + 복습 모드
영-한 사전으로 랜덤 퀴즈. 영→한, 한→영, 랜덤 모드와 틀린 문제만 복습하는 모드까지 구현합니다.
Lv2 · 주소록
검색·수정·부분일치
이름·전화·이메일을 저장하고 부분 일치 검색을 지원하는 주소록. dict 안의 dict 패턴을 다룹니다.
Lv2 · BMI 추적기
다인원 + 분류 + 정렬 표
여러 명의 키/몸무게를 입력 받아 BMI 계산, 분류, 정렬된 표로 출력. f-string 정렬과 분류별 집계까지 다룹니다.
Lv3 · 중급 종합 (★★★)
Lv3 · 가계부
JSON 영구 저장 + 카테고리
수입/지출 기록을 JSON 으로 영구 저장. 카테고리별 합계, 잔액, 막대그래프 시각화까지 포함합니다.
Lv3 · 도서 관리 시스템
OOP + JSON
Book/Member/Library 클래스로 도서 등록·대출·반납·검색을 구현. dataclass 와 JSON 직렬화까지 통합합니다.
Lv3 · 일기장
날짜별 파일
diary/YYYY-MM-DD.txt 파일로 일기를 관리. 작성·조회·검색 + 다중행 입력과 키워드 매치 기능을 갖춥니다.
Lv3 · 텍스트 어드벤처
분기·HP·다중 엔딩
장면-선택지로 진행되는 분기형 텍스트 어드벤처. HP/아이템 상태와 다중 엔딩을 구현합니다.
Lv4 · 고급 응용 (★★★★)
Lv4 · argparse 기반 CLI
subparsers + JSON
argparse 의 subparsers 로 진짜 CLI 도구처럼 동작하는 To-Do. add/list/done/del + --version + --help 를 갖춥니다.
Lv4 · CSV 데이터 분석 CLI
자동 통계 + 리포트
CSV 파일을 받아 컬럼을 자동 감지 — 숫자는 평균/최대/최소/합계, 문자는 빈도 Top 5. 콘솔과 report.txt 양쪽에 출력합니다.
Lv4 · 콘솔 챗봇
규칙 기반 + 명령어 모드
정규식 규칙 기반의 콘솔 챗봇. /quit /clear /save /load /history 명령어와 대화 이력 JSON 저장을 지원합니다.
Lv4 · TUI 앱 (rich/textual)
표·진행바·컬러
rich 라이브러리로 표/패널/컬러를 사용한 풍부한 콘솔 UI. 미설치 시 plain 모드로 폴백하는 안전 패턴까지.