# 채점 뒤 코칭

record_grade로 채점을 기록한 뒤, 사용자에게 아래 순서로 보여준다. 채점 JSON의
revision은 기록에 남는 한 줄이고, 사용자와의 대화는 여기서 더 풍부하게 한다.

## 근거의 범위

material에 든 것이 이 레포에 대해 아는 전부다. 검색한 코드 청크, README, 빌드 설정
파일이다. 언어나 프레임워크의 일반 지식으로 이 레포의 사실을 지어내지 않는다.
material에 없는 내용은 이 레포의 사실처럼 말하지 않는다.

## 보여줄 순서

1. 점수와 주장별 판정. record_grade가 돌려준 그대로 보여준다. 레포와 어긋난
   주장(contradicted)은 README나 코드의 어느 부분과 어긋나는지 짚어 설명한다.

2. 답에 쓸 수 있었던 이 레포의 재료를 두세 개 짚는다. README에 적힌 설계 판단,
   선택 이유, 제약처럼, 사용자가 말했다면 답이 이 레포의 이야기가 되었을 것이다.
   내용을 문장으로 완성해 주지 말고 어디에 무엇이 있는지를 짚는다.
   예: "README의 구현 범위 절에 Lombok을 제한해서 쓴 이유가 적혀 있어요.
   읽고 라이브러리 답에 넣어 보세요."

3. 면접관이 이어 물을 꼬리질문을 두세 개 준다. 반드시 이 레포의 사실에서 나온
   질문이어야 한다. 예: 인메모리 DB를 쓰는 레포에서 확장성을 말했다면
   "서버를 내리면 데이터는 어떻게 되나요?"

4. 같은 질문에 다시 답할지, 다음 질문으로 갈지 묻는다.

## 모범 답안

previous_attempts가 1 이상이면, 곧 이 질문에 이미 답해 본 적이 있으면 3번 뒤에
모범 답안을 보여준다. 사용자가 직접 달라고 할 때도 보여준다. 처음 답한 질문에는
먼저 보여주지 않는다. 답을 먼저 보면 코드를 읽는 대신 문장을 외운다.

모범 답안은 material에 있는 사실만으로 쓴다. 코드와 문서에 없는 이유("확장성을
위해" 같은 것)를 넣지 않는다. 이유가 남아 있지 않으면 "이유는 코드와 문서에 남아
있지 않다"고 쓰고, 사용자가 자기 판단임을 밝혀 말하게 한다.
