지원서 작성부터 합격자 발표 확인까지 입학 지원 전 과정을 간편하게 제공하는 서비스입니다. 매년 인수인계를 기반으로 프론트엔드 유지보수 및 기능 개선에 기여했으며, 실제 학교 선생님들의 요구사항을 반영해 입학 전형 과정에 맞게 서비스 동작을 보완했습니다.
17,000+
페이지 뷰
1,800명
사용자 수
2022 ~ 2026
운영 기간
My Contributions
원서 제출 전 미리보기 기능 구현
- 기존 API에 preview 파라미터를 추가해 미리보기 데이터를 분리하고 서버 fetch 함수와 커스텀 훅을 리팩터링했습니다.
- PreviewOneseoType을 정의해 제출 전/후 상태를 타입 레벨에서 분리하고 안정성을 확보했습니다.
- /print?preview=true 기반 미리보기 페이지와 워터마크 배너를 구성하고, client일 때만 버튼이 노출되도록 admin 화면과 분리했습니다.
- preview 여부를 query key에 포함하고 staleTime: 0을 설정해 React Query 캐시 충돌을 해결했습니다.
학생 인적사항 수정 기능 구현
- 이름·생년월일·성별 필드를 read-only에서 편집 가능한 form 필드로 전환하고, 생년월일은 연/월/일 Select를 조합해 YYYY-MM-DD로 반영했습니다.
- admin의 인적사항 수정을 memberId 기반의 별도 엔드포인트로 분리해 client와의 충돌을 방지했습니다.
- client/admin용 커스텀 훅을 각각 추가하고, 원서 제출 시 인적사항을 먼저 저장한 뒤 데이터를 전송하도록 순서를 정리했습니다.
Trouble Shooting
| 문제 | 원인 | 해결 |
|---|---|---|
| 미리보기 API에 성적·출결 필드 누락 | 미리보기 API 응답에 calculatedScore, absentDaysCount가 없어 렌더링 중 런타임 에러 발생 | 임시로 optional + optional chaining 적용 후, API 안정화 시점에 필수 타입으로 엄격하게 재정의 |
| 미리보기에 인적사항 변경 미반영 | handlePreviewPrint에서 patchPersonalInfo 없이 postTempStorage만 호출 | 제출 흐름과 동일하게 patchPersonalInfo를 먼저 호출한 뒤 postTempStorage 호출 |
| admin 화면에 미리보기 버튼 노출 | StepBar가 handlePreviewPrint prop 유무와 무관하게 버튼 렌더링 | prop이 없으면 버튼을 렌더링하지 않고, client일 때만 prop을 전달하도록 분리 |
| 1-1학기 교과 성적 빗금 미표시 | 미리보기 모드에서 빗금 표시 조건이 적용되지 않음 | 빗금 조건에 key === '1_1' 조건을 명시적으로 추가 |
| 인쇄 시 토스트 함께 출력 | 화면의 토스트 알림이 인쇄 영역에 포함됨 | 인쇄 스타일에 print:hidden을 적용해 토스트 숨김 처리 |
미리보기 API에 성적·출결 필드 누락
원인 · 미리보기 API 응답에 calculatedScore, absentDaysCount가 없어 렌더링 중 런타임 에러 발생
해결 · 임시로 optional + optional chaining 적용 후, API 안정화 시점에 필수 타입으로 엄격하게 재정의
미리보기에 인적사항 변경 미반영
원인 · handlePreviewPrint에서 patchPersonalInfo 없이 postTempStorage만 호출
해결 · 제출 흐름과 동일하게 patchPersonalInfo를 먼저 호출한 뒤 postTempStorage 호출
admin 화면에 미리보기 버튼 노출
원인 · StepBar가 handlePreviewPrint prop 유무와 무관하게 버튼 렌더링
해결 · prop이 없으면 버튼을 렌더링하지 않고, client일 때만 prop을 전달하도록 분리
1-1학기 교과 성적 빗금 미표시
원인 · 미리보기 모드에서 빗금 표시 조건이 적용되지 않음
해결 · 빗금 조건에 key === '1_1' 조건을 명시적으로 추가
인쇄 시 토스트 함께 출력
원인 · 화면의 토스트 알림이 인쇄 영역에 포함됨
해결 · 인쇄 스타일에 print:hidden을 적용해 토스트 숨김 처리