99. 중급 치트시트와 다음 단계
중급편을 완주하신 것을 축하합니다! 🎉 이 부록은 빠르게 찾아볼 치트시트와 다음 학습 단계 안내입니다.
📋 중급 문법 빠른 참조
클래스 (11·12장)
PYTHON
class Animal: # 클래스 정의 (대문자 시작) species = "동물" # 클래스 변수 (공유) def __init__(self, name): # 생성자 self.name = name # 인스턴스 변수 (self.) def speak(self): # 메서드 (첫 인자 self) return "..." class Dog(Animal): # 상속 def speak(self): # 오버라이드 return "멍멍" def __init__(self, name, age): super().__init__(name) # 부모 생성자 호출 self.age = age # 매직 메서드 def __str__(self): ... # print() 시 표시 def __repr__(self): ... # 디버깅 표현 def __eq__(self, other): ... # == 비교 def __len__(self): ... # len() 지원 isinstance(obj, Dog) # 인스턴스 확인
컴프리헨션 (13장)
PYTHON
[x**2 for x in range(5)] # 리스트 [x for x in items if x > 0] # 필터 (뒤 if) ["짝" if x%2==0 else "홀" for x in nums] # 변환 분기 (앞 삼항) {k: v for k, v in pairs} # 딕셔너리 {x for x in items} # 세트 (x**2 for x in range(5)) # 제너레이터 표현식 zip(names, ages) # 짝짓기 enumerate(items, start=1) # 번호 붙이기
이터레이터·제너레이터 (14장)
PYTHON
it = iter(items); next(it) # 수동 순회 def gen(): yield 1 # 제너레이터 함수 yield 2 g = gen(); list(g) # [1, 2] (일회용!)
모듈·패키지 (15장)
PYTHON
import math # 통째로 from math import sqrt, pi # 골라서 import numpy as np # 별명 if __name__ == "__main__": # 직접 실행 시만 main()
파일·데이터 (16장)
PYTHON
with open("f.txt", "w", encoding="utf-8") as f: f.write("내용\n") with open("f.txt", encoding="utf-8") as f: for line in f: print(line.strip()) import csv with open("d.csv", "w", encoding="utf-8", newline="") as f: csv.writer(f).writerow(["a", "b"]) import json json.dump(data, f, ensure_ascii=False, indent=2) # 파일에 저장 obj = json.load(f) # 파일에서 로드 s = json.dumps(data); obj = json.loads(s) # 문자열 변환
데코레이터 (17장)
PYTHON
import functools def deco(func): @functools.wraps(func) def wrapper(*args, **kwargs): # 전처리 result = func(*args, **kwargs) # 후처리 return result return wrapper @deco def my_func(): ... # 클로저 def make(factor): def inner(n): return n * factor return inner
타입 힌트 (18장)
PYTHON
def f(name: str, age: int = 0) -> str: ... x: list[int] = [1, 2, 3] d: dict[str, int] = {} def find(...) -> int | None: ... # None 가능
도구 (19장)
TEXT
python -m venv .venv # 가상환경 생성 source .venv/bin/activate # 활성화 (mac/linux) pip install 패키지 # 설치 ruff format . # 포매팅 ruff check --fix . # 검사+수정 pytest -v # 테스트 실행
🗺️ 중급편 전체 흐름
flowchart TD
A[11·12 OOP<br/>클래스·상속·매직메서드]:::a
B[13·14 이터레이션<br/>컴프리헨션·제너레이터]:::b
C[15·16 모듈·파일<br/>import·JSON]:::c
D[17·18 고급 함수<br/>데코레이터·타입힌트]:::d
E[19 실전 도구<br/>가상환경·테스트]:::e
F[20 미니 프로젝트<br/>전체 통합]:::f
A --> B --> C --> D --> E --> F
classDef a fill:#fde2e2,stroke:#d64545,color:#7a1f1f
classDef b fill:#fff3b0,stroke:#e0a800,color:#5c4500
classDef c fill:#d4edda,stroke:#34a853,color:#14532d
classDef d fill:#cfe8ee,stroke:#2a9d8f,color:#14532d
classDef e fill:#dbe4f0,stroke:#457b9d,color:#1d3557
classDef f fill:#e8d5f0,stroke:#8e44ad,color:#4a235a
🚀 다음 단계: 어디로 갈까
중급편을 마친 당신은 이제 구조를 갖춘 실전 코드를 짤 수 있습니다. 여기서부터는 "무엇을 만들고 싶은가"에 따라 길이 갈립니다.
| 관심 분야 | 배우면 좋은 것 |
|---|---|
| 웹 개발 | FastAPI·Django·Flask, HTTP, 데이터베이스(SQL) |
| 데이터 분석·AI | pandas·NumPy, 시각화(matplotlib), 머신러닝 |
| 자동화·스크립팅 | 웹 스크래핑(BeautifulSoup·Selenium), API 연동 |
| 더 깊은 Python | 동시성(async·스레드), 정규표현식, 디자인 패턴 |
| 자료구조·알고리즘 | 시간 복잡도, 정렬·탐색, 트리·그래프 |
💡 팁
첨부된 강좌 커리큘럼에는 웹 스크래핑(BeautifulSoup·Selenium), Flask 웹 개발, 데이터베이스(SQLite), 동시성(async·스레드), 자료구조(이진 트리)까지 폭넓게 담겨 있습니다. 중급편을 발판으로 관심 가는 분야부터 깊이 파보세요.실력을 굳히는 프로젝트 아이디어
배운 것을 묶어 직접 만들어보는 것이 가장 좋은 학습입니다.
- 가계부 프로그램: 수입·지출을 클래스로, CSV·JSON으로 저장, 월별 통계 (11~16장 종합)
- 단어장 앱: 단어를 추가·암기 체크, JSON 저장, 랜덤 퀴즈 (random·OOP·파일)
- 할 일 관리(To-Do) CLI: 우선순위·마감일, 데코레이터로 실행 로그 (17장 응용)
- 간단한 웹 스크래퍼: requests·BeautifulSoup로 정보 수집 (다음 단계 연습)
좋은 습관 체크리스트
중급자로서 몸에 익히면 좋은 것들입니다.
- ✅ 새 프로젝트는 가상환경부터
- ✅ 함수·클래스에 타입 힌트와 짧은 설명(docstring)
- ✅ 코드는 Ruff 같은 포매터에 맡기기
- ✅ 중요한 로직엔 테스트 작성
- ✅ 한 파일·한 함수는 한 가지 책임만
- ✅ 막히면 공식 문서(docs.python.org)부터
📚 더 공부할 자료
- 공식 문서: docs.python.org/ko — 표준 라이브러리의 보물창고.
- PEP 8: 코드 스타일 가이드. 한 번 정독을 권합니다.
- 공식 튜토리얼의 클래스·모듈 장: 이 책에서 다룬 내용을 다른 각도로 보강할 수 있습니다.
◀️ 이전: 98. 중급 용어 보강 | 🏠 목차로 돌아가기
여기까지 오신 것을 진심으로 축하합니다. 이제 당신은 Python으로 무언가를 만들 준비가 되었습니다. 직접 만들고, 막히고, 고치며 계속 나아가세요. 🐍🚀