배울 내용 바로가기
Python 배울 내용
pytest·debugging·logging처음 배우는 사람용 · 문장을 다듬는 중

pytest·debugging·logging

test 개수나 coverage percentage를 늘리는 데서 멈추지 않고, expected와 actual을 분리하고 재현 가능한 실패를 최소화해 강한 oracle·격리된 fixture·정확한 diagnostic evidence로 최초 원인을 국소화한다.

작은 수업
52
바로 풀어볼 수 있는 문제
8 / 416
직접 움직이는 그림
1 / 52
나중에 다시 풀기
1일 · 7일 · 30일 뒤
01

모든 작은 수업이 같은 순서로 이어져요

보고, 해보고, 내 말로 설명하는 열두 단계

먼저 골라 보고, 직접 해보고, 생각과 달라진 첫 곳을 찾아요. 한 가지를 바꿔 다시 해본 뒤 새로운 생활 장면에서도 같은 생각을 쓸 수 있는지 확인해요.

VAIRODE의 열두 번 작은 배움 순서오늘 할 일을 보고, 먼저 생각하고, 그림으로 이해하고, 직접 해본 뒤, 막힌 곳을 고치고 새 문제에서 다시 확인하는 학습 흐름입니다.01오늘 할 일왜 배우는지02먼저 떠올리기이미 아는 것03그림으로 보기어떻게 움직이나04먼저 골라보기하기 전 생각05직접 해보기무엇이 보이나06막힌 곳 찾기처음 다른 곳07하나 바꿔보기한 가지08내가 만들기직접 완성09다시 확인하기새 문제로 확인10내 말로 설명한 문장 기록11생활에 써보기새로운 장면12나중에 다시1·7·30일
  1. 01오늘 할 일왜 배우는지
  2. 02먼저 떠올리기이미 아는 것
  3. 03그림으로 보기어떻게 움직이나
  4. 04먼저 골라보기하기 전 생각
  5. 05직접 해보기무엇이 보이나
  6. 06막힌 곳 찾기처음 다른 곳
  7. 07하나 바꿔보기한 가지
  8. 08내가 만들기직접 완성
  9. 09다시 확인하기새 문제로 확인
  10. 10내 말로 설명한 문장 기록
  11. 11생활에 써보기새로운 장면
  12. 12나중에 다시1·7·30일
02

52개 작은 수업으로 나눴어요

배울 내용 골라 보기

