조용현 Backend Engineer · 신입
보유 역량 요약
대용량 데이터 환경에서 문제를 재현하고, 데이터 접근 구조와 동시 요청 처리 방식을 개선해 성능과 안정성을 높여 온 백엔드 엔지니어
- 서비스 성장 시 발생할 수 있는 병목을 사전 검증하기 위해 게시글 100만 건, 댓글 1,000만 건, 좋아요 450만 건을 적재한 환경에서 병목을 수치로 확인하고 개선 효과까지 검증한 경험
- 단순히 성능을 개선하는 데 그치지 않고, 문제의 원인과 서비스 운영상 영향까지 분석해 해결 방식을 선택한 경험
- 배포 자동화, 문서 자동화, 모니터링과 장애 알림까지 직접 구성해 개발과 운영이 이어지는 흐름을 경험
기술 스택
Java
Spring Boot
Spring Data JPA
MySQL
Caffeine Cache
AWS EC2
Docker
GitHub Actions
JMeter
Prometheus
Grafana
Railway
Bash
Spring REST Docs
Projects
Popping-community — 커뮤니티 서비스 (2025.03 ~ 현재)
GitHub
개인 프로젝트 · EC2 t2.micro 단일 인스턴스 (MySQL + Spring Boot 공유) · 게시글 100만 · 댓글 1,000만 · 좋아요 450만 건 · JMeter 100 VUser · DAU 1만 명 가정
- 인기 게시글 댓글 트리 반복 생성으로 응답 지연 발생, 인메모리 캐시(Caffeine) Cache-Aside 패턴 적용으로 댓글 조회 응답시간 152ms → 43ms 및 CTE 실행 횟수 6,642건 → 458건 감소
- 동시 좋아요 요청 시 유니크 제약 예외 발생, ON DUPLICATE KEY 기반 멱등 처리로 동시 20 VUser 요청에서 예외 0건 달성
- likes 450만 건에서 집계+개인화 단일 쿼리 풀스캔으로 응답시간 10초·에러율 15% 발생, 쿼리 분리+비정규화로 응답시간 10,460ms → 167ms·에러율 15.53% → 0%
- App CPU 200% 포화로 TPS 274/s 정체, HAProxy cookie insert 기반 수평 확장(App 2대)으로 TPS 274 → 527/s·응답시간 867ms → 32ms
- Scale Out 후 MySQL CPU 100% 포화(병목 이동), Read Replica + Sticky Primary(쿠키 3초) 적용으로 응답시간 32ms → 10ms·Replication Lag 104s → 26s
- 수동 빌드·배포·모니터링으로 반복 시간 소모, GitHub Actions + Jib + Prometheus·Grafana로 배포~모니터링 자동화
PoppingOps — 백엔드 운영 모니터링·장애 알림 자동화 (2026.04)
GitHub
개인 프로젝트 · Bash · Railway · Docker · GitHub Actions
- 로컬 PC 의존 모니터링으로 PC 종료 시 감시 불가, Railway 컨테이너 기반 SSH 메트릭 수집으로 최대 10분 이내 자동 알림 전환
- 모든 감지에 AI 사용으로 비용 반복·장애 전파, 정기 감지는 규칙 기반 스크립트로 분리하고 AI는 해석·요약에만 호출하여 정상 상태 AI 비용 0원 유지 및 AI 장애 시에도 감지 동작
- 모니터링 장애 시 정상으로 오인 위험, 유형별 실패 추적 + snapshot freshness 검증으로 “서버 장애”와 “감지 불능” 분리 알림
FINNA — 루틴 관리 서비스 (2024.01 ~ 2024.04)
GitHub
팀 프로젝트 (4명) · EC2 실 배포 · 본인 담당: 백엔드 전체
- 수동 API 명세 공유로 프론트엔드와 명세 불일치·재작업 발생, Spring REST Docs로 테스트 통과 시에만 문서 생성되는 자동화 파이프라인 구축
Education
성공회대학교 — 소프트웨어공학과, 정보통신공학과(복수전공) 학사 3.77 / 4.5 (2020.03 ~ 2025.08)