서버의 상태를 로그와 지표로 가시화하고, 개선을 숫자로 증명합니다. 만든 것을 직접 배포하고 운영하며 장애를 사전에 차단하는 일까지 맡아왔습니다.
- 게시글 목록 API P95 30.18초 → 128ms, 에러율 90.9% → 0%
- 멀티테넌트 권한 우회 2건 · 라이브러리 취약점 4건 차단, CI 보안 게이트 구축
- AWS 무중단 배포 파이프라인 단독 구축 — Blue/Green + 헬스체크 실패 시 자동 롤백
기술 블로그 · 배포 서비스 fireroad.shop · k6k2dao112233@gmail.com
| 프로젝트 | 내가 맡은 것 | 결과 |
|---|---|---|
| FIREROAD 소방 출동 경로 안내 2026.09~ · 백4/프1 · PR 18건 |
인프라·배포 파이프라인 전담 | 배포 중 서비스 중단 제거 · 교체 중 두 컨테이너가 동시에 떠도 실사용 213MB(23.5%) · 기동 22초 |
| Flown 성장형 LMS 2026.05~07 · 백4/프2 · PR 77건 |
PM·형상관리자 / 인증 도메인 / AI 추천 서버 | P95 30.18초 → 128ms (236배), 에러율 90.9% → 0% · Flyway 마이그레이션 15건(팀 최다) |
| Z Groupware AI 네이티브 그룹웨어 2026.07~08 · 백6/프3 · PR 68건 (팀 전체 377건) |
인증·조직 도메인 / 보안 | 권한 우회 2건 · 취약점 4건 차단 · 병합 PR 68건 중 54건(79%)에 테스트 포함 |
기술: Java · Spring Boot · Spring Security · JPA · MySQL · Redis · Flyway · Docker · Nginx · GitHub Actions · AWS(EC2·RDS·S3·IAM OIDC·SSM) · Python · FastAPI
① 30초 → 128ms — 캐시로 덮지 않고 원인부터 특정
실행 계획을 보니 DB가 LIMIT 20을 적용하기 전에 게시글 5만 건 전부의 댓글 수를 세고 있었습니다. 인덱스로 2.1초(14배)까지 줄였지만 SLO(P95 1초) 미달 — 댓글 수 비정규화로 128ms.
→ Hard-Click-BackEnd#393 · 블로그: 게시판이 30초 동안 멈춰 섰다
② 신뢰 지점을 헤더에서 토큰으로 — 남의 회사가 열려 있었다 회사 스코프를 클라이언트 헤더에서 받고 있었습니다. 값만 바꾸면 타 회사 데이터 열람과 타인 명의 결재 승인이 가능했습니다. 두 건 모두 토큰 클레임 기준으로 옮기고, 이후 회사 경계 검증을 CI(Gate 1)로 올렸습니다. → BACKEND#101 · #102 · #371 Gate 1 · #479 Jackson @JsonView 4건
③ 초록불이 증거가 아니다 — 열어둔 지표를 스스로 되돌리다 RAM 1GB 서버에 Blue/Green을 올리며 actuator metrics를 열었는데, 내부 전용이어야 할 엔드포인트가 외부에 공개돼 있었습니다. 다음 PR에서 직접 되돌렸습니다. 배포 편의를 위해 공격면을 넓히지 않는다는 기준은 SSH 대신 SSM, 액세스 키 대신 IAM OIDC를 고른 이유와 같습니다. → FIREWAY#20 Blue/Green · #22 → #23 공개 되돌림 · #6 SSM 자동 배포
- 게시판이 30초 동안 멈춰 섰다 — 최적화 128ms까지
- 인증 저장소를 DB에서 Redis로 옮긴 이유
- EC2 무중단 배포 — Docker Compose와 Nginx로 블루-그린 구성하기
시리즈 5편 - Gemini 임베딩과 풀이 이력으로 개인화 복습 추천 시스템 만들기
원티드 포텐업 백엔드 트랙 수료 2026.02–08 · 을지대학교 의료IT 2027.02 졸업예정