각 작은 수업에는 그림, 자주 헷갈리는 곳, 막혔을 때 볼 도움과 여덟 연습 문제가 있어요. 먼저 그림으로 이해하고, 따라 해보고, 혼자 풀고, 내가 한 일을 남기는 순서로 열립니다.

  1. 01

    학습 자료와 연습 문제 준비 중

    예상 결과와 실제 결과를 분리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령이 움직이는 순서를 한 줄씩 보는 그림 · 먼저 알면 좋은 수업 1

  2. 02

    학습 자료와 연습 문제 준비 중

    오류·결함·실패·근본 원인을 구분한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  3. 03

    학습 자료와 연습 문제 준비 중

    실패 입력을 재현 가능하게 포획한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 연습할 자료 묶음 · 먼저 알면 좋은 수업 1

  4. 04

    학습 자료와 연습 문제 준비 중

    근본 원인을 보존한 최소 재현을 만든다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  5. 05

    학습 자료와 연습 문제 준비 중

    가설을 기록하고 한 번에 하나만 바꾼다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  6. 06

    학습 자료와 연습 문제 준비 중

    print debugging을 제한적으로 쓰고 제거한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령을 직접 써 보는 창 · 먼저 알면 좋은 수업 1

  7. 07

    학습 자료와 연습 문제 준비 중

    breakpoint·step·next·continue로 frame을 조사한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 처음 달라진 곳을 찾는 창 · 먼저 알면 좋은 수업 1

  8. 08

    학습 자료와 연습 문제 준비 중

    수정 전에 regression test를 먼저 고정한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  9. 09

    학습 자료와 연습 문제 준비 중

    계약을 검증 가능한 test case로 번역한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  10. 10

    학습 자료와 연습 문제 준비 중

    AAA와 Given-When-Then으로 test 의도를 드러낸다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  11. 11

    학습 자료와 연습 문제 준비 중

    동등 분할로 입력 공간을 압축한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  12. 12

    학습 자료와 연습 문제 준비 중

    경계값에서 규칙 전환을 공격한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  13. 13

    학습 자료와 연습 문제 준비 중

    결정 테이블로 조건 조합을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  14. 14

    학습 자료와 연습 문제 준비 중

    상태 전이와 금지 전이를 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 모습이 바뀌는 순서 그림 · 먼저 알면 좋은 수업 1

  15. 15

    학습 자료와 연습 문제 준비 중

    정상·경계·오류·부정 입력 matrix를 만든다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  16. 16

    학습 자료와 연습 문제 준비 중

    oracle의 false green·false red를 찾는다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 숫자를 비교하는 그림 · 먼저 알면 좋은 수업 1

  17. 17

    학습 자료와 연습 문제 준비 중

    pytest discovery와 실행 범위를 통제한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령을 직접 써 보는 창 · 먼저 알면 좋은 수업 1

  18. 18

    학습 자료와 연습 문제 준비 중

    plain assert와 failure introspection을 읽는다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령이 움직이는 순서를 한 줄씩 보는 그림 · 먼저 알면 좋은 수업 1

  19. 19

    학습 자료와 연습 문제 준비 중

    값·identity·collection·근사 비교를 구분한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  20. 20

    학습 자료와 연습 문제 준비 중

    pytest.raises로 예외 계약을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령이 움직이는 순서를 한 줄씩 보는 그림 · 먼저 알면 좋은 수업 1

  21. 21

    학습 자료와 연습 문제 준비 중

    warning 발생·부재·filter 계약을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  22. 22

    학습 자료와 연습 문제 준비 중

    parametrization으로 case와 oracle을 선언한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  23. 23

    학습 자료와 연습 문제 준비 중

    marker·선택·skip·xfail 의미를 지킨다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령을 직접 써 보는 창 · 먼저 알면 좋은 수업 1

  24. 24

    학습 자료와 연습 문제 준비 중

    test folder와 import boundary를 설계한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  25. 25

    학습 자료와 연습 문제 준비 중

    I/O shell에서 pure core를 분리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  26. 26

    학습 자료와 연습 문제 준비 중

    unittest.TestCase 호환 경계를 다룬다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  27. 27

    학습 자료와 연습 문제 준비 중

    fixture를 dependency injection으로 사용한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  28. 28

    학습 자료와 연습 문제 준비 중

    fixture scope와 yield teardown을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  29. 29

    학습 자료와 연습 문제 준비 중

    conftest 공유와 fixture override 경계를 추적한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  30. 30

    학습 자료와 연습 문제 준비 중

    tmp_path로 filesystem을 격리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 기억할 곳을 나눈 그림 · 먼저 알면 좋은 수업 1

  31. 31

    학습 자료와 연습 문제 준비 중

    capsys·capfd로 출력 경계를 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 명령을 직접 써 보는 창 · 먼저 알면 좋은 수업 1

  32. 32

    학습 자료와 연습 문제 준비 중

    monkeypatch로 env·time·random 경계를 격리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 기억할 곳을 나눈 그림 · 먼저 알면 좋은 수업 1

  33. 33

    학습 자료와 연습 문제 준비 중

    dummy·stub·fake·spy·mock을 목적별로 선택한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  34. 34

    학습 자료와 연습 문제 준비 중

    spec·autospec과 patch lookup 지점을 지킨다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 기억할 곳을 나눈 그림 · 먼저 알면 좋은 수업 1

  35. 35

    학습 자료와 연습 문제 준비 중

    print·assertion·logging의 역할을 분리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  36. 36

    학습 자료와 연습 문제 준비 중

    named logger hierarchy와 propagation을 추적한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  37. 37

    학습 자료와 연습 문제 준비 중

    log level을 조치 의미로 선택한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  38. 38

    학습 자료와 연습 문제 준비 중

    LogRecord·handler·filter·formatter 흐름을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  39. 39

    학습 자료와 연습 문제 준비 중

    구조화 context·exception·secret 제거를 설계한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 연습할 자료 묶음 · 먼저 알면 좋은 수업 1

  40. 40

    학습 자료와 연습 문제 준비 중

    caplog로 log 의미와 비노출을 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  41. 41

    학습 자료와 연습 문제 준비 중

    line·branch coverage를 실행 증거로 읽는다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 숫자를 비교하는 그림 · 먼저 알면 좋은 수업 1

  42. 42

    학습 자료와 연습 문제 준비 중

    100% coverage와 correctness를 분리한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 숫자를 비교하는 그림 · 먼저 알면 좋은 수업 1

  43. 43

    학습 자료와 연습 문제 준비 중

    mutant와 negative control로 test를 test한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 숫자를 비교하는 그림 · 먼저 알면 좋은 수업 1

  44. 44

    학습 자료와 연습 문제 준비 중

    unit·integration·system·E2E 경계를 선택한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  45. 45

    학습 자료와 연습 문제 준비 중

    fake·mock과 실제 integration seam을 교차 검증한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  46. 46

    대표 체험 수업

    재현 가능한 failure triage evidence loop

    8 바로 풀 문제 · 자주 헷갈리는 곳 3개 · 직접 움직여 보는 그림 · 먼저 알면 좋은 수업 3

  47. 47

    학습 자료와 연습 문제 준비 중

    CI quality gate와 Python matrix를 설계한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 일의 순서를 선으로 이은 그림 · 먼저 알면 좋은 수업 1

  48. 48

    학습 자료와 연습 문제 준비 중

    TDD와 재현 가능한 defect report를 연결한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 시간 순서 그림 · 먼저 알면 좋은 수업 1

  49. 49

    학습 자료와 연습 문제 준비 중

    online judge hidden test를 local oracle로 대비한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 직접 움직여 보는 그림 · 먼저 알면 좋은 수업 1

  50. 50

    학습 자료와 연습 문제 준비 중

    PCET 직접 정렬과 선택적 자격 확장을 구분한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 비교표 · 먼저 알면 좋은 수업 1

  51. 51

    학습 자료와 연습 문제 준비 중

    property·metamorphic relation과 Hypothesis shrinking을 쓴다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 모습이 바뀌는 순서 그림 · 먼저 알면 좋은 수업 1

  52. 52

    학습 자료와 연습 문제 준비 중

    AI 생성 patch와 test를 독립 감사한다

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 직접 움직여 보는 그림 · 먼저 알면 좋은 수업 3

