설계사 시험 모의고사 PassIt — 기출 69회차를 실제 시험처럼
보험설계사 등록자격시험 기출 69회차·2,970문항을 시험지 이미지에서 옮겨, 실제 시험처럼 OMR에 표기하고 서버 채점·해설·교재 근거 쪽까지 확인하는 모의고사 웹앱입니다. 반복출제 분석, 오답노트, 해설 속 계산기, 교재 하이라이트, 관리자 문제 편집을 붙였습니다.
- 기간
- 2026-11 – 진행중
- 역할
- 기획 · 설계 · 구현 · 검증 · 배포 (1인)
- 조직·맥락
- 보험 GA · 영업지원
- 사용자
- 보험설계사 등록자격시험 응시자
기출 시험지는 PDF로만 있었고 글자층이 깨져 있어 문제를 옮겨 쓸 수 없었습니다. 실제 시험처럼 시간을 재고 풀어 본 뒤 채점·해설·교재 근거를 한 번에 확인할 곳이 없었습니다.
성과
배경과 문제
보험설계사 등록자격시험은 생명보험·손해보험·변액보험으로 나뉩니다. 기출 시험지는 회차별 PDF로만 있었습니다.
이 시험지로 공부하려 할 때 막힌 점은 세 가지였습니다.
- 문제를 옮길 수 없었습니다. PDF의 글자층이 깨져 있어 텍스트 추출로는 문장이 나오지 않았습니다.
- 채점과 근거가 따로였습니다. 정답표는 마지막 쪽에 있고, 교재 어느 쪽에서 나온 문제인지는 직접 찾아야 했습니다.
- 무엇이 자주 나오는지 알 수 없었습니다. 회차가 69개라 반복되는 논점을 손으로 세기 어려웠습니다.
목표
- 실제 시험처럼 제한 시간과 OMR 답안지로 풀 것
- 채점·해설·교재 근거 쪽을 한 화면에서 확인할 것
- 전 회차를 모아 반복출제 논점을 계산할 것
- 원본 시험지·교재 이미지는 고치지 않을 것
만든 과정
1. 시험지를 이미지로 읽어 옮기다 (2026년 11월 8~9일) 시험지 PDF를 250dpi 이미지로 바꾸고, 정해 둔 규격대로 문항·보기·정답·해설을 JSON으로 옮겼습니다. 정답은 별도 검증 단계에서 JSON을 보기 전에 해설쪽 이미지에서 먼저 받아 적고 대조했습니다. 이 과정에서 원본 정답표가 해설·교재와 맞지 않는 2건을 찾아 확인 후 정정하고, 정정 표시를 남겼습니다.
2. 교재 근거를 잇다 교재를 OCR로 읽어 문항별 근거 후보를 찾고, 근거 쪽과 인용문을 확정했습니다. 교재와 수치가 다른 문항은 인용 끝에 표시해 화면에서 경고로 보이게 했습니다.
3. 첫 버전 (11월 9일) 시험별 학습 홈, 회차별 기출, 랜덤 모의고사, 반복출제 순 풀기, 오답노트, 응시기록, 핵심 요점, 해설 속 계산기를 한 번에 올렸습니다.
4. 바로 들어오게 바꾸다 (11월 9일) 처음에는 다른 사이트에서 넘어오는 링크로만 들어오게 했습니다. 이 연결은 보류하고, 사이트 주소에서 바로 시작하도록 바꿨습니다. 브라우저마다 서명 쿠키로 기록을 나눴습니다.
5. 기록을 다른 기기에서 이어 보게 하다 (11월 9일) 학습자 정보를 입력해 시작하면 다른 브라우저에서도 응시 기록·오답·하이라이트를 불러옵니다. 내정보 창에 학습 통계와 최근 응시 5건을 넣었습니다.
6. 관리자 화면 (11월 9일) 학습 로그인과 분리한 관리자 로그인을 만들고, 문제 편집과 접속자·학습 통계를 붙였습니다.
7. 디자인 시스템 전면 적용 (11월 11일) 머리글·버튼·카드·탭·입력·대화상자·표를 Astryx 컴포넌트로 바꾸고 React를 19로 올렸습니다. 시험지·OMR·교재 보기는 레이아웃을 유지하고 색과 간격만 디자인 토큰을 따르게 했습니다. 같은 날 900px 이하에서 쓰는 모바일 메뉴를 추가했습니다.
지금 할 수 있는 것
| 화면 | 내용 |
|---|---|
| 회차별 기출 | 시험 종류 → 회차 → 응시유형. 제한 시간, OMR 표기, 새로고침해도 표기 유지, 시간 종료 시 자동 제출 |
| 랜덤 모의고사 | 전 회차 문제를 분야별로 모아 회차 평균 출제표대로 새 시험지 생성 |
| 반복출제 연습 | ★ 필수문제(전체 회차 50% 이상에 나온 논점)부터, 문장이 거의 같은 문제는 한 번만 |
| 채점 결과 | 100점 환산, 판정 단위별 합격 여부, 영역별 정답, 원본 해설, 교재 근거 쪽 이미지 |
| 해설 속 계산기 | 비례보상·중복보험·변액 좌수·연금 세액공제·자동차 부담금·상속 6종. 문제의 금액을 읽어 자동 입력 |
| 오답노트 | 문항별 최근 풀이가 오답인 것만 모아 회차별 다시 풀기 |
| 교재 하이라이트 | 교재 이미지 위에 영역을 그려 저장하고 과목별로 모아 보기 |
| 핵심 요점·영상 | 교재 근거로 새로 쓴 요점, 과목별 영상 자리(영상은 아직 연결 전) |
| 관리자 | 문제 수정·추가·출제 제외·원본 복원·변경 이력, 접속자·학습 통계, 이용 중지 |
겪은 문제와 해결
| 증상 | 원인 | 해결 |
|---|---|---|
| PDF에서 문장이 나오지 않음 | 시험지 글자층이 깨져 있음 | 250dpi 이미지로 바꿔 직접 판독, 정답은 독립 검증 단계에서 다시 대조 |
| 정답표와 해설이 어긋난 문항 | 원본 정답표 오류 | 2건을 해설 계산·교재 기준으로 정정하고 정정 문항 표시 |
| 시험 안내의 배점이 받은 시험지와 다름 | 안내 자료와 실제 시험지 형식 차이 | 받은 시험지의 배점·응시 범위를 기준으로 채점 |
| 계산기가 금액을 1만 배로 읽음 | "천원"을 "천만원"으로 해석 | 단위 해석 수정, 기출 정답 대조 시험에 포함 |
| 대화상자를 열면 본문이 옆으로 밀림 | WebKit에서 스크롤바 공간이 사라짐 | 열기 전후 실제 폭 차이를 재서 여백으로 보정 |
| 통신 실패 후 계속 실패 | 실패한 요청이 캐시에 남음 | 실패 요청은 캐시에서 지워 다시 요청 |
| 시험 중 관리자가 문제를 고치면 채점이 어긋날 수 있음 | 풀던 시험지와 현재 문항이 다름 | 문항 버전으로 충돌을 막고, 제출 당시 시험지를 기록에 함께 저장 |
개인정보와 운영 데이터
- 휴대전화번호 원문은 저장하지 않고, 학습자 식별 정보는 암호화해 저장합니다.
- 관리자 비밀번호는 저장소에 넣지 않고, 해시만 서버 비밀 설정에 둡니다. 운영 키도 코드·문서에 적지 않습니다.
- 관리자 문제 편집은 원본 문제 데이터를 바꾸지 않습니다. 변경분과 이력을 따로 저장하고, 제출된 기록은 그때 시험지로 보존합니다.
AI와 함께 만든 방식
추출·검증·구현은 Claude Code에게 맡겼고, 저는 규격을 정하고 결과를 확인했습니다.
- 추출 규격을 먼저 씀: 판독 해상도, 문항 JSON 형식, 자체 점검 항목을 문서로 정한 뒤 회차마다 같은 지시로 옮기게 했습니다.
- 추출과 검증을 나눔: 정답 검증은 추출 결과를 보기 전에 이미지에서 먼저 받아 적게 했습니다.
- 빌드 때 점검: 번호 연속, 정답 범위, 응시유형 배점 합 100점을 데이터 생성마다 확인합니다.
- 화면은 브라우저로 확인: Chromium·WebKit에서 여러 폭으로 시험 풀기·채점·하이라이트·관리자 기능을 자동 점검했습니다. 점검은 따로 만든 로컬 DB에서만 하고 끝나면 지웠습니다.
지금 상태와 다음
- 웹에서 운영 중입니다. 기능 추가마다 빌드·계산기 대조·런타임 시험을 돌립니다.
- iPhone·Android 실기기 점검은 아직 하지 않았습니다.
- 손해보험 교재가 2024년판이라 최근 시험과 개정 차이가 있을 수 있습니다.
- 과목별 영상 연결과 다른 사이트와의 로그인 연결이 남아 있습니다.