왜 나는 Relational Database를 Neo4j로 바꿔서 Skill-Gap Identifier를 만들었는가 🚀
Source: Dev.to
이력서를 데이터로 보는 문제점
이력서는 보통 평면 파일(PDF/Word) 형태입니다. 하지만 스킬은 평면이 아니라 네트워크입니다. 예를 들어 React를 안다면 JavaScript, JSX, 그리고 Virtual DOM도 알 가능성이 높습니다. Redux가 빠져 있다면, 시니어 프론트엔드 역할과 당신 사이의 “갭”은 페이지에 빠진 한 단어가 아니라, 당신의 전문 그래프에서 빠진 노드입니다.
저는 SkillNode를 만들어 커리어 경로를 실제와 같은 지식 그래프로 취급했습니다.
아키텍처: Neo4j + Gemini AI
1. 왜 Neo4j인가?
전통적인 SQL 조인은 “경로 찾기”(예: Node.js에서 Cloud Architect까지 가장 짧은 학습 경로 찾기)에 악몽과도 같습니다.
Neo4j에서는 다음과 같이 모델링했습니다:
- 노드: 스킬, 직무 역할, 학습 자료.
- 관계:
REQUIRES,IS_PREREQUISITE_FOR,HAS_SKILL.
이를 통해 사용자의 현재 “스킬 클러스터”가 어디까지이고 목표 역할이 어디부터 시작되는지를 초고속으로 탐색할 수 있습니다.
2. 로직 레이어: Gemini AI
저는 Gemini AI를 사용해 비구조화된 작업을 처리합니다.
- 스킬 추출: 사용자의 프로젝트 설명을 파싱해 ATS가 놓칠 수 있는 “암시된” 스킬을 식별합니다.
- 경로 생성: Neo4j가 갭을 찾으면, Gemini가 사용자의 기존 기술 스택을 기반으로 왜 특정 브릿지가 필요한지를 설명하는 맞춤형 학습 로드맵을 생성합니다.
핵심 요점
ATS 루프에 당신의 가치를 정의하게 두지 마세요. 프로젝트가 이력서보다 더 큰 목소리를 낸다고 생각한다면, 스킬을 목록이 아니라 네트워크로 바라봐야 합니다.
SkillNode 확인하기: SkillNode
의견을 듣고 싶어요: 그래프 데이터베이스를 소셜 네트워크가 아닌 다른 앱에 사용해 본 적이 있나요? 댓글로 이야기해 주세요!

