Skip to content

[Feat] 지원서 CSV 추출 고도화 (최종 평가 컬럼 + decision 필터)#175

Merged
seoyeon83 merged 4 commits into
devfrom
feat/#172-csv-decision-filter
Jun 26, 2026
Merged

[Feat] 지원서 CSV 추출 고도화 (최종 평가 컬럼 + decision 필터)#175
seoyeon83 merged 4 commits into
devfrom
feat/#172-csv-decision-filter

Conversation

@seoyeon83

Copy link
Copy Markdown
Member

💡 개요

서류 평가 직후 지원자에게 결과(전화번호·이메일·합격 여부)를 전달하기 위해 지원서 CSV 추출 기능을 고도화했습니다. 별도 평가 웹사이트가 개발되어 CSV의 용도가 "서류 평가용"에서 "결과 전달용"으로 바뀐 점을 반영합니다.

🪐 주요 변경 사항

  • CSV에 최종 평가(final_decision) 컬럼 추가 (전화번호 다음, 한글 표기)
  • 추출 시 decision 파라미터로 합격자만/불합격자만/전체 필터링 지원 (PASS/FAIL/ALL, 기본값 ALL)

✅ 상세 내용

  • CsvService: 최종 평가 헤더·셀 추가, EvaluationDecision → 한글 매핑(합격/불합격/보류/미정)
  • DecisionFilter enum 신규(PASS/FAIL/ALL), ALL은 필터 없음(null)으로 변환
  • ApplicantRepository: (:decision IS NULL OR a.finalDecision = :decision) 조건으로 DB 레벨 필터링
  • RecruitmentService / RecruitmentAdminController: decision 파라미터 전달, S3 키에 decision 포함해 결과 구분
  • 테스트: CsvService(컬럼)·Service(PASS 필터/ALL→null)·Repository(필터)·Controller(파라미터)·Integration(end-to-end) 보강 — 단위+Testcontainers 전부 통과
  • data.sql: term 26 부문별 PASS/FAIL 지원자 시드 추가(필터별 추출 결과 검증용)

🔔 참고 사항

  • API: POST /applications/download?term={term}&decision={PASS|FAIL|ALL}
  • decision 미지정 시 기본값 ALL(기존 동작 호환)
  • 테스트 명세서(docs/test/TC-REC-ADMIN-001.md)는 .gitignore 대상이라 미포함 — source of truth는 Notion

서류 평가 결과 전달용으로 CSV에 '최종 평가' 컬럼을 추가한다.
전화번호 다음 위치에 배치하고, 값은 한글로 표기한다.
(PASS→합격, FAIL→불합격, HOLD→보류, PENDING→미정)
decision 파라미터(PASS/FAIL/ALL, 기본 ALL)로 추출 범위를 지정한다.
- DecisionFilter enum 신설 (ALL → final_decision 필터 미적용)
- 리포지토리에 final_decision nullable 필터 조건 추가 (DB 레벨 필터)
- S3 키에 추출 필터 표기하여 합격/불합격/전체 파일 구분
- decision 미지정 시 ALL로 동작하여 기존 호출과 하위호환 유지
- CsvServiceTest: '최종 평가' 컬럼 위치·한글 표기 검증
- RecruitmentServiceTest: decision=PASS 필터 전달·S3 키 표기, ALL→null 검증
- ApplicantRepositoryTest: 메서드 시그니처 변경 반영, final_decision 필터 케이스 추가
- RecruitmentIntegrationTest: decision=PASS end-to-end (합격자만 포함) 검증
- RecruitmentAdminControllerTest: decision 파라미터 전달·잘못된 값 400 검증
term 26(recruitment_id=1)에 부문별 final_decision=PASS·FAIL 지원자를
추가하여 decision=PASS/FAIL/ALL 추출 결과를 수동 검증할 수 있게 한다.
(user/applicant id 5~10, 기존 지원자는 그대로 유지)
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 13490fad-6ddc-40b1-acbf-ebee0031826c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/#172-csv-decision-filter

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seoyeon83 seoyeon83 changed the title #172 feat: 지원서 CSV 추출 고도화 (최종 평가 컬럼 + decision 필터) [Feat] 지원서 CSV 추출 고도화 (최종 평가 컬럼 + decision 필터) Jun 26, 2026
@seoyeon83 seoyeon83 self-assigned this Jun 26, 2026
@seoyeon83
seoyeon83 merged commit cff81af into dev Jun 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant