Skip to content

Jang4360/DevInterviewAnswer

Repository files navigation

DevInterview

프로젝트 개요

DevInterview는 AI를 활용해 사용자 맞춤형 면접 질문을 생성해주는 AI 면접 도우미 플랫폼입니다.
사용자가 입력한 이력서와 블로그 글을 바탕으로 GPT 기반 질문을 생성하며, 생성된 질문은 RAG 구조를 통해 개인의 이전 입력 정보를 질문 생성에 반영해 개인화된 질문을 생성할 수 있도록 했습니다.

주요 기능

  • 이력서 기반 질문 자동 생성
  • 질문 히스토리 저장 및 유사한 내용을 검색해 질문 생성에 반영하는 기능
  • 면접 질문 복습 기능

기술 스택

백엔드

  • Spring Boot
  • PostgreSQL + Qdrant
  • Redis
  • Open AI API

프론트엔드

  • React
  • Vite
  • TailwindCSS

인프라

  • AWS EC2, RDS, Route53
  • GitHub Actions
  • Nginx

담당 역할

1. 백엔드 아키텍처 설계 및 핵심 기능 개발

  • Spring Boot 기반 API 서버 설계 및 구현
  • PostgreSQL, Redis, Qdrant 등 주요 컴포넌트 연동
  • Docker 기반 컨테이너화 및 Nginx 리버스 프록시 설정

2. 인프라 구성 및 성능 최적화

  • AWS EC2, RDS, Route53 기반 인프라 구성 및 운영
  • Redis 분산락 적용을 통해 중복 요청 방지 및 GPT API 비용 절감
  • API 응답 속도 개선 및 불필요한 트래픽 감소

3. AI 질문 생성 파이프라인 구현

  • 사용자 입력 → 요약 → 임베딩 생성 → 유사도 검색 → 질문 생성 흐름 전체 설계 및 구현
  • GPT API 및 Embedding API 연동
  • Qdrant를 이용한 유사도 검색 기반 RAG 로직 설계

트러블 슈팅

사용자가 질문 생성 버튼을 빠르게 여러 번 클릭할 경우, 동일 요청이 중복 전송되어 GPT API가 반복 호출되고 비용이 증가했습니다. 이를 해결하기 위해 GPT 응답 이전에 벡터 DB(Qdrant) 기반 유사 질문을 검색하여 응답에 반영하는 RAG 구조를 도입했습니다.

항목 서버 동기화 방식 DB Unique 제약 Redis 분산락
구현 난이도 낮음 중간 높음
실시간 차단 가능 불가능 불가능 가능
다중 인스턴스 대응 불가능 가능 가능
GPT 호출 전 차단 불가능 불가능 가능
비용/성능 영향 낮음 비용 큼 효율적
스케일링 적합성 낮음 중간 높음

GPT API는 사용량 기반 과금 모델을 사용하고, 응답 시간이 길고 무거운 요청 단위를 갖고 있습니다. 이에 따라 중복 요청을 사전에 차단할 수 있는 장치가 필수적이었습니다.

Redis 분산락을 선택한 이유는 다음과 같습니다.

  • 비용 절감: API 호출 이전에 불필요한 요청을 차단하여 운영 비용을 최소화할 수 있었습니다.
  • 빠른 도입: Redis는 이미 세션 관리와 캐시에 사용 중이었고, 별도 구성 없이 가볍고 빠르게 로직 구현이 가능했습니다.

이 전략을 도입함으로써 GPT API 호출 횟수가 최대 3회에서 1회로 제한되었습니다. 또한 질문 생성 중복률이 30%에서 0%로 개선되었습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors