프로젝트/01
베테랑패스
군 경력을 민간 직무 언어로 바꾸는 AI 진단 봇
전역을 준비하다 벽에 부딪혔고, 그 문제를 직접 서비스로 만들어 특허를 냈습니다.
- 특허출원 10-2025-0191974
- 국방 정보화 신기술 제안 발표회 선정




한 줄
군별·계급·병과를 입력하면 3분 안에 민간 직무 후보와 그 근거, 자격증 경로, 이력서 초안까지 돌려주는 텔레그램 기반 진단 서비스입니다.
문제
전역을 준비하면서 직접 부딪힌 벽입니다. 22년의 군 경력을 민간 채용담당자가 읽을 수 있는 언어로 바꿔 주는 곳이 어디에도 없었습니다. 전직지원 제도는 존재하지만 대부분 집합교육과 상담 예약을 전제로 하고, "내 경력이 민간의 어떤 직무에 해당하는가"라는 첫 질문에 즉시 답을 주지는 못합니다. 이 지점을 제 문제로 겪었기 때문에 요구조건을 남에게 물어볼 필요가 없었습니다.
내가 한 일
기획부터 배포까지 전부 혼자 했습니다. 개발 인력에게 의뢰하지 않았고, 인프라 비용도 자비로 부담했습니다.
- 진단 문답 설계 — 총 11문항, 완주 소요 약 3분. 문항을 늘리면 정확도는 오르지만 완주율이 떨어진다고 보고 3분을 상한으로 고정했습니다. 봇 안에서 진행률(예: 3/11)을 표시해 끝이 보이게 했습니다.
- 워크플로우 구현 — 현재 운영 버전은 노드 46개 규모의 V3입니다. 분석 결과를 Telegraph 공개 페이지로 발행하던 노드는 2026년 8월 개인정보 점검에서 페이지 제목에 계급이 노출되는 경로임을 확인하고 제거했습니다(47→46노드). 이미 발행된 39페이지도 전부 비웠습니다.
- 외부 연동 — 고용24 API 4종(직무정보·채용정보·직업정보·내일배움카드 훈련과정)을 붙여 채용정보와 훈련과정을 함께 제공합니다. 병과 용어로는 검색 결과가 적어, 병과→민간직무 키워드 매핑을 먼저 거칩니다. 이력서·경력증명서 처리용 OCR 경로도 있으며 2026년 8월 실제 PDF 증명서로 끝까지 검증했습니다.
- 답변 근거 — 모델의 기억이 아니라 위 API 조회 결과와 공공데이터포털 NCS(국가직무능력표준) API의 분류 후보를 먼저 가져와 프롬프트에 넣는 구조입니다. 임베딩 검색은 쓰지 않습니다. 모델이 기억으로 답하면 제도 내용이 틀리고, 전역 준비자에게 틀린 제도 안내는 실제 손해로 이어집니다.
- 결과 화면 — 텔레그램 안에서 긴 결과를 읽기 어려워, 별도 Webhook 워크플로우로 조회 UUID를 받아 HTML 대시보드를 렌더링합니다. 만료된 UUID는 410, 없는 UUID는 404로 분기합니다.
- 개인정보 처리 — 보유기간은 분석일로부터 30일이며, 매일 04시에 도는 워크플로우가 지웁니다. 지우기 전에 희망직무·지역·계급의 익명 집계 스냅샷을 먼저 남겨, 개인정보는 사라져도 통계는 남게 했습니다. 안내문에는 국외 이전(OpenAI) 고지를 넣었습니다. 사용자에게 보이지 않지만, 개인정보를 받는 서비스라면 있어야 하는 장치입니다.
- 유입 추적 — 블로그 글마다 다른 딥링크 파라미터를 심고, 첫 유입 출처를 잠가 두는 방식으로 어느 글이 사용자를 만들었는지 집계합니다. 재방문 클릭은 따로 셉니다.
- 특허 출원 — 「인공지능 기반 군 경력 분석 및 직무 추천 시스템」, 출원번호 10-2025-0191974 (2025.11), 본인 명의.
- 기관 협의 — 국방전직교육원과 약 53분간 시연·도입 협의를 진행하고 협의록을 1장 보고서로 정리했습니다.
설계 판단
텔레그램을 선택한 이유. 과거 카카오톡 보안 이슈 이후 군인 다수가 텔레그램을 쓰고 있다는 것을 복무 중 직접 관찰했습니다. 사용자가 이미 깔아둔 앱 안에서 끝나야 진입 마찰이 없다고 판단했습니다. 다만 공공기관 입장에서는 텔레그램 기반 공식 서비스에 부담이 있다는 지적을 협의에서 받았고, 이 트레이드오프는 아직 해소되지 않았습니다.
'NCS 매핑'이라는 표현을 버린 이유. 교육원 측에서 육군 공식 NCS 체계와 명칭이 충돌할 소지가 있다는 의견을 받았습니다. 기술적으로는 같은 일을 하지만, 기관이 쓰기 어려운 이름은 기능이 아니라 장애물입니다. '군 경력 기반 민간 직무 탐색'으로 전면 교체했습니다.
기관의 질문이 데이터 검증으로 이어졌습니다. 협의에서 "매핑의 실제 근거가 무엇인가"라는 질문을 받고 파고들었습니다. 당시 NCS 후보를 주던 정부 API가 200 OK 안에 에러 코드만 담아 빈 데이터를 돌려주는 것을 발견해, ncs.go.kr 분류체계 전체(대·중·소·세분류 1,109건)를 내장하는 대안까지 만들어 두었습니다. 이후 API가 정상 동작하는 것을 확인해 원래 구조를 유지하고 대안은 예비로 남겼습니다. 이 일로 외부 API를 검증할 때는 인증키 유효성과 정식 용어 검색 결과를 반드시 함께 확인하게 됐습니다. 겉으로 성공처럼 보이는 응답이 가장 늦게 발견됩니다.
디지털서비스 등록을 중단한 이유. 서류 패키지를 7종까지 만들어 두고 멈췄습니다. 고시상 상용실적 요건은 없지만 기존 선정 사례가 모두 1년 이상 상용 운영 이력을 갖고 있었고, MVP 단계에서 무리하게 밀면 과장 기재로 재심사 사유를 만들 수 있다고 봤습니다. 포기가 아니라 순서를 바꾼 것입니다.
유료화 대신 무료 개방. 기관 도입이 지연되는 동안 유료 구조를 유지하면 사용자도 데이터도 쌓이지 않습니다. 무료로 열고 네이버 블로그를 유입 엔진으로 붙이는 구조로 전환했습니다.
운영 중 고친 것
- DB 장애로 봇이 무응답 — 2026년 8월, 인프라의 Postgres 서비스가 내려가면서 봇이 메시지에 응답하지 않았습니다. 에러가 아니라 연결이 매달리는 행(hang)이라 노드가 영원히 기다리는 상태였고, 실행 기록으로 원인을 특정해 데이터가 이미 있던 Supabase로 자격증명을 옮겨 복구했습니다.
- 개인정보 안내문 점검 — "제3자 제공 없음"이 맞는지 확인하다가, 안내문에 없던 국외 이전 고지와 실제로는 작동하지 않던 보유기간 문구를 발견해 삭제 장치까지 만들었습니다. 문구만 고친 것이 아니라 문구대로 동작하게 했습니다.
결과와 한계
IITP·국방부 주관 국방 정보화 신기술 제안 발표회에 제출해 발표자로 선정되었고(2026.5.18, 청주), 9분 발표 스크립트 4개 버전과 Q&A 부스 가이드를 만들어 발표를 수행했습니다. 이후 2027년 국방실험사업 수요 후보기술로 지정되었습니다.
한계는 분명합니다. 현재 사용 현황은 가족·지인 테스트 수준이며 정식 사용자 데이터가 없습니다. 블로그를 통한 첫 실제 유입은 2026년 8월 30일에 확인했습니다. 익명 집계 컬럼과 분석 뷰는 있으나 주기적 집계 리포트는 미구현이고, 개인 단위 직무 방향 변경 이력도 추적되지 않습니다. 국방전직교육원과의 협의는 이후 별도 연락이 없어 채택 가능성이 낮다고 보고 있습니다. 다음 과제는 기능 추가가 아니라 실사용자 확보입니다.
회사 사업으로의 확장
개인이 만든 것으로 끝나지 않았습니다. 이 서비스의 문제의식과 기술 구조를 회사 사업 아이템으로 확장해 국책과제에 신청했습니다. 개인의 문제의식이 회사의 사업 아이템이 될 수 있다는 것을 확인한 경험이며, 결과와 무관하게 이 확장 자체가 제가 일하는 방식입니다.
증빙
- 특허출원 10-2025-0191974 (2025.11, 본인 명의)
- IITP·국방부 국방 정보화 신기술 제안 발표회 선정·발표 (2026.5.18, 청주)
- 2027년 국방실험사업 수요 후보기술 지정 (이메일 통보)
- 봇 주소 @geonho_job_bot
화면과 시연
촬영 예정 목록. 각 항목은 media-guide.md의 규격·마스킹 규칙을 따릅니다.
- 영상 — 진단 전 과정 시연 30~60초. /start 부터 결과 카드까지 무편집 1테이크
- 스크린샷 — 11문항 진단 진행 화면 (진행률 표시가 보이도록)
- 스크린샷 — Webhook HTML 대시보드 결과 화면
- 스크린샷 — n8n V3 워크플로우 캔버스 전체 (46개 노드가 보이는 축소 뷰)
- 문서 — 특허 출원 접수증. 출원번호만 남기고 개인정보 마스킹
- 문서 — 국방실험사업 수요 후보기술 지정 통보 메일. 발신 기관과 지정 문구만 남기고 마스킹