AI빅데이터소프트웨어공학과한국폴리텍대학 서울강서캠퍼스 입학 일정 확인 ↗

졸업작품

AlgoTalk

AlgoTalk · 졸업작품 시연영상 · 2026-10-04. 작품 설명 AlgoTalk은 개발자 취업 준비생을 위한 AI 기반 CS 기술면접 연습 플랫폼입니다. 사용자는 Java, Spring, 데이터베이스, 운영체제, 네트워크 등의 분야를 선택해 면접 세션을 생성하고, AI가 만든 질문에 실제 면접처럼 답변할 수 있습니다. 한국폴리텍대학 서울강서캠퍼스 빅데이터소프트웨어공학과 학생 작품입니다.

구분
졸업작품
게시일

PROJECT NOTES

작품을 더 자세히
살펴보세요.

작품 설명
AlgoTalk은 개발자 취업 준비생을 위한 AI 기반 CS 기술면접 연습 플랫폼입니다. 사용자는 Java, Spring, 데이터베이스, 운영체제, 네트워크 등의 분야를 선택해 면접 세션을 생성하고, AI가 만든 질문에 실제 면접처럼 답변할 수 있습니다.

AI는 이전 질문 이력을 반영해 중복을 줄이고 질문 의도, 난이도, 핵심 키워드를 포함한 질문 목록을 생성합니다. 사용자가 직접 입력한 질문의 CS 면접 적합성도 검증합니다. 답변 후에는 질문, 핵심 키워드와 사용자 답변을 분석하여 점수, 잘한 점, 개선할 점, 추가하면 좋은 내용, 모범 답변, 학습 팁과 꼬리 질문을 제공합니다.

프론트엔드에서는 MediaRecorder API와 MediaDevices API를 활용해 사용자의 음성과 카메라 스트림을 수집합니다. 녹음된 답변은 Whisper STT API를 통해 텍스트로 변환하며, 발화 시간, WPM, 침묵 비율, ASR 신뢰도와 추임새 등의 음성 지표를 분석합니다. 또한 MediaPipe의 Face Landmarker와 Pose Landmarker를 활용해 시선, 자세와 제스처 등의 비언어 정보를 실시간으로 분석합니다.

백엔드는 음성 및 비언어 분석 지표와 AI 답변 평가 결과를 저장하고 점수화하여 종합 면접 피드백을 제공합니다. 사용자는 마이페이지와 대시보드에서 면접 기록, 질문별 답변, 분석 결과와 AI 평가 결과를 다시 확인할 수 있습니다.

커뮤니티에서는 게시글, 댓글, 좋아요와 스크랩 기능을 제공하여 사용자가 면접 질문과 학습 경험을 공유할 수 있습니다. 일반 회원가입과 Google, Naver, Kakao OAuth2 소셜 로그인을 지원합니다.

인증에는 JWT와 Redis를 사용합니다. Refresh Token은 Redis에 세션 단위로 저장하고 RTR 방식을 적용하여 토큰 재사용 위험을 줄였습니다. 비밀번호는 BCrypt로 암호화하며, 반복적인 로그인 실패 횟수와 계정 잠금 상태도 Redis에서 관리합니다.

사용자는 마이페이지에서 프로필 이미지를 등록, 변경, 삭제할 수 있습니다. 이미지의 파일 형식과 용량을 검증한 후 AWS S3에 저장하며, 비공개 파일을 조회할 수 있도록 일정 시간만 유효한 Presigned URL을 제공합니다.

서비스 운영을 위해 관리자 가입과 승인 체계를 구성했습니다. 최고 관리자는 관리자 가입 신청을 승인하거나 거절할 수 있으며, 관리자 대시보드에서 일반 회원 수, 승인된 관리자 수와 승인 대기 신청 수를 확인할 수 있습니다. 일반 관리자와 최고 관리자는 일반 회원의 로그인 잠금 상태를 조회하고 잠금을 해제할 수 있습니다.

