Backend Developer · 5년차

장애가 나도
서비스는 살아있다

안녕하세요, 이호상입니다.
월간 약 7,000명(하루 평균 약 2,500명)이 학습하는 유아 교육 플랫폼에서, 서버가 버텨야 할 순간마다 버티게 만드는 일을 해왔습니다.

4+
years of experience
2,900+
commits on 6 repos
40+
APIs migrated
0
502 errors after fix
∞
redis fallbacks handled
Experience

일한 곳들.

2023.08.14
— 현재
아이스크림에듀
학습서비스개발팀 · Backend Engineer
리틀홈런 학습 플랫폼 백엔드 전담. 운영 어드민 · 학습 API · 게임/영어 학습 서버까지 WAS 4개를 맡아 설계 · 구현 · 운영 · 배포합니다. 공용 서버에서 전용 서버 분리, 캐시 장애 대응, 배포 무중단화, 통계 대시보드, 보안 강화와 MySQL 8.0 업그레이드 대비까지 서비스 전반을 책임지고 있습니다.
Java 11Spring Boot 2.7 Spring BatchJPAMyBatis OpenFeignMySQLMariaDB RedisAngularJenkins
2022.08.08
— 2023.08.14
아이스크림키즈
IT 개발팀 · Backend Engineer
유아 교육 서비스 백엔드 개발. Spring Boot와 Vue.js 기반 웹 서비스 개발 및 유지보수를 담당했습니다.
JavaSpring Boot JPAVue.js MyBatisMariaDB
Achievements

이런 걸
해결했습니다.

🏗️
40+
학습 서버 독립 분리
초등·중등·리틀홈런이 함께 쓰던 공용 서버에서 리틀홈런 전용 서버를 완전히 분리. 코드 한 줄이 전 서비스에 영향을 주던 구조에서 벗어났습니다.
7개 도메인 이관
🚀
0
배포 중 서비스 무중단
배포할 때마다 사용자들이 겪던 502 오류를 해결. 서버가 요청을 모두 처리한 뒤 안전하게 종료되도록 바꿔 배포 중에도 학습이 끊기지 않습니다.
502 에러 제거
🛡️
∞
캐시 서버 장애 자동 복구
Redis 캐시가 갑자기 다운돼도 서비스가 멈추지 않도록 자동 복구 시스템 구축. 장애 시 DB로 자동 전환되어 사용자는 서비스를 계속 이용할 수 있습니다.
Redis → DB fallback
📊
34
학습 통계 대시보드
구독 · 활성 사용자 · 콘텐츠 이용 등 34개 지표를 배치로 미리 집계하고 지난 기간은 백필로 채우는 구조를 설계부터 운영까지 맡았습니다. 화면마다 달랐던 회원 기준도 하나로 맞췄습니다.
사전집계 + 백필
🎙️
E2E
말하는 수학 기능 구현
아이들이 수학 문제를 목소리로 풀어보는 기능을 백엔드부터 관리자 UI까지 전체 구현. 브라우저 보안 정책 차단 문제도 서버 프록시로 해결했습니다.
녹음·재생·관리 전체
⚙️
~0
동시 요청 충돌 문제 해결
수천 명이 동시에 학습을 시작할 때 발생하는 간헐적 서버 오류를 분석·해결. 동일 요청이 동시에 들어와도 데이터가 깨지지 않는 구조로 개선했습니다.
Race Condition 제거
🔐
61
보안 필터 재설계
테스트가 하나도 없던 서버의 인증 필터를 정책 객체로 분리하고 TDD로 61건을 쌓았습니다. 판단마다 감사 로그를 남겨, 정상 요청이 막히지 않는지 먼저 확인하고 차단으로 넘어가는 단계적 적용 방식을 택했습니다.
관측 → 차단 2단계
🐬
8.0
MySQL 8.0 업그레이드 대비
4개 서비스의 쿼리 · 엔티티 · DDL을 전수 조사해, 8.0에서 에러가 나는 쿼리뿐 아니라 에러 없이 결과 순서만 바뀌는 쿼리까지 미리 고쳤습니다. 조사 중 몇 달째 조용히 실패하던 리포트 갱신도 찾아냈습니다.
조용한 오동작까지 선수정
🔁
0
'빈 성공' 없는 집계 배치
트랜잭션 안에서 외부 API 응답을 기다리며 DB 커넥션을 붙잡던 집계 배치를 "조회는 밖, 저장만 트랜잭션"으로 나누고, 실패를 빈 결과로 덮어쓰던 응답을 오류로 바꿔 알림이 오게 했습니다.
트랜잭션 안 외부 호출 0건
Skills

무기고.

주로 Java · Spring 생태계에서 일합니다.

안정적인 서버 운영과 빠른 장애 대응에 집중해왔습니다. 데이터베이스 설계부터 캐싱 전략, API 설계, 배치 집계, 보안, 관리자 UI 개발까지 서비스를 끝까지 책임지는 구조로 만들어가고 있습니다.

Backend
JavaSpring Boot JPA / HibernateSpring BatchMyBatis OpenFeignJUnit5 · Mockito Node.jsPython
Database & Cache
MySQLMariaDB RedisMongoDB
Frontend
AngularVue.js ReactTypeScript
Infra
DockerNginxTomcat AWSKubernetes JenkinsGitLabScouter APM

기술 블로그

공부한 것들, 삽질한 것들을 기록합니다.

블로그 보기 →