본문으로 건너뛰기
Previous
Next
Python 실전 시리즈 전체 목차 | #01~#23 학습 경로·영문 글·연관 글

Python 실전 시리즈 전체 목차 | #01~#23 학습 경로·영문 글·연관 글

Python 실전 시리즈 전체 목차 | #01~#23 학습 경로·영문 글·연관 글

이 글의 핵심

Python의 읽기 쉬운 문법·배터리 포함 철학과 함께, #01~#23 목차·입문·웹·데이터·자동화 트랙, 영문·연관 글을 한곳에 정리했습니다.

들어가며

이 페이지는 pkglog Python 시리즈(한글 본편 #01~#23)통합 목차야. “표로 정해진 커리큘럼” 대신, 내가 겪은 것처럼 순서·건너뛰기·한 번씩 꼬였던 지점을 풀어 쓰려고 해. 자료구조 비교, pip·uv·Poetry 비교, 성능 최적화 사례 같은 단편은, 도구 감을 붙이고 싶을 때 옆에 두고 읽으면 돼.

같은 레포의 다른 언어 시리즈: Go 2주 완성 목차 · C++ 시리즈 목차


Python으로 처음 자동화했을 때

처음엔 “언어”보다 반복 작업이 문제였어. 폴더에 쌓인 파일 이름 바꾸기, 엑셀을 손으로 열지 않고 뭔가 돌리기, 작은 스크립트로 하루 한 번만 돌면 되는 일—그게 Python으로 들어간 입구였다. python script.py 한 줄이 내 시간을 덜어주는 느낌이 먼저 왔고, 그다음에야 문법·클래스·웹·DB가 “붙는” 쪽으로 갔다.

그래서 이 목차도 #01 → … → #23이 “정답 루트”라기보다, 자동화가 급하면 #07·#08 붙잡고 #21 쪽으로 가고, 로그·실패가 나오면 #08을 다시 보는 식이 현실에 가깝다. “다 읽고 나서 자동화”가 아니라, 필요한 만큼만 앞질러 가도 괜찮다—단, import도 애매하고 예외 메시지가 한글로만 보일 때는 #01~#05를 잠깐만 닦는 편이 나중에 덜 흔들린다.


내가 짚는 학습 루트(표 없이)

입문#01 환경에서 REPL·스크립트가 한 세트로 돌아가는지 보는 것부터. #02 #03 #04는 “읽을 수 있게”가 목표. #05 #06 #07쪼개서 다시 쓰는 연습. #08는 일부러 터뜨려 보고 메시지 읽는 쪽을 추천. #09 #10는 Flask·Django 가기 전에 “한 방에 안 풀리면 데코레이터” 정도의 감만 잡으면 됨.

#11 Flask#12 Django#13 REST#14 DB#15 배포 순이 자연스럽고, API·OpenAPI·비동기를 더 쓰고 싶으면 FastAPI 완벽 가이드·Python 비동기 프로그래밍 종합 가이드시리즈 밖에서 붙이면 된다.

데이터는 시리즈상 #16 Pandas#17 NumPy 앞에 있지만, 개인적으로는 아래 “의견” 절을 먼저 읽어봐. #18 Matplotlib #19 #20는 표 하나 가지고 “질문 → 그림 → 한 문장 결론”까지 가는 훈련용으로 쓰기 좋다.

자동화#21 파일#22 스크래핑 (robots·이용 약관 잊지 말 것) → #23 스케줄 로 묶는 게 내 경험상 덜 헤맨다.

한눈에 흐름만 보고 싶으면 아래 다이어그램은 그대로 두되, “표에 맞춰 4주” 같은 건 안 쓰기로 했다. 각자 주당 시간이 달라서, 주차表는 내 글엔 맞지 않다는 쪽이야.

flowchart LR
  subgraph intro["입문 #01~10"]
    A1["#01 환경"] --> A2["#02 문법"]
    A2 --> A3["#03 자료형"]
    A3 --> A4["#04 함수"]
    A4 --> A5["#05 클래스"]
    A5 --> A6["#06 모듈"]
    A6 --> A7["#07 파일"]
    A7 --> A8["#08 예외"]
    A8 --> A9["#09 컴프리헨션"]
    A9 --> A10["#10 데코레이터"]
  end
  subgraph web["웹 #11~15"]
    B1["#11 Flask"] --> B2["#12 Django"]
    B2 --> B3["#13 REST"]
    B3 --> B4["#14 DB"]
    B4 --> B5["#15 배포"]
  end
  subgraph data["데이터 #16~20"]
    C1["#16 Pandas"] --> C2["#17 NumPy"]
    C2 --> C3["#18 Matplotlib"]
    C3 --> C4["#19 전처리"]
    C4 --> C5["#20 분석"]
  end
  subgraph auto["자동화 #21~23"]
    D1["#21 파일"] --> D2["#22 스크래핑"]
    D2 --> D3["#23 스케줄"]
  end
  A10 --> B1
  B5 --> C1
  C5 --> D1

의견: NumPy 배우기 전에 기초부터

NumPyPandas만 빨리 잡는 튜토리얼은 많은데, 나는 #02~#04에서 list·dict·함수 인자·스코프가 아직 흐릿한 상태로 ndarray를 들이밀면, “왜 이게 뷰고 왜 이건 복사냐”에서 막힌다고 본다. 반복·인덱싱이 머릿속에서 파이썬답게 돌아가야, 브로드캐스팅·축이 덜 낯설다.

그래서 “데이터 과학만 할 거야”라도 #01~#05는 짧게라도 훑는 걸 권한다. Pandas 먼저 가도 되지만, Series 아래에 NumPy가 있다는 걸 느끼기 전에 groupby만 찍다 보면, 나중에 성능·메모리 이슈가 와도 원인을 못 쪼개는 경우가 많다. 시리즈 편은 #16이 #17보다 앞에 있으니, 배열 연산이 먹먹할 때 #17로 잠깐 점프하는 식이 현실과 맞다.


시리즈에 직접 없지만 같이 읽을 만한 것

FastAPI 완벽 가이드·Python 비동기 프로그래밍 종합 가이드·Python 완벽 가이드는 REST·DB·배포와 자연스럽게 이어지고, #13~#15 읽고 나서 보면 “시리즈 밖”이 빈칸이 덜 느껴진다.


주제별로만 짚는 링크

기초 #02 #03 #04 — 보강 자료구조 비교

함수형에 가까운 느낌 #04 #09 #10 — I/O·전역 갱신은 한곳에 몰고 나머지는 짧게.

OOP #05 #06#12이랑도 맞닿는다.

파일 #07 #21 — 인코딩 utf-8, 경로(윈도우/리눅스)만큼은 매번 실제로 틀리니까, 여기서 감 익혀 두는 편이 좋다.

Pandas·NumPy #16 #17 #18 — 위 “의견” 절과 같이 읽으면 됨.

#11 #12 #13 #14 #15 — 심화는 FastAPI.

asyncio 시리즈 본편은 동기 흐름이 많다. I/O 대기가 크면 비동기 가이드별도로.

테스트 — 예제를 함수로 쪼갠 뒤 pytest/unittest로 감싸 보기. #13이랑 HTTP 클라이언트 쓸 때 효과가 드러난다.


실전에 가까운 작은 시나리오

스크래핑 → 저장 → 돌리기 #22로 모으고, #07·#21로 CSV/JSON·로그, #23로 주기, #08로 실패 시 정책. HTTP·파싱은 원래 덜 믿을 수 있으니, 같은 작업을 여러 번 해도 저장 규칙이 뭉개지지 않게 만드는 연습이 포인트.

짧은 분석 공개 CSV → #19#16·#17#18#20 흐름으로 “질문 한 줄이 결론 한 줄”까지 가보기. 그래프 예쁜 것보다 다시 돌릴 수 있는 스크립트가 남는 게 이기는 편.

API #11 또는 #12로 CRUD 초안, #13에 맞춰 URL·상태·에러 바디, #14·#15. 여유 있으면 FastAPI로 스펙만 비슷하게 다시 써보면 계약(스키마)이 왜 큰지 체감된다.


핵심 코드 스니펫 미리보기

가상환경

python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
python -m pip install --upgrade pip
pip install pandas

파일

from pathlib import Path

path = Path("data/input.txt")
with path.open("r", encoding="utf-8") as f:
    text = f.read()

컴프리헨션 + 예외

def parse_ints(lines: list[str]) -> list[int]:
    out: list[int] = []
    for line in lines:
        line = line.strip()
        if not line:
            continue
        try:
            out.append(int(line))
        except ValueError:
            continue
    return out

Pandas

import pandas as pd

df = pd.read_csv("data.csv")
print(df.head())
print(df.describe(include="all"))

Flask (개념)

from flask import Flask, jsonify

app = Flask(__name__)

@app.get("/api/health")
def health():
    return jsonify({"status": "ok"})

pytest (개념)

# test_parse_ints.py
from mymodule import parse_ints

def test_parse_ints_skips_invalid():
    assert parse_ints(["1", "x", "2"]) == [1, 2]

비동기는 비동기 가이드async def를 보면 된다.


도구 및 환경: venv, pip, Poetry, conda

venv는 표준 가상환경. Python만으로 가볍게 격리할 때—#01이랑 직결. pip는 사실상 기본; python -m pip로 환경이랑 맞추는 습관이 중요하다. Poetry는 lock·메타데이터를 빡세게 쓰고 싶을 때. conda는 NumPy·BLAS처럼 바이너리가 많이 얽힌 데이터 쪽에서 가끔 편하다.

팀 규칙 없으면 venv + pip + requirements.txt로 시작하고, 고장·재현이 문제되면 pip / uv / Poetry 비교에서 Poetry나 uv 쪽을 본다. 표로 “언제 쓰나”를 박아 두기보다, 지금 팀이 고정한 게 뭔지가 먼저다.


IDE: VS Code, PyCharm

VS Code — Python, Pylance(또는 LSP), Ruff/Black. 가볍고 프론트랑 한 창에 묶기 좋다. .venv를 인터프리터로 잡고 포맷 on save 맞추면 된다.

PyCharm — 리팩터·디버거·Django/DB·Docker 쪽이 무겁지만 강하다. 큰 모듈 나뉜 프로젝트에서 “정의로 이동”이 빨라질 수 있다.

둘 다 CI랑 같은 포매터/린터를 쓰는 게 “내 PC에서만 통과”를 줄인다.


시리즈 본편 #01~#23 — 링크만


시리즈와 함께 보면 좋은 단편


내부 동작을 한 겹만 더

입력·요청·이벤트 → 파싱·검증 → 핵심 연산·상태 전이 → I/O·네트워크 같은 부작용 → 결과·로그·저장. “각 단계가 만족해야 하는 조건(불변조건)을 문장으로 남겨 두면” 디버깅이 쉬워지고, 순수 층과 시간·넷에 흔들리는 층을 나누면 테스트가 쉬워진다. 직렬화·인코딩·시스템콜·락 경합은 한 호출이 아니라 누적으로 아프다는 것만 머릿속에 있으면 된다.

flowchart TD
  A[입력·요청·이벤트] --> B[파싱·검증·디코딩]
  B --> C[핵심 연산·상태 전이]
  C --> D[부작용: I/O·네트워크·동시성]
  D --> E[결과·관측·저장]

프로덕션에서 자주 터지는 쪽

실서비스는 “기능”만이 아니라 뭘 볼지·어떻게 막을지·얼마나 버틸지까지 같이 온다. 관측(요청 단위 id, 에러율, 지연이 분위수로 보이는지), 입력·권한·비밀 일관성, 재시도는 멱등한 쪽에만, 배포·롤백·DB 마이그레이션—여기는 표로 “체크” 대신, 팀 런북이 있으면 그걸 믿는다.

스테이징이 프로덱션보다 덜아프면 “내 PC에선 됐는데”가 영원히 반복된다. 데이터 양·지연·부하를 최대한 가깝게 맞추는 게 비용으로 돌아온다.


문제가 생겼을 때

간헐적 실패 — 레이스, 타임아웃, 외부 API. 최소 재현 스크립트, 로그 상관, 트레이스. 느리다 — N+1, 동기 I/O, 락, 직렬화 남용. 프로파일러/APM에서 한 가지만 뺀다. 메모리 — 캐시 상한, 구독 누수, 큰 복사. 배포만 실패 — env, 권한, OS 차이, CI 로그 vs 로컬. 순서는: 최소 재현 → 최근 변경 줄이기 → env·의존성 diff → 가설·수정·회귀.


자주 묻는 질문 (FAQ)

시리즈 글은 어떤 순서로 읽어? #01부터 가는 게 제일 덜 꼬여. 기초 있으면 웹·데이터·자동화만 골라 읽어도 돼.

FastAPI·asyncio는 본편에 없는데? 23편은 Flask·Django 쪽 흐름이 많으니, 깊게 쓰려면 비동기 가이드FastAPI에 둬.

테스트는 언제부터? #04 직후부터 짧은 함수에 붙이는 습관. 웹은 #13 뒤에 HTTP 클라이언트·통합으로 키우면 돼.

Pandas vs NumPy 먼저? 개념은 NumPy ndarray에 익숙해지면 Pandas가 덜 낯선 경우가 많아. 시리즈는 #16이 앞이니, 배열·축이 막히면 #17로 점프해 봐. 이건 위 “의견” 절이랑 같이 봐.

영문은? 같은 번호 slug에 -en 붙이면 됨.

seriesId는? 한글 본편은 seriesId: 'python', #01~#23 순.

Go랑 비교해볼 만해? Go 목차의 고루틴·REST 쪽이랑 같이 읽으면 동시성 모델 차이가 손에 잡힌다.


같이 보면 좋은 글


이 글에서 다루는 키워드 (관련 검색어)

Python, 시리즈, 목차, 학습 경로, 입문, 웹개발, 데이터분석, Flask, Django, Pandas, NumPy, 웹 스크래핑, 스케줄링, 가상환경, pytest 등으로 검색해 보시면 이 글이 도움이 됩니다.