[포트폴리오대비] 취업뽀개기
취업뽀개기
프로젝트 개요
- 개인 프로젝트 / 취업 뽀개기 (2025.04~ 개발 중)
- 서비스 개요 : 개발자 취준생 AI지원 서비스
- 주요 기술 : Spring, FastAPI, Django, LangChain, Redpanda, MySQL, MongoDB
- 주요 역할
- MSA 서버 구축, API Gateway 구축 및 각 서비스 간 연결 아키텍처 설계
- LangChain을 활용한 포트폴리오 보조, 기술면접 채점 AI서비스 구축
- Spring, Django(코딩테스트), FastAPI(AI 서버)를 활용한 Micro Service 결합
- Prometheus, Grafana, Zipkin을 통한 시스템 모니터링 및 최적화
- 주요 성과
- Kafka, RestAPI 을 활용한 10개의 서비스 연결 및 안정적인 운영
- 프롬프트, LLM, OutputParser 연동을 통한 안정적인 AI 답변 제공
- 온라인 저지(코딩테스트) 레거시 코드 리팩토링 및 적용
- 시스템 병목 지점 식별 및 처리량(Redis 캐싱 : 137%, 레포 다운로드 : 539.6%)개선 (진행중)
기술스택선정
FastAPI
- 비동기 처리 : LLM API 호출이 시 응답 대기 시간이 길어서 비동기 방식 적용
- 타입 힌트 : 입출력 데이터 구조가 복잡하여 자동검증을 통한 예외처리 강화
Django
- 레거시 코드 리팩토링 : 기존 온라인 저지 시스템의 Django 코드베이스를 활용하여 개발 시간 단축
Spring Boot, Spring Cloud
- 메인 서비스 비즈니스 로직 구현 : 트랜잭션 관리, 보안, 캐싱 등 풍부한 기능
- API Gateway : 단일 진입점을 통한 라우팅, 인증 처리
- Config Server : 중앙화된 설정 관리로 환경별 배포 설정 간소화
Prometheus & Grafana
- 메트릭 수집 : Pull 방식으로 각 서비스의 성능 지표(CPU, 메모리, 응답시간) 실시간 수집
Zipkin
MySQL, MongoDB
JPA 트랜잭션
LangChain
Kafka
- kafka VS rabbitMQ
카프카 메시지 보존 방식
시스템아키텍처
기능 구현
면접 예상 질문
아키텍처 & 설계 관련
MSA로 구성한 이유와 모놀리틱 대비 어떤 장단점을 경험했나요?
10개 서비스를 어떤 기준으로 분리했고, 도메인은 어떻게 나누었나요?
API Gateway에서 어떤 기능들을 구현했고, 라우팅 정책은 어떻게 설정했나요?
서비스 간 통신에서 동기(REST API)와 비동기(Kafka) 방식을 언제 선택했나요?
분산 트랜잭션 문제는 어떻게 해결했나요?
기술 스택 선택 & 구현
Spring, Django, FastAPI를 각각 다른 서비스에 사용한 특별한 이유가 있나요?
Kafka 대신 Redpanda를 선택한 이유는 무엇인가요?
MySQL과 MongoDB를 함께 사용하는데, 각각 어떤 데이터를 저장하나요?
LangChain에서 어떤 체인을 구성했고, 프롬프트 엔지니어링은 어떻게 했나요?
성능 & 모니터링
Redis 캐싱으로 137% 개선했다고 하는데, 구체적으로 어떤 데이터를 캐싱했나요?
레포 다운로드 539.6% 개선의 구체적인 방법과 측정 지표는 무엇인가요?
Prometheus, Grafana로 어떤 메트릭을 모니터링하고 있나요?
Zipkin으로 분산 추적할 때 어떤 병목점을 발견했고 해결했나요?
시스템의 장애 상황을 어떻게 대응하고 복구하나요?
AI 서비스 관련
포트폴리오 보조와 기술면접 채점 AI의 정확도는 어떻게 평가하나요?
LLM 응답의 일관성과 품질을 어떻게 보장하나요?
AI 서비스에서 발생할 수 있는 오류나 예외 상황은 어떻게 처리하나요?
운영 & 확장성
10개 서비스의 배포 전략과 CI/CD는 어떻게 구성했나요?
트래픽이 급증할 때 어떤 서비스부터 스케일 아웃하실 건가요?
온라인 저지 시스템에서 코드 실행 보안은 어떻게 처리하나요?
현재 진행 중인 성능 개선 작업의 구체적인 계획은 무엇인가요?