Profile
2020년부터 쥬비스다이어트에서 전국 53개 지점이 쓰는 CRM·ERP를 개발하고 운영하고 있습니다.
Java/Spring으로 API와 배치를 주로 만들고, 느린 쿼리나 외부 연동 장애가 생기면 실행계획과 운영 실측으로 원인을 확인한 뒤 고칩니다.
최근에는 사내 파일서버를 S3로 옮기고 있고, 그 전에는 EC2 서비스를 EKS로 전환하면서 CI/CD를 새로 구성했습니다.
상세 경력
CRM 운영·유지보수 (2026.03 ~ 현재)
- Grafana 로그 기반 500·504 상시 분석 및 조치 (최근 1년 58건)
- 성과관리 집계: 지표 테이블·집계 프로시저 수정, 컨설팅 진행건수 배치 신규 개발. DEV에서 배치가 5~7시간 걸리던 원인을 추적하다 인덱스 부재를 찾았고, PROD(약 1시간)에도 같은 문제가 있어 함께 개선
- 프로그램 식별·오픈 지점·약관 매핑 하드코딩을 DB 기반으로 이전. 신규 프로그램마다 2년 넘게 수작업으로 하던 약관 매핑이 필요 없어짐
- 프로그램 삭제 시 결제·캐시 서버 검증 추가, 관리취소 시 종료일 복원 누락 등 상태 전이 결함 수정
운영 지표 (사내 평가 기준)
- 장애 신고 76건 전량 30분 이내 대응 착수, 평균 21.7분 (2026 상반기)
- 담당 VOC 105건 중 104건 원인 확인 후 종결, 13건은 코드 수정으로 재발 차단 (2026 상반기) · 누적 223건 (2024.08 ~ 2026.10)
- 담당 Jira 136건 전량 기한 내 완료 (2025 상반기) · CRM MTTR 2.3분 (2023)
업무 도구 로그인 — AWS Cognito (2025.03 ~ 2025.05)
- 컨설턴트용 Retool 업무 도구 로그인을 Cognito 기반으로 구축. 직원 DB 확인 후 Cognito 사용자를 생성·동기화하고 토큰 발급, Refresh Token 처리
- 처음엔 Lambda로 구성했다가 운영·디버깅 부담을 고려해 Java API(crm-api)로 옮김
홈페이지·플랫폼 런타임 리소스 조정 (2024.10 ~ 2024.12)
- 홈페이지 3개 서비스의 DB 커넥션 풀을
minimumIdle 0 → 10, maximumPoolSize 10 → 22로 조정. 이후 접속 오류가 나자 트래픽에 비해 부족하다고 보고 다이어트 홈페이지는 50까지 다시 올림
- 조건 없이 호출되면 회원 테이블 전체를 읽던 엔드포인트에 방어 코드 추가 (홈페이지·앱)
모니터링 계측 — DataDog RUM / APM (2024.08 ~ 2025.09)
- CRM·홈페이지에 RUM/APM 계측을 적용하고 수집 파라미터와 연동 구조 설계 (상담시스템·앱은 동료 담당). APM과 RUM을 연결해 사용자가 본 화면 오류에서 서버 트레이스로 바로 이동 가능
- SPA 라우팅에서
startView() 호출이 없어 모든 화면이 /로 잡히던 문제를 경로별로 구분되게 수정. 계측 후 APM 트레이스로 쪽지 발송 500 에러가 이모지 입력 시 문자셋 예외였다는 걸 찾아 수정
- RUM이 view name·직원 ID를 못 잡던 페이지를 보정해 누가 어느 화면에서 막혔는지 특정 가능하게 함
- 이전에는 Jennifer Front(성능)와 Sentry(오류 추적)를 선정해 적용했고, DataDog으로 옮기면서 기존 스크립트를 전 서비스에서 제거
DB 운영 자동화 도구 — AWS Lambda (2024.07 ~ 2025.05)
- 트랜잭션 락 장애가 반복되던 시기, 전사 DB 성능 개선 과제에서 감시·대응 도구 담당
- 슬로우 쿼리 모니터링: EventBridge 30분 주기로 장시간 실행 쿼리의 thread ID·계정·소요 시간·쿼리를 전달해 필요하면 바로 종료 가능
- 락 대응:
innodb_trx와 performance_schema.processlist를 조인해 어느 서비스 계정이 건 락인지 식별, 미커밋·장기 트랜잭션 종료와 종료 이력 MongoDB 적재
- 이후 팀의 Reader/Writer 분리와 슬로우 쿼리 튜닝으로 락 자체가 줄어 현재는 사용하지 않음
배포 파이프라인 구성 및 운영 (2025.08 ~ 2026.09)
- 통합 API 서버 staging CI/CD를 처음 구성하고 prod 배포 환경(이미지·시크릿·환경변수 분리)까지 구축
- GitHub Actions environment 선언으로 배포 이력이 Jira 이슈에 자동 기록되도록 연동 (사내 서비스 3종)
- staging 배포 Slack 알림: 배포 형상(develop 전체 / 체리픽 / main 동일)을 커밋 거리로 판별해 포함 이슈 목록과 함께 발송. 알림 실패가 배포 실패가 되지 않도록 경로 분리
외부 검사 연동 시스템 (2021.03 ~ 2021.08 / 2025.08 ~ 2025.10)
- 1차: 외부 업체 API 폴링 Spring Batch와 CRM 대상자 관리 화면. 2차: 업체 변경 마이그레이션, 폴링을 Webhook 수신으로 전환
- 재전송·재등록 시 결과가 중복 적재되던 문제를 DB 유니크 제약과 S3 키트번호 기준 덮어쓰기로 차단. 애플리케이션에서 확인하는 대신 저장소 레벨에서 보장
ERP 배치 시스템 재개발 (2025.03 ~ 2025.06)
- PHP 기반 ERP 배치를 Spring Batch(JDK 21)로 재개발, Job/Step 공통 틀 설계, 실행 결과 Slack 발송·실패 감지. 신규 배치 개발 시간 약 40% 감소
GA + CRM 고객 여정 데이터 분석 (2022.05 ~ 2023.12)
- 접속 → 상담 → 방문 → 계약 → 결제 단계 데이터 모델링과 GA–CRM 연동 파이프라인. GA4 이전, GA4 전자상거래 개발, BigQuery/Looker Studio 마케팅 대시보드
MongoDB Data API 자체 구현 (2024)
- Data API 제공 중단에 대응해 Lambda + API Gateway로 같은 인터페이스의 CRUD API 구축, 호출부 수정 없이 전환. 기존 간헐적 타임아웃 해소
기술 문서화 및 팀 표준 (2024.10 ~ 2026.09)
- 사내 위키 95건. DB 네이밍 규칙, 개발 가이드, Git 브랜치 규칙, 배치 전수 목록·실행 절차, 서비스별 아키텍처, 레거시 로직 분석 4건, CRM-V3 ERD
그 밖에
- 알림성 배치 API 전환 — Cron 기반 레거시 배치를 API + Jenkins Job으로 (2024.12 ~ 2025.01)
- 사내 메신저 알림 통합 & 헬프 챗봇 — 토큰 발급·갱신 자동화, Redis 캐싱 (2023.10 ~ 2024.03)
- 카카오톡 상담 챗봇 — FastAPI 응답 API, 상담 예약 자동화. 수집 데이터 정합성 99.7% (2021.06 ~ 2022.01)
- 고객 만족도 리서치 시스템 — 설문 관리, 지점별 통계, 앱 연동 API (2020.10 ~ 2021.03, 입사 후 첫 프로젝트)