Search

통합그리드(지원자관리)

1. 기획서 검토 질의응답

2. 스토리별 개발 필요 항목 정리

1. 통합그리드 > 전체 지원자 관리

다이나믹 검색 필터 기능을 제공해야 한다.
기본필터
채용플랜, 채용공고, 채용분야, 지망, 지원서 제출, 지원서 제출일
지원자 정보
지원서 제출 여부, 열람 여부, 관심/블랙 지원자, 관리자 업로드 파일, 지원일자
평가 정보
최종평가, 스크리닝결과
병역/취업 우대
병역, 장애, 보훈
학력/경력정보
최종학력, 학교명, 전공명, 학점, 경력기준, 경력기간, 프로젝트
어학/자격/기타정보
외국어 시험, 외국어 활용, 해외경험, 자격증, 교육이수, 학내외 활동, 봉사활동
역량검사 정보
종합등급, 종합점수, 종합등수, 종합등수(분야내), 응답신뢰성
필터 정보를 기준으로 지원서 정보를 검색해 반환한다.
필요한 열 정보가 없을 경우 열람여부,수험번호,이름만 반환한다.
필요한 열은 1개~N개까지 리스트로 주면 그걸 모두 가공해서 반환한다.
List 정보는 현재 선택된 값(업을경우 null) 정보를 반환한다.
List 선택(평가,…) 은 mappingItems등에서 평가매핑정보를 응답정보에 담아준다.
피그마 기획 업데이트가 필요한 검색조건
그리드 열은 커스터마이징 및 조회가 가능하다.
Q1. specificCondition과 conditions 사용 용도의 차이는? ( 각각 뭘 의미하는지? )
→ conditions는 지원서 검색 필터링 조건이고 specificCondition은 필터링된 검색 결과로 그리드를 그리고 열 커스터마이징등으로 해당 페이지의 지원자에 대한 열 정보만 조회하고싶을때 지원서 식별자와 관련정보들을 세팅해주는 목적입니다. 그래서 최초 지원서 필터링 + 열 조회를 할때는 conditions만 채워주시면 되고, 이후 열 커스터마이징만할때는 specificCondition만 채워주시면 됩니다.
Q2. 아무런 필터 적용하지 않았을 때 ( conditions 빈배열일 때 ) 응답에서 빈 응답이 온다.
Q2-1. 아무런 필터 적용하지 않았을 때 빈 응답이 오는게 올바른 반응인지?
→ 이건 상동님에게 문의해보고 아무 조건이 없는 경우에 대해서 어떤 식으로 노출할지 정해서 드릴 수 있도록 하겠습니다.
Q2-2. 아니면 필수로(기본적으로) 포함되어야하는 필터가 있는건지?
→ 없습니다.
Q3. 아무런 정렬 없을 경우 → sortCondition은 빈 객체?
→ 내부적으로 아예 sortCondition을 안보내면 지원서 식별자기준으로 세팅하도록했는데 이왕이면 프론트에서 아무 정렬조건을 선택하지 않았을 경우 지원서 식별자 or 수험번호로 기본 세팅을 해주면 좋을 것 같아요.
백엔드에선 프론트가 놓쳤을때 그걸 안전성을 보강하는 목적으로 지원서 식별자 정렬 기본값을 넣었는데, 이런 묵시적인 조건보단 명시적으로 기본 정렬 조건을 넣어주면 좋을 것 같습니다.
Q4.totalElements와 numberOfElements의 차이는??
→ records의 타입은 Page<Content>인데 content안의 내용을 제외하면 Spring 의 Page 인터페이스 스펙입니다. 스펙에 대한 주석을 달아드리겠습니다.
{ "totalElements": 0, // 전체 데이터 개수 "totalPages": 0, // 전체 페이지 수 "pageable": { "pageSize": 0, // 페이지당 데이터 개수 "pageNumber": 0, // 현재 페이지 번호 (0부터 시작) "paged": true, // 페이징 적용 여부 "unpaged": true, // 페이징 미적용 여부 "offset": 0, // 데이터 시작 위치 (pageNumber * pageSize) "sort": { "sorted": true, // 정렬 적용 여부 "unsorted": true, // 정렬 미적용 여부 "empty": true // 정렬 조건 없음 여부 } }, "first": true, // 첫 페이지 여부 "last": true, // 마지막 페이지 여부 "numberOfElements": 0, // 현재 페이지의 실제 데이터 개수 "size": 0, // 페이지당 데이터 개수 (pageSize와 동일) "content": [ // 실제 데이터 목록 { "additionalProp1": {}, "additionalProp2": {}, "additionalProp3": {} } ], "number": 0, // 현재 페이지 번호 (pageNumber와 동일) "sort": { // 정렬 정보 "sorted": true, // 정렬 적용 여부 "unsorted": true, // 정렬 미적용 여부 "empty": true // 정렬 조건 없음 여부 }, "empty": true // 데이터 없음 여부 (content가 비어있는지) }
JSON
복사
Q5.records에서 pageable 내에 있는 sort와 바깥 sort의 차이는?
→ 정렬조건은 내부/외부 둘 다 없는 데이터로 보셔도 됩니다. Page를 JPA Repository methodQuery를 사용하는게 아니라 queryDSL 로 커스텀 쿼리를 만들어 동작하고 결과를 토대로 Page객체를 직접 만들어서 반환하는데 여기서 sort정보를 별도로 넣지않고 sortCondition을 기준으로 하고 있다고 보시면 됩니다.
열 이름
열 필드명
포맷
예시
수험번호
resumeDisplayNo
String
0001-00012
이름
name
String
이한솔
나이
age
String
33
성별
genderFlag
String
F or M or null
이메일
email
String
hansol@midasin.com
휴대폰번호
mobileNo
String
010-1234-1234
지원서 작성일자
createDatetime
LocalDateTime
2025-10-01T13:42:15
지원서 제출일자
submitDatetime
LocalDateTime
2025-10-01T13:42:15
지원서 제출
resumeSubmit
Boolean
true or false
공고명
recruitNoticeName
String
이한솔공고
지원분야
applySector
List<Object>
[{sn: 01, name:백엔드, priority: 1}]
최종학력 졸업 구분
finalAcademyCode
String
학사
최종학력 학교
finalAcademySchool
String
서울대학교(서울)
최종학력 전공
finalAcademyMajor
Object
{ "majorName": "컴퓨터공학전공", "basicInfo": { "academyName": “학교명” "score": "3.5", "perfectScore": "4.5" }, "majorInfo": [ { "majorType": "전공타입", "majorName": "전공명" } ] }
총경력
totalCareer
String
1년 3개월
경력 상세
careerInfo
List<Object>
[ { "careerType": "정규직", "companyName": "마이다스인", "period": "1년 2개월" } ]
어학
foreignLanguageExamInfo
List<Object>
[ { "foreignExamName": "토익", "gradeName": "1등급", "score": 980, "perfectScore": 990 } ]
자격증
licenseInfo
List<String>
[”정보처리기사”, “컴퓨터활용능력”]
관리자 업로드 파일
managerUploadFile
Boolean
true or false