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)
데이터 분석·AIpandas·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으로 무언가를 만들 준비가 되었습니다. 직접 만들고, 막히고, 고치며 계속 나아가세요. 🐍🚀