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