함수와 데이터 흐름 읽기
AI 도움 없이도 할 일 처리 함수와 실패 경로를 설명합니다.
진도 0%
레슨
- 값과 조건 읽기
Python으로 제목 정규화와 길이 검사를 구현하고 경계 입력을 채점합니다.
- 함수와 호출 흐름
생성·조회 함수를 분리하고 각 함수의 입력과 반환값을 설명합니다.
- 식별자와 자료구조
딕셔너리에 할 일을 저장하고 중복 식별자와 없는 식별자를 구분합니다.
- 예외와 부작용
잘못된 입력이 기존 목록을 바꾸지 않도록 처리하고 실패 경로를 추적합니다.
함수와 데이터 흐름 읽기 미션
m01-scope 미션 solution의 spec.md·cases.json·문서 검사기를 그대로 이어받고 Python 순수 함수 참조 모델과 실제 사례 실행 검사를 추가합니다. Java·HTTP는 다음 모듈에서 연결합니다.
요구사항
- 앞 모듈의 사례를 처리하는 순수 함수 참조 모델을 작성합니다.
- trace.md에 호출 순서·값 변경·예외 전파를 설명합니다.
- 외부 의존성 없이 Python 표준 라이브러리만 사용합니다.
- reference.py에 normalize_title·add_task·list_tasks·complete_task·apply를 구현합니다. apply는 (결과, 새 상태)를 반환하고 입력 상태와 명령을 수정하지 않습니다.
- 정상 초기 상태의 id는 1부터 연속입니다. 제목은 strip 뒤 1~40 코드 포인트, 완료 id는 bool 제외 양의 정수이며 재완료는 성공입니다.
- 실패는 번호를 소비하지 않습니다. 응답 항목·새 상태·원본은 수정 시 서로 영향을 주지 않습니다.
- trace.md에 C01~C12의 함수 연결과 C03 예외 전파·C08 정상 완료의 인자·반환·건너뛴 줄·상태를 기록합니다. evidence.md에 실제 명령과 검증 범위를 기록합니다.
완료 기준
- bash check.sh 실행 시 다음 기준을 검사하고 성공이면 종료 코드 0을 반환합니다.
- 참조 모델 테스트에서 정상·경계·잘못된 입력·원본 불변 검사가 통과합니다.
- 명세 사례 ID 전부가 참조 모델 테스트와 연결됩니다.
- check.sh는 check_spec.py의 기존 문서 검사를 수행한 뒤 unittest로 cases.json 전체 결과·이후 상태·원본 불변, boolean 및 잘못된 id, 실패 후 번호, 재완료, 응답/상태 복사 독립성을 검사합니다.
- trace.md의 사례 ID와 TODO만 자동 검사합니다. 호출 설명의 의미와 AI/본인 판단 기록은 사람이 코드와 대조합니다.
- 문서 검사기의 앱 미확인 문구는 그 검사기 자체의 범위입니다. 이어 실행되는 unittest 통과는 Python 참조 모델의 증거이며 Java·HTTP 구현 증거가 아닙니다.
bash check.sh미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 요구사항과 실제 검증 근거를 연결해 설명합니다.
- 본인이 판단한 사항과 AI에 맡긴 사항을 구분합니다.
- 통과·실패·미확인 상태를 사실대로 기록합니다.