프로젝트

콘서트 실시간 스크린 슬라이드 시스템

• 관리자 조작을 스크린에 실시간 전달     • REST + SSE로 관리자의 슬라이드 조작을 스크린에 실시간 반영하는 동기화 구조 설계·구현 • 재접속·중간 접속에도 같은 화면 유지     • 서버 기준 시간으로 슬라이드 위치를 계산해 인덱스 저장 없이 모든 화면이 같은 장면을 표시 • 화면 상태 원자적 갱신     • AUTO/MANUAL 전환, 이미지 전환·추가·삭제를 Redis 상태로 원자적으로 갱신

Kotlin
Spring Boot
PostgreSQL
Redis
Spring Data JPA
AWS Lambda
SQS

이커머스 주문·결제 서비스

• 주문·결제 동시성 제어     • 충돌이 잦은 재고는 비관적 락, 드문 잔액은 낙관적 락으로 전략 분리     • 동시 주문 10만 건 테스트에서 재고 초과 차감·잔액 음수 0건 • 선착순 쿠폰 발급 병목 개선     • 즉시 결과 응답을 기준으로 방식을 비교해 Redis Lua Script로 중복 확인과 수량 차감을 원자적으로 처리     • 발급 결과는 Kafka로 DB에 비동기 저장해 응답 경로에서 DB 접근 제거     • 👉 평균 응답 시간 448ms → 7.46ms, 처리량 233.9 → 2,644.4 req/s (k6 부하 테스트)

Kotlin
Spring Boot
Spring Data JPA
MySQL
Redis
Kafka
Testcontainers
k6

목터뷰

• LLM 기반 모의면접 시스템 구축     • ChatGPT API를 사용하여 실시간으로 질문 생성 및 모범 답안 생성     • API 호출을 비동기로 처리해 응답 시간 4.98초 → 1.9초 (62% 단축)     • 직무별 카테고리 기반으로 난이도 조절, 중복 질문 방지 로직 구현     • 사용자의 답변에 대해 점수, 피드백, 모범 답안을 추출하는 파서 및 평가 흐름 구성 • 답변 평가 자동화 시스템 구현     • GPT로부터 점수와 한 줄 피드백을 받아 평가 자동화     • 점수 기준, 피드백 추출, 모범 답안 파싱을 위한 유틸 메서드 개발 • OAuth2 기반 사용자 인증 시스템 구축(세션)     • Spring Security + OAuth2를 이용해 소셜 로그인 기능 구현     • 도메인 및 보안 설정을 고려한 세션 공유 및 자동 로그인 유지 처리 • 사용자 면접 히스토리 관리 기능     • 사용자가 응답한 질문/답변/점수 내역을 MySQL에 저장하여 결과 열람 가능     • 직무·날짜·점수 기준으로 정렬 및 조회 가능     • 면접 결과가 없을 경우 UX 고려한 안내 및 CTA 제공

Next.js
TailwindCSS
Java
Spring Boot
Redis
MySQL
Spring Security
OAuth2 (Kakao)
OpenAI ChatGPT API

Monicar

팀 프로젝트 2024.12 – 2025.02 (프론트엔드 2명, 백엔드 3명) · 이후 2025.04까지 개인 리팩토링 • 실시간 차량 위치 전송 시스템 구축     • RabbitMQ를 통해 다수 차량 실시간 위치 데이터를 안정적으로 수신     • 차량별 큐를 활용해 메시지 손실 없이 처리     • WebSocket으로 브로드캐스트하여 위치 변화를 실시간 반영     • 재처리가 필요 없는 요구에 맞춰 초기 Kafka 구조를 RabbitMQ Topic Exchange로 단순화, 평균 지연 2.3초 → 0.4초 • 차량 위치 클러스터링 기능 구현     • 지도 확대/축소 및 범위에 따라 차량을 그리드 셀 기준으로 집계하여 위치 정보를 효율적으로 시각화     • 지도 범위·줌 레벨 기반 조회로 GPS 조회 API 응답 1.07초 → 0.45초 • 차량 점검 알림 시스템 개발 (SSE)     • 누적 주행 거리 5,000km 이상 차량에 대해 점검 알림을 실시간으로 전송하여 관리 효율성 향상     • 알림 지연 없이 전송되도록 SSE + Nginx로 구현 • 일별, 시간별 차량 운행 내역 API 개발     • 일별/시간별 단위로 차량 운행 내역을 조회할 수 있는 API 제공 → 관리자 업무 자동화 및 통계 기반 운영 지원 • 자동완성 검색 기능 구현 (Elasticsearch)     • 자음 검색(예: 123ㄱ → 123가1234) 가능하도록 분석기 설정 및 색인 구조 설계     • 사용자 검색 정확도 및 속도 개선 • 역할 기반 인증/인가 시스템 구축 (JWT토큰 → 세션 방식 리팩토링)

Elasticsearch
RabbitMQ
Redis
JPA
WebSocket
Spring Security
MySQL
JUnit5

InvestMetic

• 투자 전략 분석 데이터 처리 자동화     • 전략별 입출금, 일별 손익 데이터를 기준으로 주요 계산식을 스케줄러 기반으로 자동 적용     • 계산 대상 데이터만 선별하여 처리하도록 개선, 불필요한 연산 제거 및 성능 최적화     • 👉 CPU 사용률 66% → 40% 감소, 최대 72% 성능 개선 • 유저 역할 기반 데이터 접근 제어     • Spring Security 기반 인가 로직을 통해 투자자 / 트레이더 / 관리자에 따라 데이터 접근 범위 분리

SpringBoot
Spring Security
JPA
QueryDSL
MySQL
JUnit5
GitHub
LinkedIn