Skip to content

wlgns410/recode-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

204 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 ResumeLog Backend API

🎯 프로젝트 개요

ResumeLog는 개발자의 이력서 작성을 위한 GraphQL 기반 백엔드 API입니다. 일상적인 개발 활동을 기록하고, 이를 바탕으로 맞춤형 이력서를 생성할 수 있는 플랫폼입니다.

🔗 관련 프로젝트

🏗️ 기술 스택

  • Framework: NestJS 11.x
  • Database: PostgreSQL with TypeORM
  • API: GraphQL (Apollo Server)
  • Authentication: JWT + Passport
  • Language: TypeScript
  • Container: Docker & Docker Compose

🚀 주요 기능

👤 사용자 관리

  • 회원가입/로그인: 이메일 인증 기반 회원가입
  • JWT 인증: Access Token 기반 인증 시스템

📝 이력서 구성 요소

  • 프로필 정보: 이름, 연락처, GitHub, 블로그 등
  • 학력 사항: 학교명, 전공, 학위, 재학 기간
  • 경력 사항: 회사명, 직무, 업무 요약, 재직 기간
  • 프로젝트: 프로젝트명, 설명, 기술 스택, 역할
  • 자격증: 자격증명, 발급기관, 취득일, 만료일
  • 활동 내역: 활동명, 기관, 기간, 설명

📊 데일리 로그 시스템

  • 일일 개발 기록: 태그별 개발 활동 기록
  • 프로젝트 연동: 특정 프로젝트와 연결된 로그 관리
  • AI 기반 추천: ChatGPT를 활용한 회사별, 직무별 이력서 내용 추천
  • 사용량 제한: 일일/월간 사용량 관리

🔐 보안 및 권한

  • 역할 기반 접근 제어: 사용자/관리자 권한 분리
  • 필드별 권한 관리: GraphQL 필드 레벨 보안
  • 쿼리 최적화: 자동 JOIN 및 SELECT 최적화
  • 트랜잭션 관리: 데이터 일관성 보장

🗄️ 데이터베이스 구조

📁 Schema
├── 👤 UserProfile (프로필)
├── 🎓 Education (학력)
├── 💼 Career (경력)
├── 🚀 Project (프로젝트)
├── 🏆 Certificate (자격증)
├── 📁 Activity (활동)
├── 📝 DailyLog (일일 로그)
├── 📊 DailyLogUsage (사용량)
└── 📥 ResumeDownload (다운로드)

⚡ API 특징

  • GraphQL Code First: TypeScript 코드로 스키마 자동 생성
  • 동적 쿼리 최적화: 요청된 필드만 조회하여 성능 최적화
  • 실시간 스키마: GraphQL Playground에서 실시간 API 문서 확인
  • 배치 처리: 대량 데이터 처리 지원

🛠️ 개발 환경 설정

# 의존성 설치
npm install

# 개발 서버 실행
npm run start:dev

# Docker 환경 실행
npm run docker:development:up

# 데이터베이스 마이그레이션
npm run migration:run

📈 성능 최적화

  • 쿼리 최적화: TypeORM Query Builder 활용
  • 인덱싱: 데이터베이스 인덱스 최적화
  • 페이지네이션: 대용량 데이터 효율적 처리
  • LLM 토큰 최적화: project_daily_log_view로 ChatGPT 요청 데이터 정리하여 토큰 사용량 절약

🔄 CI/CD

  • 자동화 테스트: Jest 기반 단위/통합 테스트
  • 코드 품질: ESLint, Prettier 코드 스타일 관리
  • Git Hooks: Husky를 통한 커밋 전 검증
  • Docker 배포: 컨테이너화된 배포 환경

📚 API 문서

  • GraphQL Playground: http://localhost:3000/graphql
  • 실시간 스키마: 자동 생성되는 GraphQL 스키마
  • 인증 헤더: Authorization: Bearer <JWT_TOKEN>

🤔 아쉬운 점 & 개선 방향

  • 회원탈퇴 정책 미정: Soft Delete vs Hard Delete 정책 수립 필요
  • 데이터 정리 로직: 사용자 삭제 시 관련 데이터 정리 전략 보완 필요
  • GraphQL 활용도 부족: REST API처럼 고정된 쿼리 구조, 동적 필터링 기능 미흡
  • GPT 부하 테스트: ChatGPT API 통신 부분의 동시 요청 처리 및 응답 시간 테스트 부재

About

이력서 관리 어플리케이션 백엔드

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors