99. 고급 치트시트와 다음 단계

고급편을 완주하신 것을 진심으로 축하합니다! 🎉 이 부록은 빠르게 찾아볼 치트시트다음 학습 단계 안내입니다.

📋 고급 문법 빠른 참조

정규표현식 (21장)

PYTHON
import re
re.search(r"\d+", s)            # 처음 매칭 (Match 또는 None)
re.findall(r"\d+", s)           # 모든 매칭 → 리스트
re.sub(r"\d", "*", s)           # 치환
re.split(r"[,;]", s)            # 분리
m = re.search(r"(\d{4})-(\d{2})", s)
m.group(1)                      # 그룹 추출
re.compile(r"...")              # 재사용

# 기호: \d 숫자  \w 단어  \s 공백  . 아무거나
#       * 0+  + 1+  ? 0~1  {n,m} 범위
#       ^ 시작  $ 끝   .+? 게으름

로깅 (22장)

PYTHON
import logging
logging.basicConfig(level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(message)s",
    filename="app.log")
logging.info("정보");  logging.warning("경고")
logging.exception("에러")        # except 블록에서 (트레이스백 포함)

logger = logging.getLogger(__name__)   # 로거 객체
# 레벨: DEBUG < INFO < WARNING < ERROR < CRITICAL

날짜와 시간 (23장)

PYTHON
from datetime import date, datetime, timedelta
date.today();  datetime.now()
d + timedelta(days=7)           # 미래
(d2 - d1).days                  # 차이
dt.strftime("%Y-%m-%d")         # 날짜 → 문자열
datetime.strptime(s, "%Y-%m-%d")# 문자열 → 날짜

from zoneinfo import ZoneInfo
dt.astimezone(ZoneInfo("Asia/Seoul"))

import time
start = time.perf_counter(); ...; time.perf_counter() - start

동시성 (24·25장)

PYTHON
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
with ThreadPoolExecutor(max_workers=5) as ex:    # I/O 바운드
    results = list(ex.map(func, items))
with ProcessPoolExecutor() as ex:                # CPU 바운드
    results = list(ex.map(func, items))

import asyncio
async def task(): await asyncio.sleep(1)
async def main():
    await asyncio.gather(task(), task())         # 동시 실행
asyncio.run(main())
# 규칙: I/O→스레드/async, CPU→프로세스, GIL 주의

자료구조 (26·27장)

PYTHON
# 스택 (LIFO)
stack = []; stack.append(x); stack.pop()
# 큐 (FIFO)
from collections import deque
q = deque(); q.append(x); q.popleft()
# 이진 탐색
import bisect; bisect.bisect_left(sorted_list, x)
# 빈도/기본값
from collections import Counter, defaultdict
Counter(items);  defaultdict(int)

# 복잡도: O(1) dict/set 조회 < O(log n) 이진탐색
#         < O(n) 리스트 검색 < O(n²) 이중루프

🗺️ 고급편 전체 흐름

flowchart TD
    A[21·22 텍스트 처리<br/>정규식·로깅]:::a
    B[23 시간<br/>datetime]:::b
    C[24·25 동시성<br/>스레드·async]:::c
    D[26·27 자료구조<br/>복잡도·트리]:::d
    E[28 미니 프로젝트<br/>로그 분석기]:::e

    A --> B --> C --> D --> E

    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:#e8d5f0,stroke:#8e44ad,color:#4a235a

🎓 세 권을 모두 마친 당신에게

초급·중급·고급편을 완주했다면, 이제 Python의 핵심을 두루 익힌 셈입니다.

무엇을 얻었나
초급편문법·자료구조·제어 흐름·함수 — 프로그래밍의 뼈대
중급편OOP·이터레이션·모듈·데코레이터·도구 — 구조 있는 코드
고급편정규식·로깅·시간·동시성·자료구조 — 실무 핵심 주제

이제 "문법을 배우는 단계"는 지났습니다. 다음은 만들고 싶은 것을 만드는 단계입니다.

🚀 다음 단계: 분야별 길

분야배우면 좋은 것커리큘럼 연계
웹 개발Flask·FastAPI·Django, HTTP, 템플릿, 폼 처리첨부 커리큘럼의 Flask 섹션
데이터베이스SQL, SQLite, ORM, 트랜잭션커리큘럼의 SQLite·DB 섹션
웹 스크래핑requests, BeautifulSoup, Selenium커리큘럼의 스크래핑 섹션
데이터·AIpandas, NumPy, 시각화, 머신러닝
테스트·품질고급 pytest, 커버리지, CI
패키징·배포패키지 만들기, PyPI 배포, Docker
💡 팁
첨부된 강좌 커리큘럼에는 이 책에서 다루지 않은 Flask 웹 개발, SQLite 데이터베이스, BeautifulSoup·Selenium 스크래핑, GUI(Tkinter)까지 담겨 있습니다. 고급편으로 다진 기초 위에 관심 분야를 골라 깊이 파보세요.

실력을 굳히는 프로젝트 아이디어

세 권에서 배운 것을 총동원하는 프로젝트들입니다.

  • 웹 로그 모니터링 도구: 실시간 로그를 정규식 파싱(21장) + 비동기 수집(25장) + 통계(26장)
  • API 데이터 수집기: async로 여러 API 동시 호출(25장) + JSON 저장(중급 16장) + 스케줄링(23장)
  • 간단한 검색 엔진: 텍스트를 트리/딕셔너리로 색인(27장) + 정규식 토큰화(21장)
  • 작업 큐 시스템: deque로 작업 관리(26장) + 스레드 풀로 처리(24장) + 로깅(22장)
  • 개인 가계부/일정 관리 웹앱: Flask(다음 단계) + DB + 이 책의 모든 것

더 나아가기 위한 습관

  • 읽기: 잘 만든 오픈소스 코드를 읽으세요. 표준 라이브러리 소스도 좋은 교재입니다.
  • 만들기: 작더라도 끝까지 완성하는 프로젝트를 쌓으세요.
  • 측정하기: 느리면 perf_counter로 재고, 복잡도를 따져 개선하세요.
  • 테스트하기: 중요한 코드엔 pytest 테스트를(중급 19장).
  • 공식 문서: docs.python.org는 평생의 동반자입니다.

📚 더 공부할 자료

  • 공식 문서: docs.python.org/ko — 표준 라이브러리 레퍼런스.
  • 공식 HOWTO: 정규식·로깅·동시성 등 주제별 심화 가이드가 공식 문서에 있습니다.
  • PEP: 관심 가는 기능의 PEP를 읽으면 "왜 그렇게 설계됐는지" 이해가 깊어집니다.
◀️ 이전: 98. 고급 용어 보강 | 🏠 목차로 돌아가기

세 권의 여정을 모두 마치셨습니다. 이제 당신은 Python으로 무엇이든 만들 수 있는 토대를 갖췄습니다. 배움은 여기서 끝이 아니라, 진짜 시작입니다. 직접 만들고, 막히고, 찾아보고, 고치며 계속 성장하세요. 🐍🚀

수고하셨습니다!