Skip to content

Conversation

@GitJIHO
Copy link
Member

@GitJIHO GitJIHO commented Jul 21, 2025

#️⃣ 연관된 이슈

📝 작업 내용

  • PDF 리포트 다운로드 기능 구현: QuestPDF 라이브러리를 활용하여 면접 완료 후 종합 리포트를 PDF로 다운로드할 수 있는 기능을 추가하였습니다.
  • PDF 서비스 구현: PdfReportService에서 QuestPDF를 활용한 PDF 생성 로직과 마크다운 파싱 기능을 구현하였습니다.
  • 웹 서비스 통합: 프론트엔드에서 API를 호출하여 PDF를 다운로드할 수 있는 ReportService를 구현하였습니다.
  • 사용자 경험 개선: 면접 완료 시에만 PDF 다운로드 버튼이 활성화되는 단계별 UI를 구현하였습니다.
  • 포괄적 단위테스트 작성: 모든 레이어에 대해 NUnit + Shouldly를 활용한 단위테스트 구현하였습니다.

스크린샷 (선택)

image

생성된 면접 리포트 PDF 다운로드 : 면접리포트_20250722_002915.pdf

💬 리뷰 요구사항(선택)

원래 DevOps 파트를 담당하다가 고도화 과정에서 프론트엔드와 백엔드까지 통합해서 진행하게 되어, 웹 개발 부분에서 미숙한 부분이나 실수가 있을 수 있습니다..! 피드백 주시면 적극 반영하겠습니다!

  1. QuestPDF 라이브러리 선택: PDF 생성을 위해 QuestPDF를 선택했는데, 이 라이브러리가 프로덕션 환경에서 적합한지 궁금합니다! 다른 라이브러리를 사용해야 할까요?

  2. PDF 레이아웃 디자인: QuestPDF로 구현한 PDF 레이아웃이 실제 면접 리포트로 사용하기에 적절한지 검토해주신다면 감사드리겠습니다!

  3. 마크다운 파싱 로직: PdfReportService.ParseMarkdown 메서드에서 정규식을 사용한 마크다운 파싱이 현재 방식이 적절한지 궁금합니다..!

⏰ 현재 버그

배포 후 확인결과 이상 없습니다.

✏ Git Close

close #88

@GitJIHO GitJIHO self-assigned this Jul 21, 2025
@GitJIHO GitJIHO added the ✨ Feature 새로운 기능 추가 및 구현하는 경우 label Jul 21, 2025
@github-actions
Copy link

github-actions bot commented Jul 21, 2025

Test Results

73 tests   72 ✅  1m 59s ⏱️
13 suites   1 💤
 4 files     0 ❌

Results for commit 49c3aa2.

♻️ This comment has been updated with latest results.

@GitJIHO GitJIHO changed the title Feat/issue #88 Feat: AI 면접 완료 후 종합 리포트를 PDF 형태로 생성하고 다운로드할 수 있는 기능 구현 Jul 21, 2025
Copy link
Contributor

@dkswoals dkswoals left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

작업량이 엄청 많았을텐데 고생 많으셨습니다
리포트 양식도 너무 깔끔하고 좋습니다!
몇가지 궁금한 점과 의견들 코멘트로 남겨두었습니당

Comment on lines +593 to +612
private int ExtractFitnessScore()
{
// 종합 피드백에서 점수 추출 시도
if (!string.IsNullOrEmpty(finalFeedback))
{
var scoreMatches = System.Text.RegularExpressions.Regex.Matches(finalFeedback, @"(\d+)점|(\d+)/10|점수.*?(\d+)");
if (scoreMatches.Count > 0)
{
foreach (System.Text.RegularExpressions.Match match in scoreMatches)
{
for (int i = 1; i < match.Groups.Count; i++)
{
if (int.TryParse(match.Groups[i].Value, out int score) && score <= 10)
{
return score;
}
}
}
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 에이전트 프롬프트에서는 최종 피드백에 적합성 점수를 생성하는 구문이 없기에 추출 실패율이 높을것으로 보입니다!
프롬프트에 최종 피드백 시 적합성 점수를 반환하라는 구문을 추가하는건 어떨까요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 가끔 종합피드백에 점수가 나온적이 있어서 이미 프롬포트에 구문이 추가된 줄 알았네요..! 좋습니다 👍

}

// 기본 점수 (질문/답변 수에 따라 결정)
return Math.Min(8, 5 + questionsAndAnswers.Count);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(단순궁금) 기본 점수를 8점으로 정하신 기준이 있나요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 부분이 쓰이는 경우는 ExtractFitnessScore 메서드에서 종합 피드백 출처의 점수를 추출하지 못했을 경우에 간단하게 자체 점수를 정하는 로직이라 보수적인 관점에서 최대 8점으로 설정하였습니다

@GitJIHO GitJIHO closed this Jul 29, 2025
@GitJIHO
Copy link
Member Author

GitJIHO commented Jul 29, 2025

리포트 생성 방식 AI 활용 방식으로 변경을 위해 PR close

@GitJIHO GitJIHO deleted the Feat/issue-#88 branch August 18, 2025 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 새로운 기능 추가 및 구현하는 경우

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants