검증, 변환, 집계, 출력 단계를 하나의 흐름으로 구성합니다.
실제 프로그램은 문법 하나가 아니라 여러 작은 함수를 연결해 입력을 검증하고 필요한 형태로 변환한 뒤 결과를 만듭니다. 각 단계가 명확한 입력과 출력을 가지면 오류 위치를 찾고 테스트하기 쉽습니다.
parse_record가 문자열로 들어온 completed와 total을 int로 바꾸고 범위를 검사한 뒤 StudyRecord를 만듭니다. rate는 property라 정렬 key에서 item.rate로 바로 읽히고, reverse=True 정렬 덕분에 22/24인 지영: 91.7%가 18/24인 민수: 75.0%보다 먼저 출력됩니다.
아래 예제는 딕셔너리 입력을 검증하고 dataclass로 변환한 뒤 사용자별 완료율을 집계합니다. 잘못된 한 행 때문에 전체 작업을 중단할지 건너뛸지도 정책입니다.
배치 작업에서는 처리 건수, 실패 건수, 실행 시간과 재처리 기준을 기록하고 같은 입력을 다시 처리해도 결과가 중복되지 않는 멱등성을 고려합니다.
파싱, 계산, print를 하나의 큰 반복문에 넣으면 어느 단계가 실패했는지 테스트하기 어렵습니다.
직접 바꿔보세요잘못된 행 하나를 추가하고 오류 목록에 이유를 모아 마지막에 출력하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.