관리자 기능에는 RBAC 방식을 적용하여 승인 대기 관리자, 일반 관리자와 최고 관리자의 권한을 구분했습니다. 화면의 메뉴 표시뿐 아니라 API Gateway와 Spring Security에서도 JWT, Redis 세션과 권한을 검증하므로 권한이 없는 사용자의 관리자 API 직접 호출을 차단합니다.

백엔드에서는 GlobalExceptionHandler를 통해 예외 응답 형식을 공통화했습니다. JUnit 5와 Mockito 기반 테스트, Spring Security Test 기반 인증·권한 테스트, ArchUnit 기반 계층 구조 검증도 적용했습니다.

본 서비스는 React 기반 프론트엔드, Spring Boot 기반 백엔드 MSA, FastAPI 기반 AI 서비스로 구성했습니다. 백엔드는 common, apiGateway, userService, communityService, interviewService, eurekaServer로 분리된 Gradle 멀티 모듈 구조입니다.

Spring Cloud Gateway가 요청 진입점을 관리하고 Eureka가 서비스 디스커버리를 담당합니다. 서비스 설정은 Spring Cloud Config Server에서 중앙 관리합니다. 정형 데이터는 서비스별 MariaDB, 면접 분석과 AI 평가 결과는 MongoDB, 인증 세션과 토큰 및 로그인 잠금 정보는 Redis, 프로필 이미지 파일은 AWS S3에 저장합니다.

백엔드 MSA는 AWS EC2에 배포하고 프론트엔드와 AI 서비스는 Oracle Cloud A1 ARM64 환경에 배포했습니다. Docker, Docker Compose, Nginx와 GitHub Actions를 이용해 빌드와 배포를 자동화했으며, Let’s Encrypt 인증서를 적용하여 HTTPS 환경으로 운영하고 있습니다.

적용 기술
- 프레임워크 : Spring Boot 3.5.11, Spring Security, Spring Cloud Gateway, Spring Cloud Netflix Eureka, Spring Cloud Config, FastAPI, React
- 프론트엔드 : React, React Router, Axios, Zustand, Vite, MediaPipe Tasks Vision, MediaRecorder API, MediaDevices API
- 백엔드 : Java 17, Spring Boot, Spring Security, MyBatis, OpenFeign, WebClient, GlobalExceptionHandler
- AI 서비스 : Python 3.10, FastAPI, OpenAI API, Whisper STT, Gunicorn
- 데이터베이스 및 저장소 : MariaDB, MongoDB Atlas, Redis, AWS S3, Presigned URL
- 인증 및 보안 : JWT, RTR, OAuth2 소셜 로그인, RBAC, BCrypt
- 테스트 : JUnit 5, Mockito, Spring Security Test, ArchUnit
- 웹 서버 및 배포 : AWS EC2, Oracle Cloud A1, Docker, Docker Compose, Nginx, GitHub Actions, HTTPS, Let’s Encrypt
- 빌드 및 의존성 관리 : Gradle 멀티 모듈, Spring Dependency Management, Java Toolchain
- 로깅 : Logback, TimedRotatingFileHandler

❍ 아키텍처 :
- MSA(Microservice Architecture)
- API Gateway 기반 단일 요청 진입점
- Eureka 기반 서비스 디스커버리
- Config Client 및 Config Server 기반 중앙 설정 관리
- Database-per-Service 기반 서비스별 데이터베이스 분리
- JWT 및 Redis 기반 분산 인증·세션 관리
- RBAC 기반 사용자 및 관리자 권한 분리
- AWS S3 기반 프로필 이미지 저장과 Presigned URL 조회
- AWS EC2와 Oracle Cloud A1 기반 멀티 클라우드 배포
- Docker 및 GitHub Actions 기반 CI/CD
- Gradle 멀티 모듈 구조

❍ 도메인 주소 :

FROM LEARNING TO BUILDING

다음 작품의
주인공이 되어 보세요.

AI·데이터·클라우드를 배우고 실제로 작동하는 소프트웨어로 완성합니다.

입학 안내 · 공식 모집요강 확인

면접 공식 안내 확인 · 최초 합격 발표 공식 안내 확인