프로젝트 / 서비스

커리어 내비 · 채용공고 기반 역량 갭 진단

학생이 목표로 하는 채용공고를 기준으로 부족한 역량을 찾고, 교내 교과목·비교과·현장실습으로 졸업 전에 채우도록 학기별 경로를 안내하는 AI 웹 서비스입니다. 2026학년도 캡스톤디자인 경진대회에 2인 팀으로 선발돼 10.28부터 개발 중이고 11.16에 발표합니다. 웹 서비스와 배포·운영을 맡습니다.

팀원 · 웹 서비스(서버·DB·화면), 배포·운영선발 · 개발 중 (11.16 발표)2026.10 ~ 2026.11FastAPIReactClaude APIpgvector (PostgreSQL 16)DockerNginxCloudflare Tunnel자체 서버(Proxmox)

직접 작성배운 점 3편 바로가기 ↓

30초 요약

팀원이 4학년 공채를 준비하며 지원할 공고를 자세히 읽고 나서야 준비하지 못한 요건이 많다는 걸 알게 됐습니다. 학교에 관련 과목과 프로그램이 있었지만 알게 됐을 땐 남은 학기가 거의 없었습니다. 목표 공고를 기준으로 부족한 역량을 일찍 보여주고, 학교 안 자원으로 채우는 길을 안내하려고 시작했습니다.

내가 한 일

  • 문제를 늦은 인지 · 교내 자원과의 연결 부재 · 경험 해석의 어려움 · 방향 없는 스펙 쌓기 네 가지로 정리
  • 이용 흐름 설계: 내 경험 + 목표 공고 → 역량 갭 진단 → 교내 자원 추천 → 학기별 로드맵
  • LLM은 경험 카드화와 역량 추출만 맡기고, 충족 여부와 적합도 점수는 규칙 기반 코드로 계산하도록 설계 (환각 방지, 점수 기준 공개)
  • 모든 판정에 '공고 문장 – 내 경험 문장' 근거를 함께 보여주고, 근거가 부족하면 '판단 보류'로 안내하도록 설계
  • 검증 계획: 실제 공고 50건의 역량 추출 결과를 사람이 분류한 결과와 비교, 재학생 사용성 테스트
  • 역할 분담: 진단 결과 JSON 하나를 경계로 나눔. 웹 서비스(FastAPI·DB·API·React)와 배포·운영(본인) / AI 파이프라인(데이터·LLM·RAG·판정 엔진·What-If, 팀원)
  • 홈랩에 프로젝트 전용 VM(103)을 만들고 web(Nginx)·api(FastAPI)·db(pgvector) 컨테이너로 구성, Cloudflare Tunnel로 careernavi.ihaewon.com 공개 (공유기 포트 개방 없음)
  • Claude API 비용 보호: 전용 워크스페이스·30일 만료 키·월 지출 한도 $30, /docs 외부 차단, IP당 분당 5회·하루 300회 요청 제한, 입력 3000자 제한

확인한 결과

  • 외부 도메인에서 화면과 API가 한 주소로 동작 (curl localhost → html, /api/health → ok), 읽기 전용 배포 키라 VM에서 git push가 거부되는 것 확인
  • 팀원 엔진 연결 후 도메인에서 진단 결과(팀원 가짜 데이터 기준 43%, 역량 4개) 표시, /docs는 Swagger 대신 첫 화면, 연타 시 429, 3001자 입력 시 422
  • What-If: 데이터베이스 + 동계 현장실습 체크 시 43% → 86%로 재계산되고 학기별 로드맵이 3-2 → 겨울 → 4-1 순서로 채워짐
  • pgvector DB는 127.0.0.1:5432에만 열고 vector 확장 0.8.7 설치 확인

개요

내비게이션이 현재 위치에서 목적지까지 경로를 안내하듯, 목표 공고(목적지)와 현재 역량(현재 위치)의 차이를 진단하고 학교 안의 자원으로 학기별 경로를 안내합니다. 저는 진단 결과를 받아 보여주는 웹 서비스(서버·DB·화면)와 배포·운영을 맡고, 팀원이 AI 파이프라인을 맡습니다.

내 경험 + 목표 공고 → 역량 갭 진단 → 교내 자원 추천 → 학기별 로드맵