40차시. 발표와 정리
퀴즈 2 — README 빠진 항목 찾기
README 글 text 를 받아 "## " 로 시작하는 제목만 보고 빠진 항목을 찾는 check_readme(text) 를 완성해 보세요. 필수 6개(무엇을 하나, 성능, 구조, 설치와 실행, 주요 설정, 알려진 한계)와 권장 1개(다음에 할 것)를 나눠, 빠진 필수 목록과 빠진 권장 목록을 돌려주세요.
빈칸 코드에서 시작합니다.
REQUIRED = {
"무엇을 하나": "필수",
"성능": "필수",
"구조": "필수",
"설치와 실행": "필수",
"주요 설정": "필수",
"알려진 한계": "필수",
"다음에 할 것": "권장",
}
def check_readme(text):
pass결과 보기 (예시 풀이)
# 3절 문서화 체크리스트로 README 의 빠진 항목을 찾습니다.
# README 의 "## " 제목만 보고, 정해 둔 말로 시작하는 제목이 있는지 확인합니다.
REQUIRED = {
"무엇을 하나": "필수",
"성능": "필수",
"구조": "필수",
"설치와 실행": "필수",
"주요 설정": "필수",
"알려진 한계": "필수",
"다음에 할 것": "권장",
}
def check_readme(text):
# "## 성능 (2026-08-06)" 처럼 뒤에 덧붙은 말이 있어도 되도록 앞부분만 견줍니다.
heads = [line[3:].strip() for line in text.splitlines() if line.startswith("## ")]
missing_must, missing_opt = [], []
for key, level in REQUIRED.items():
if not any(h.startswith(key) for h in heads):
(missing_must if level == "필수" else missing_opt).append(key)
return missing_must, missing_opt
def show(name, text):
must, opt = check_readme(text)
if not must:
print(f"[{name}] 필수 항목 모두 있음" + (f" · 권장 빠짐 {opt}" if opt else ""))
else:
print(f"[{name}] 필수 빠짐 {must}" + (f" · 권장 빠짐 {opt}" if opt else ""))
# 예시 1: 수업 자료 README 의 제목들 → 모두 있어야 합니다.
full = """# 사내 인사규정 Q&A 시스템
## 무엇을 하나
## 성능 (2026-08-06)
## 구조
## 설치와 실행
## 주요 설정 (config.py)
## 알려진 한계
## 다음에 할 것
"""
show("완성본", full)
# 예시 2: 한계와 다음 계획을 뺀 README → 알려진 한계(필수)와 다음에 할 것(권장)이 빠졌다고 나와야 합니다.
draft = """# 내 RAG
## 무엇을 하나
## 성능
## 구조
## 설치와 실행
## 주요 설정
"""
show("초안", draft)
실행 결과
[완성본] 필수 항목 모두 있음
[초안] 필수 빠짐 ['알려진 한계'] · 권장 빠짐 ['다음에 할 것']채점 기준: "## 성능 (2026-08-06)" 처럼 뒤에 말이 붙은 제목도 찾고, 필수와 권장을 따로 돌려주면 정답입니다.
관련 교안: 40차시 「3. 문서화 체크리스트」