개요
정보처리기사 필기를 준비하면서 가장 크게 느낀 점은 “결국 기출 반복이 답이다”라는 것이었다. 이론서를 처음부터 끝까지 정독하는 정공법도 필요하지만, 필기 시험은 결국 제한된 시간 안에 익숙한 개념을 빠르게 판단하는게 중요하기 때문이다.
시험준비기간이 대략 1주일 정도로 짧은 편이었다. 그래서 이론서를 읽고 단순히 기출문제집을 넘기며 펜으로 지워나가는 방식 대신, 직접 기출문제를 랜덤으로 계속해서 풀 수 있는 작은 CBT 앱을 만들어 공부했다. 결과적으로 단기간에 70점이라는 어느정도 안정적인 점수로 합격이라는 달콤한 마침표를 찍을 수 있었다.
왜 직접 만들었나?
요즘은 AI 덕분에 개발 속도가 비약적으로 빨라져서 마음만 먹으면 큰 공수 없이 토이 프로젝트를 시작할 수 있다. 마침 전에 이미 만들어본 네트워크관리사 CBT 사이트라는 좋은 레퍼런스도 있었다.
시중에 잘 만들어진 문제 풀이 사이트가 많음에도 굳이 ‘내 앱’을 만든 이유는, 내가 원하는 학습 방식을 100% 충족하는 플랫폼이 없었기 때문이다. 내가 원한 핵심 요구사항은 다음과 같았다.
- 회차를 완전히 섞어서 풀 수 있는 '진짜 랜덤' 기능
- 과락을 방지하기 위한 과목별 약점 통계 대시보드
- 틀린 문제뿐만 아니라 '찍어서 맞힌 문제'까지 걸러내는 복습 시스템
- 실제 시험처럼 100문제를 연달아 푸는 실전 모의고사 모드
- 문제마다 핵심을 짚어주는 짧고 명확한 학습 가이드
공부하면서 가려운 부분을 하나씩 기능으로 긁어주다 보니, 내 학습 스타일에 완벽하게 커스텀된 개인용 정보처리기사 CBT 앱이 탄생했다.
위는 공부하던 중에 찍은 스크린샷이다.
개발자 수험생이 직접 구현한 핵심 기능 8가지
1. 무의식적인 암기를 방지하는 '랜덤 문제 풀이'
가장 기본이 되는 기능이다. 회차 순서대로만 풀면 답의 위치나 문제의 흐름을 무의식적으로 기억하게 되는 치명적인 부작용이 있다. 반면 전체를 무작위로 섞어 풀면, 내가 이 개념을 정말로 이해했는지 객관적으로 확인하기 좋았다.
여러 회차를 섞어 풀다 보니 같은 개념이 다른 표현으로 끊임없이 반복 출제된다는 점을 발견했다. UML, 테스트 기법, 정규화, 트랜잭션, 보안 공격 같은 빈출 주제들이 대표적이다. 덕분에 단순히 ‘문제를 외우는 것’이 아니라, ‘출제 패턴과 개념의 본질을 익히는’ 진짜 공부가 가능했다.
2. 과락 방지를 위한 '회차별 / 과목별 필터'
정보처리기사 필기는 과목별 과락(40점 미만) 제도가 있어서 전체 평균이 아무리 높아도 한 과목 때문에 고배를 마실 수 있다. 이 기능은 특히 나의 약점 과목을 정량적인 수치(숫자)로 직시하는 데 큰 도움이 됐다.
전체 랜덤 모드에서는 평균 점수가 괜찮아 보여도, 과목별로 쪼개어 보면 특정 영역의 정답률이 뚝 떨어지는 현상이 발생했다. 데이터베이스나 프로그래밍 문제처럼 유독 헷갈리는 파트는 따로 필터링해 집중 반복했다. 막연한 불안감을 명확한 타겟팅으로 바꾼 순간이었다.
3. 신의 한 수였던 '오답 + 찍맞 복습 노트'
앱을 만들며 가장 큰 효과를 본 핵심 기능이다. 처음에는 틀린 문제만 오답노트에 넣으려고 했다. 하지만 실제로 공부해보니 '어설프게 알거나 찍어서 맞힌 문제'는 실전에서 오답이나 다름없었다. 그래서 다음 기준에 해당하는 문제들을 시스템적으로 단호하게 복습 대상으로 묶어버렸다.
- 완벽하게 틀린 문제
- 찍어서 맞힌 문제 (애매한 개념)
- 아직 연속으로 확실하게 맞히지 못한 문제
단순히 겉으로 보이는 정답률에 속지 않고, “내가 진짜 알고 맞힌 문제인가?”를 엄격하게 걸러낼 수 있어 무척 유용했다.
4. 시각적 동기부여를 주는 '미풀이 문제 확인'
방대한 기출 데이터를 밀어 넣다 보면 내가 전체 중 어느 정도를 소화했는지 파악하기 어렵다. 그래서 아직 한 번도 안 푼 문항이 몇 개 남았는지 직관적으로 보여주는 카운터 기능을 넣었다.
“아직 500문제 남음”처럼 숫자가 줄어드는 게 눈에 보이니 묘한 승부욕과 동기부여가 생겼다. 특히 시험 직전에는 새로운 유형을 빠르게 훑기 위해 미풀이 문제만 필터링하여 효율적으로 시간을 아낄 수 있었다.
5. 실전 감각 극대화를 위한 '모의고사 모드'
조각조각 분절된 랜덤 문제만 풀다 보면 100문제를 지치지 않고 연달아 푸는 실전 호흡을 놓치기 쉽다. 이를 보완하기 위해 실제 시험 환경과 동일하게 회차별 100문제를 순서대로 푸는 모의고사 모드를 만들었다.
모의고사 모드에서는 전체 점수, 과목별 점수, 과락 여부, 복습 대상 문항, 찍맞 개수를 세세하게 기록하여 로그를 남겼다. 이 냉정한 평가 기록 덕분에 내 현재 상태가 실제 합격 기준에 부합하는지 객관적으로 점검할 수 있었다.
6. Gemini API를 활용한 'AI 학습 가이드 덧붙이기'
문제를 풀고 난 후, 해당 개념의 중요도, 자주 출제되는 말장난 유형, 핵심 암기 포인트 등을 볼 수 있도록 짧은 가이드를 추가했다.
COCOMO, 정규화, 스케줄링, 디자인 패턴 같은 단골 개념들은 문제만 풀고 넘어가면 나중에 무조건 다시 헷갈린다. 이를 해결하기 위해 Gemini API를 연동하여 문제별로 해설과 핵심 요약을 자동 생성하도록 처리했는데, 기대 이상으로 훌륭하고 깔끔한 요약본을 만들어주었다. 단순 정답 확인을 넘어 개념의 맥락을 이해하는 데 큰 힘이 됐다.
7. 가독성을 높인 '코드 문제 자동 렌더링'
정보처리기사 필기에는 C, Java, Python 소스코드의 실행 결과를 묻는 문제가 감초처럼 등장한다. 그런데 최초에 데이터를 구축하는 과정(OCR 및 텍스트 변환)에서 코드가 한 줄로 뭉개지거나 들여쓰기가 망가져 가독성이 최악이었다.
개발자로서 이 꼴은 마냥 두고 볼 수 없었기에, 코드 블록을 자동으로 감지해 가독성 높게 렌더링하고 깨진 들여쓰기를 복원하는 로직을 추가했다. 코드가 IDE처럼 깔끔하게 눈에 들어오기 시작하니 흐름을 빠르게 추적할 수 있었고, 자잘한 디버깅 실수도 눈에 띄게 줄었다.
8. 완벽한 고증을 위한 '이미지 문제 대응'
트리 순회, 네트워크 토폴로지, SQL 실행 결과, 다이어그램 등 이미지가 필수적인 문제들도 많았다. 문제 이미지와 선택지 이미지를 각각 파싱하여 저장하고, 이를 JSON 데이터에 매핑하는 작업은 솔직히 다소 번거로웠다. 하지만 실제 시험지와 가장 유사한 사용자 경험(UX)을 구현하기 위해 꼭 필요한 작업이었고, 결과적으로 실전 적응력을 높이는 데 큰 기여를 했다.
나만의 합격 궤도, 최종 공부 루틴
구축한 CBT 앱을 활용하는 방법을 6단계 파이프라인으로 제시해보겠다.
- [전체 랜덤] 모드로 끊임없이 문제를 풀며 기본 체력 기르기
- [복습 노트] 오답과 찍맞 문제 무한 반복 회독
- [과목별 필터] 정답률이 낮은 약점 과목만 선택해 집중 타겟팅
- [미풀이 제로] 시험 일주일 전까지 미풀이 문제 '0'으로 만들기
- [실전 모의고사] 100분 테스트로 안정적인 합격선 도달 여부 최종 점검
- [시험 직전] 누적된 복습 노트 위주로 빠르게 회독
준비기간이 일주일도 안되는 짧은시간이라 나는 모든 문제를 다 풀고 시험장에 가진 못했다. 600문제 정도 풀었는데 좀더 시간이 있어서 문제를 모두 다 풀고 약점부분을 더 공략했다면 70점 보다는 훨씬 더 높은 점수가 나왔을것이다.
마무리하며 : 개발이 곧 최고의 공부였다
이번 도전에서 얻은 가장 큰 수확은 단순히 자격증 하나를 얻었거나 포트폴리오용 앱을 만들었다는 사실이 아니다. 내가 공부하면서 느낀 불편함과 가려운 지점을 즉각적으로 '기능'으로 정의하고 기술로 해결해 냈다는 사실 그 자체다.
틀린 문제를 다시 봐야 해서 복습 노트를 만들었고, 찍어서 맞힌 게 찝찝해서 '찍맞' 태그를 달았으며, 과락이 걱정되어 통계 대시보드를 얹었다. 도구를 직접 빌드하는 과정 속에서, 내 공부 방식 자체도 끊임없이 리팩토링된 셈이다.
정보처리기사 필기는 확실히 기출 반복의 힘이 강한 시험이다. 하지만 무작정 양으로 밀어붙이기보다, 내가 무엇을 알고 무엇을 모르는지 시스템적으로 분류하며 영리하게 반복하는 것이 훨씬 효율적이라는 것을 깨달았다.
지금은 로컬 환경에서 나 혼자 사용하고 있는 프로젝트이지만, UI/UX를 조금 더 다듬고 기능을 보강해 GitHub에 오픈소스로 공개할 예정이다. 내 공부 방식이 절대적인 정답은 아니겠지만, 효율적인 독학 방법을 고민하는 수험생들에게 작게나마 도움이 될 수 있기를 확신한다.