About
백엔드/인프라 중심으로 일하는 개발자입니다. Spring Boot와 FastAPI로 서비스 로직을 설계하고, 집에서 직접 운영하는 홈서버 환경을 통해 배포·모니터링·장애 대응까지 실제 운영 관점에서 고민합니다. 화려한 화면보다 안정적으로 돌아가는 시스템을 만드는 데 관심이 많습니다.
Skills & Stack
DATA
INFRA & OPS
Projects
Pomoland (뽀모도로 땅따먹기)
뽀모도로 타이머로 집중 세션을 관리하며, 완주한 시간만큼 지도 위 타일을 점령해 나가는 학습 동기부여 게임
"공부 시간을 보여주는 서비스가 아니라, 공부한 시간이 내 땅이 되게 한다"를 목표로 하는 게임형 학습 동기 부여 서비스. 뽀모도로 세션을 완주한 시간만큼 지도 위 타일을 점령·방어·탈환하며 다른 사용자와 경쟁합니다.
- 30초 주기 하트비트로 서버가 세션 진행을 검증, 완주 시에만 포인트·공부시간 자동 적립
- (x, y) 유니크 제약 + saveAndFlush로 동시 타일 점령 충돌을 즉시 감지해 한쪽만 성공 처리
- Apple/Google OAuth2 로그인과 JWT Access/Refresh 재발급, 리프레시 토큰 AES 암복호화 저장
JastAPI
FastAPI처럼 직관적으로 백엔드를 구축할 수 있는 자체 제작 경량 Java 백엔드 프레임워크
FastAPI처럼 직관적으로 백엔드 서버를 구축할 수 있는 자체 제작 Java 프레임워크. 백엔드 프레임워크의 구조를 공부하기 위해 개발하였습니다. 내장 WAS, 어노테이션 기반 라우팅, DI 컨테이너를 처음부터 직접 설계·구현했습니다.
- ServerSocket 기반 내장 WAS로 별도 설치 없이 한 줄 코드만으로 서버 실행
- 리플렉션 기반 자동 클래스 스캔 DI 컨테이너(@Component)와 @Get/@Post/@Patch/@Delete 라우팅 구현
- wrk 부하 테스트(400 connections, 30s) 결과 초당 21,873건 처리
- 해시맵 라우터는 '/users/{id}' 같은 동적 경로를 표현할 수 없다는 한계를 발견, 트라이 구조로 재설계해 Path Variable 매칭과 조회 성능을 동시에 확보
FindX
분실물 습득을 '퀘스트'로 재정의해 자발적 회수를 유도하는 위치 기반 게이미피케이션 매칭 서비스
유실물 습득을 '퀘스트', 습득자를 '헌터'로 재정의하여 게이미피케이션 보상으로 자발적 회수를 유도하는 위치 기반(LBS) 분실물 매칭 서비스 백엔드.
- 텍스트 전문 검색·좌표 Bounding Box 사전 필터링·Haversine 정밀 거리 계산을 하나의 검색 API로 통합
- STOMP+RabbitMQ 기반 실시간 채팅에 CONNECT(JWT 검증)·SUBSCRIBE(참여 여부 재검증) 2단계 인가 적용
- 배지·포인트·리더보드 게이미피케이션, Solapi SMS 인증·Apple/Google OAuth2·FCM 알림 통합
- cascade 차등 설계로 탈퇴 후에도 이력 보존, 복합 unique 제약으로 DB 레벨 정합성 보장
FSHS (File Streaming Home Server)
복잡한 구축 과정 없이 개인 PC를 실시간 파일 스트리밍 NAS로 만들어주는 스탠드얼론 앱
복잡한 구축 과정 없이 개인 PC를 그대로 실시간 파일 스트리밍 서비스로 만들어주는 스탠드얼론 NAS 앱. 저사양 하드웨어를 타깃으로 합니다.
- FFmpeg 실시간 트랜스코딩으로 브라우저 미지원 코덱의 영상·음악 재생 문제 해결
- 실제 디스크와 DB 캐시 간 정합성을 맞추는 FolderSyncService로 외부 파일 변경도 자동 동기화
- 세션 기반 인증과 공유 링크용 토큰 인증을 함께 설계, 다중 사용자별 독립 루트 폴더 분리
- 라즈베리파이 3B(ARM, 1GB RAM) 환경에서도 끊김 없이 동작하도록 최적화한 저사양 대응 NAS 앱
- 썸네일 수만 개 누적 시 파일시스템 성능 저하 → UUID 2단계 디렉터리 샤딩으로 해결
- v1 개발 중 임시방편으로 쌓인 구조적 부채가 신규 기능 추가를 어렵게 만든다는 것을 확인, 전체 아키텍처를 재설계하여 v2로 마이그레이션