Repository navigation
fix: 기술 면접관 전공과 질문 재작성 직무를 사용자 직무로 고정함 - #96
Merged
Merged
Conversation
SOLO 면접관 2·3의 전공이 FRONTEND로 고정돼, 백엔드 사용자가 이 면접관을 고르면
테일러가 면접관 전공을 먼저 보고 프론트엔드 기준으로 질문을 다시 썼다.
- 페르소나 저장: TECH 전공을 로그인 사용자 직무로 채운다. 요청의 major는 읽지 않는다(구버전 Web 호환)
- 전공 누락 422("기술 면접관에게는 전공(major)이 필요합니다.")를 없앤다
- 테일러 jobRole: 면접관 전공 대신 정규화한 사용자 직무 원문만 보낸다(WEB_PUBLISHER 등)
- UserJobMajors: MAJOR_ 접두사·공백·대소문자 정규화, WEB_PUBLISHER→FRONTEND, 그 밖·없음→BACKEND
API를 Web보다 먼저 배포해야 한다. 신버전 Web이 major 없이 저장하면 구버전 API는 422로 막는다.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danjee2009
reviewed
Oct 15, 2026
danjee2009
left a comment
Member
There was a problem hiding this comment.
사용자 직무를 TECH 페르소나 전공과 SOLO/MULTI 질문 재작성의 job_role에 반영하는 흐름, 직무 누락·미지원 값의 기본 처리, 비기술 페르소나의 전공 제거, 구버전 Web 요청 호환성을 검토했습니다. 확인한 diff에서 수정이 필요한 정확성·보안·호환성 문제는 찾지 못했습니다. GitHub test 체크는 통과했습니다. 로컬 테스트 실행은 하지 않았습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
API 구현 명세 08 "기술 면접관 전공을 사용자 직무로 고정"입니다. main(3d510eb) 기준입니다. DB 변경(Flyway)은 없고, Chat·분석 서버 계약도 바뀌지 않습니다.
jobRole도 사용자 직무만 씁니다(P2).변경
1. 사용자 직무 변환 (
persona/support/UserJobMajors, 신규)normalize:MAJOR_접두사를 떼고, 앞뒤 공백을 지우고, 대문자로 맞춥니다. 비어 있으면 null입니다.toPersonaMajor:BACKEND→BACKEND,FRONTEND·WEB_PUBLISHER→FRONTEND입니다. 직무가 없거나 비개발 직무, 알 수 없는 값은 BACKEND로 두고 info 로그를 남깁니다. 예외는 던지지 않습니다.2. 페르소나 저장 (
POST /api/persona/save)@AuthenticationPrincipal AuthUser를 받아 사용자 직무를 서비스에 넘깁니다.toPersonaMajor(사용자 직무)로 채웁니다. 요청 본문의major는 받기만 하고 읽지 않습니다. 구버전 Web 호환용이고, Web이 보낸 값이 사용자 직무를 덮어쓰지 못하게 합니다.3. 테일러 기준 직무 (
QuestionTailorService)resolveJobRole이 면접관 전공을 보지 않습니다. 사용자 직무만 정규화해서 원문으로 보냅니다(예:WEB_PUBLISHER). 분석 서버job_role은 자유 문자열이라, 면접관 전공으로 좁히면 정보가 줄어듭니다.resolveProfile)와 MULTI(requestMultiTailor) 두 곳 모두 바꿨습니다. 접두사 처리는UserJobMajors로 옮겼습니다.drawn.major()대체와 "직군도 면접관도 없으면 422" 판정은 그대로입니다.외부에서 보이는 동작 변화
POST /api/persona/saveTECH,major없음POST /api/persona/saveTECH,major=FRONTEND, 사용자MAJOR_BACKENDPOST /api/persona/saveHR·CEO 등job_role=FRONTENDjob_role=BACKENDjob_role=FRONTENDjob_role=BACKENDWEB_PUBLISHERjob_role=WEB_PUBLISHER응답 본문 형태와 오류 메시지 체계는 바뀌지 않습니다. 없어지는 오류는 위의 전공 누락 422 하나입니다.
배포 순서 (중요)
major를 보냄major를 안 보냄major없이 TECH 저장이 PR을 병합·배포한 뒤에 Web을 배포해 주세요.
테스트
./gradlew test전체 633개가 통과했습니다.UserJobMajorsTest(신규): 접두사·공백·소문자 정규화, WEB_PUBLISHER→FRONTEND, 비개발·없음→BACKEND를 확인합니다.PersonaServiceCreateTestQuestionTailorServiceRequestTestQuestionTailorServiceWaitingTest(콜백 재개 경로)는 수정하지 않았고 그대로 통과합니다.참고
ChatInterviewHandoffService는 바꾸지 않았습니다.persona.major가 이제 사용자 직무에서 나오고,FALLBACK_MAJOR는 이전에 저장한 페르소나용으로 남겼습니다.@Slf4j였지만, 이 레포에는@Slf4j를 쓰는 곳이 없습니다. 그래서 다른 파일처럼LoggerFactory를 썼습니다.🤖 Generated with Claude Code