03

마지막에 혼자 해 보는 도전

oracle defect, shared fixture state, wrong mock lookup, flaky order, log context leak이 섞인 synthetic order service를 재현·국소화·수정하고 `failure-triage-evidence-ledger`를 구현한다.

실제와 닮은 상황

known-good·known-bad implementation, order permutation, environment/time/random variants, fake·real adapter, warning·logging·coverage artifacts와 AI가 만든 test·patch가 섞인 production-like release review다.

글이나 답을 만들어 주는 도구의 도움을 받았다면

AI가 제안한 test·fixture·mock·logging·patch를 단계별로 표시하고, AI 사용 전에 사람이 고정한 expected·oracle·failure signature와 AI 없이 통과한 hidden transfer evidence를 별도 제출한다.

마지막에 완성할 것

  • requirement→partition·boundary·state·negative case와 independent oracle traceability matrix
  • minimal reproducer, hypothesis ledger, pdb/traceback/faulthandler·fixture lifecycle·mock lookup·LogRecord first-divergence receipt
  • line·branch coverage와 target mutant kill, fake·real integration contract 및 order-permutation replay report
  • AI patch의 oracle provenance·minimal diff·hidden transfer·secret scan과 CI Python matrix approval record

다 했는지 확인하는 기준

  • expected를 구현에서 복사하지 않고 계약·독립 model·invariant에서 도출하며 known-good와 target mutant를 정확히 구분한다.
  • failure input을 synthetic fixture와 environment fingerprint로 clean process에서 재현하고 한 번에 한 축을 바꿔 last-good·first-bad state를 국소화한다.
  • pytest collection·fixture scope·teardown·tmp_path·capture·monkeypatch와 mock lookup을 추적해 order-independent·resource-safe suite를 만든다.
  • logger hierarchy·level·record·handler·formatter·caplog을 검증하고 모든 diagnostic artifact에서 credential·개인정보·private grader sentinel 0건을 보장한다.
  • line·branch coverage를 execution evidence로만 해석하고 mutation·negative control·integration contract로 oracle과 seam의 실제 탐지력을 증명한다.
  • AI 없이 미공개 failure variant를 통과하고 exact Python 3.14.6 clean replay·order permutation·CI matrix와 accept/refactor/reject human verdict를 제출한다.