Repository navigation
feat: 역량 축 채점(competency-v1) 질문 카테고리 저장·송신과 콜백 새 필드 저장 - #121
Merged
Merged
Conversation
- V42: interview_question.category, feedback_item.response_level(SMALLINT)·competencies(jsonb)를 추가한다. 기존 행은 채우지 않는다. - 면접 결과 저장 때 질문 category를 소문자 스네이크케이스 1~64자일 때만 저장한다. 옛 채팅 면접이 보내는 의도 문장은 비우고, 의도가 비었을 때 그 문장을 의도로 쓰는 기존 동작은 둔다. - 1:1·N:1 채점 요청에 category를 싣는다. 값이 없으면 키를 보내지 않는다. - 콜백 문항의 responseLevel·competencies를 CompetencyReader가 읽어 저장한다. 산출 근거의 verdict·evidenceCount·response·motivation·credibility는 ScoreBreakdownReader가 읽는다. 모양이 어긋난 항목·인용만 버리고, 인용 원문은 로그에 남기지 않는다. - 조회 응답에 새 필드를 그대로 내보낸다. 산출 근거의 새 필드는 NON_NULL이라 axis-v4 결과의 응답은 바뀌지 않는다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danjee2009
reviewed
Oct 21, 2026
danjee2009
left a comment
Member
There was a problem hiding this comment.
검토 범위: 전체 diff와 관련된 요청/응답 DTO, 콜백 검증·저장, 카테고리 정규화, DB 마이그레이션을 확인했습니다. 확인한 변경에서 구체적인 정확성, 보안, API 호환성 또는 데이터 일관성 문제는 찾지 못했습니다. GitHub Actions 테스트 검사는 현재 대기 중이며, 이 환경에서 테스트를 별도로 실행하지는 않았습니다.
2-dayeon
approved these changes
Oct 21, 2026
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 서버 담당분, 구현 명세 03 문서)
Task
interview_question.category VARCHAR(64)추가. 채팅 서버가 면접 결과 저장 때 이미 보내던category를 지금까지 버리고 있었습니다.^[a-z][a-z0-9_]{0,63}$일 때만 저장합니다. 옛 채팅 면접은 이 자리에 질문 의도 문장을 보내므로 그 경우는 null입니다.category문자열을 의도로 쓰는 기존 동작(intentionOf)은 그대로입니다.category송신FeedbackSoloRequest.Question,FeedbackMultiRequest.Question에category(NON_NULL). 값이 없으면 키를 보내지 않습니다.feedback_item.response_level SMALLINT,feedback_item.competencies JSONB추가.responseLevel·competencies는JsonNode로 받아 새CompetencyReader가 풉니다. 등급 04, 점수 0100, 역량 6개·역할 2개 값 밖의 항목은 버리고, 근거 인용은 slot 140자·quote 11,000자(code point)만 남깁니다.verdict·evidenceCount, 그리고response·motivation·credibility를ScoreBreakdownReader가 읽습니다. 모순 항목은 문항 id·인용이 문자열 두 개씩 맞아야 남고, 모르는kind는OTHER로 둡니다.warnIfTotalDiffers)에 섞이지 않습니다.GET /api/feedbacks의scoreBreakdown·personas[].scoreBreakdown·feedbacks[]에 새 필드가 그대로 나갑니다.ETC
axis-v4) → 설정 전환. 분석 서버가axis-v4인 동안은 새 컬럼이 비어 있을 뿐 동작이 바뀌지 않습니다. 되돌려도 컬럼은 남겨 둡니다.response_level은SMALLINT라 엔티티에@JdbcTypeCode(SqlTypes.SMALLINT)를 붙였습니다. 없으면ddl-auto: validate에서 기동이 막힙니다.AxisScoreResponse·ScoreBreakdownResponse에는 axis-v4 모양 생성자를 남겼습니다. 콜백Item은 필드가 둘 늘어 기존 테스트 생성자 호출에 인자를 붙였습니다.totalScore68은 축 점수·가중치로 계산하면 66이라 계약의 보장 식과 맞지 않습니다. 테스트는 66으로 썼습니다. 문서 예시도 고쳐야 합니다../gradlew test1123개 통과(실패·오류·건너뜀 0), V42 적용 포함🤖 Generated with Claude Code