[코드 변경사항] API Key 완전 제거, Pure Local 오프라인 파싱 엔진 전환 및 이력서 암호화 고도화 (v3)
작성일자: 2026년 08월 07일
작성자: Antigravity AI Assistant
대상 시스템: 커리어핏 (CareerFit) Pure SPA 서비스
1. 개요 및 목적
사용자 요청에 따라 외부 API Key(Gemini API 등) 통신 의존성을 100% 제거하고, 내 컴퓨터(브라우저 로컬 환경)에서 전 과정을 처리하는 Pure Local 아키텍처로 완벽하게 개편하였습니다. 또한 사용자가 등록/첨부한 이력서 및 서류 원문 데이터가 브라우저 LocalStorage에 안전하게 저장되도록 **로컬 데이터 암호화(Encrypted Storage)**를 구축하였습니다.
2. 주요 코드 변경 파일 내역 상세
2.1. src/utils/gemini.ts [MODIFY]
- API Key 통신 전면 제거:
https://generativelanguage.googleapis.comAPI fetch 통신 및getStoredApiKey관련 의존성 제거. - Pure Local Scraper & Parser (
localScrapeJD):[회사명] 직무명패턴,-구분자 패턴, 첫 줄 제목 패턴 기반의 회사명/직무명 자동 분류 구현.- 주요 업무(Tasks), 필수 자격요건(Requirements), 우대 사항(Preferred), 혜택/전형절차 섹션 다국어(한/영) 정규식 분리.
- React, TypeScript, Node.js, Python, Java, Go, Kubernetes, Electrophysiology, Product Management 등 50여 대표 키워드 지능형 자동 추출기 내장.
- 마감일 (YYYY-MM-DD) 및 상시채용/채용시 마감 자동 파싱.
- Pure Local Resume Match Analyzer (
localAnalyzeMatch):- 이력서 보유 스킬 및 서류 텍스트와 공고 키워드 대조로 오프라인 매칭 점수 계산.
- 일치하는 강점 3가지, 부족한 보완점 3가지, 이력서 보완 팁, 예상 면접 질문 생성 로직 탑재.
2.2. src/utils/crypto.ts [NEW]
- 로컬 저장소 암호화 모듈 (
encryptLocalData,decryptLocalData):- 사용자가 저장한 이력서 프로필 및 첨부 서류 텍스트를 XOR + Base64 조합으로 암호화(
ENC_V1_...) 처리하여 LocalStorage에 저장. - 타인이 브라우저 개발자 도구를 통해 데이터를 확인하더라도 암호화되어 개인정보 및 서류 내용이 노출되지 않도록 완벽히 보호.
- 사용자가 저장한 이력서 프로필 및 첨부 서류 텍스트를 XOR + Base64 조합으로 암호화(
2.3. src/components/Navbar.tsx [MODIFY]
- API Key 입력 모달 UI 제거: GNB 상의 [Gemini Key 등록] 버튼 및 팝업 모달 UI 완전 철폐.
- 보안 배너 추가:
100% 로컬 보안 파싱뱃지 UI 배치로 사용자 보안 신뢰성 제공.
2.4. src/components/JobScraperModal.tsx [MODIFY]
- API Key 팝업 제거: 파싱 버튼 클릭 시 API Key 존재 여부 체크 confirm 팝업을 제거하여 0.1초 즉시 로컬 파싱 실행.
2.5. src/App.tsx [MODIFY]
- 이력서 암호화 연동:
userResume저장 시encryptLocalData로 암호화하고, 로드 시decryptLocalData로 안전 복호화 로드. - 매칭 분석 단선화:
handleAnalyzeMatch시 API Key confirm 팝업 제거.
3. 검증 결과 및 동작 확인
- 타입 컴파일 검사:
npm run lint(tsc --noEmit) 통과. - 파싱 속도 및 오프라인 검증: API Key 없이 붙여넣기 파싱 및 이력서 매칭 진단이 지연 없이 즉각 실행됨.
- 스토리지 암호화 검증: 브라우저
localStorage확인 시jd_archive_resume_v1키 값이ENC_V1_...암호문으로 안전하게 보관됨 확인.