백엔드 개발자 · 7년차

안녕하세요,
백엔드 개발자 이민영입니다.

2020년부터 쥬비스다이어트에서 사내 운영 시스템을 개발하고 있습니다. 주로 Java/Spring으로 API와 배치를 만들고, 느린 쿼리나 외부 연동 장애의 원인을 찾아 고치는 일을 많이 해왔습니다. 회사 밖에서는 퇴근 후에 서비스와 도구를 만듭니다. 그중 하나는 실제 서비스로 운영 중입니다.

01

회사 업무

쥬비스다이어트 시스템 개발팀 · 파트장 개발자 · 2020.10 ~ 현재
CRM·상담 시스템과 배치를 맡고 있습니다.

주요 업무

  • 내부 시스템 운영CRM·상담 시스템 유지보수 및 기능 개발, 장애 대응
  • 인프라 전환EC2 → EKS, 파일서버 → S3 등 인프라 현대화
  • AI 업무 자동화Claude Code 기반 개발·운영 자동화, 생산성 개선
2026.07 ~

파일서버 → S3 이관

presigned URL·IRSA 전환. 개인정보 캐싱 문제로 CloudFront 대신 서명 발급을 한 곳으로 모음

파드 액세스 키 제거 · 진행 중
2026.07 ~ 09

Notification 통합 · Redis 장애

재접속 동작을 실측해 이력 적재를 응답 경로에서 분리, 상한을 대기 명령 폐기 경계에 맞춤

중복 발송 원인 제거
2026.07 ~ 09

쿠폰 판매·환불

기존 환불 테이블 대신 전용 테이블. 통계 자동 집계를 포기하고 UNION 가능한 원장 구조로

과다 계산 오류 발견·정정
2026.03 ~ 06

AI 코딩 도구 생산성 체계

팀 공용 Claude Code 스킬 레포, VOC 처리 절차를 스킬로

당일 처리 12% → 46%
2026.03 ~ 04

기기 스케줄링 시스템

이력 로그와 캐시 테이블 분리, 자산이 정해질 때까지 모드 결정을 미룸

예정대로 오픈
2025.11 ~ 2026.03

Java → NestJS CRM 전환

로그인·권한 영역 설계, 메뉴·권한 API 20건

서비스 자체 결함 0건
2025.06 ~ 10

AWS EKS 전사 전환

컨테이너화, Helm, ArgoCD, GitHub Actions CI

배포 수십 분 → 수 분
2026.08 ~

PR 리뷰·장애 알럿 봇 (팀 공동)

팀장님이 만든 봇을 팀원들과 함께 PR 코드리뷰·알럿 처리용으로 확장

리뷰·티켓 등록 수동 작업 제거
02

개인 프로젝트

퇴근 후에 만들고 있는 서비스와 도구입니다.

온전한 하루 웹사이트 대표 이미지운영 중

온전한 하루

웨딩 축의대 운영 서비스

결혼식 축의대 대행 서비스 사이트입니다. 가격과 현장 사진, 확정된 일정을 볼 수 있고 상담은 카카오톡 채널로 받습니다.

  • 관리자 CMS에서 공지·후기·Q&A 직접 관리
  • Google Calendar 연동으로 확정 일정 실시간 노출
  • GA4 이벤트 수집, 매주 성과 리포트 자동 발송
만들면서 신경 쓴 점예약 폼이나 자체 DB는 두지 않고 상담은 카카오톡, 일정 관리는 구글 캘린더로 넘겼습니다. 그래서 사이트에는 고객 개인정보가 저장되지 않습니다.
Cloudflare PagesWorkersGA4Kakao SDKPlaywright
Shelf 홈 화면Shelf 등록 화면
베타

Shelf

생필품 유통기한 관리 앱

유통기한을 사진으로 찍어 등록해두면 날짜가 가까워질 때 알림을 보내주는 앱입니다. 계정 없이 쓸 수 있습니다.

  • 기기 내 OCR로 날짜·제품명 자동 인식
  • 제품별 알림 시점·시간 설정
  • 분류·장소·상태 필터와 기한순 정렬
만들면서 신경 쓴 점DB 스키마를 v6까지 올리는 동안 이미 등록한 물품과 사진이 없어지지 않도록 마이그레이션을 작성했습니다. 저장이 실패했을 때 복구하는 처리와, 되돌리기가 더 최근 상태를 덮어쓰지 않게 하는 처리도 넣었습니다.
FlutterSQLiteML Kit OCRLocal Notifications
베이비로그 홈 화면
개발 중

베이비로그

임신 다이어리 앱

임신 기간의 기록을 사진과 함께 남기는 다이어리 앱입니다.

  • 임신 주차·D-day 자동 계산
  • 사진 다이어리와 캘린더 뷰
  • 정부 지원 정보·영양·병원 정보 내장
  • 백업·복원과 전체 데이터 삭제
만들면서 신경 쓴 점서버 없이 모든 데이터를 기기에만 저장합니다. 백업 파일은 사진을 풀기 전에 먼저 검사해서, 파일이 손상된 경우와 저장 공간 문제를 구분해 알려줍니다.
FlutterDriftSQLiteGolden Test
$ python3 scripts/upload_naver.py draft.json
✓ 이미지 12장 · EXIF 보정 · 얼굴 모자이크
✓ 본문·사진 순서대로 입력
✓ 장소 · 카테고리 · 해시태그
→ 임시저장 완료 (--publish 없이 발행 안 함)
오픈소스
Py

블로그 자동 업로드

네이버 블로그 발행 자동화

사진과 초안을 넣으면 네이버 블로그 에디터에 글을 입력하고 임시저장까지 해주는 도구입니다. AI 에이전트 스킬로 설치하면 대화하면서 글을 쓸 수 있습니다.

만들면서 신경 쓴 점실수로 글이 공개되지 않게 기본은 임시저장이고, --publish 옵션을 줬을 때만 발행합니다. 계정 정보와 로그인 세션은 내 컴퓨터에만 저장됩니다.
PythonPlaywrightPillowAgent Skills
~/.claude
├─ CLAUDE.md · 지침
├─ skills/ ● 51
├─ hooks ● on
├─ agents/ · plugins/
└─ sessions ● 3 active
오픈소스
JS

Claude Dashboard

Claude Code 워크스페이스 관리

Claude Code의 지침, 스킬, 훅, 에이전트, 실행 중인 세션을 한 화면에서 보고 고칠 수 있는 로컬 대시보드입니다.

만들면서 신경 쓴 점따로 서버를 두지 않고 ~/.claude 디렉토리를 직접 읽고 씁니다.
React 19ViteNode.js
03

이 사이트는 이렇게 배포합니다

정적 사이트라 그냥 올려도 되지만, 회사에서 배포할 때 쓰는 방식을 그대로 적용해봤습니다. 테스트가 깨지면 배포하지 않고, 배포 후에는 새 버전이 실제로 떠 있는지 확인합니다.

pull_requestPR을 올리면
  1. HTML 검사html-validate
  2. E2E 테스트Playwright · 데스크톱/모바일
  3. 미리보기 배포pr-N.minyeong-dev.pages.dev
  4. 반영 검증/api/health 커밋 대조
  5. PR 댓글미리보기 주소 회신
push → mainmain에 머지되면
  1. 같은 테스트재사용 워크플로
  2. 운영 배포Cloudflare Pages · 순차 실행
  3. 반영 검증엣지 전파까지 폴링
  4. 스모크 테스트운영 주소 대상
  5. Slack 알림실패해도 배포와 분리
지금 서빙 중인 버전
commit
—
배포
—
실행
—
GET /api/health(Pages Function) 응답을 그대로 보여줍니다.
  • 배포 명령이 성공해도 한 번 더 확인CDN에 이전 버전이 남아 있을 수 있어서, /api/health가 돌려주는 커밋이 방금 배포한 커밋과 같아질 때까지 확인합니다.
  • 운영 배포는 한 번에 하나씩머지가 연달아 일어나도 배포끼리 겹치지 않게 순서대로 실행합니다.
  • 알림이 실패해도 배포는 그대로Slack 알림은 별도 job이라 알림이 실패해도 배포 결과에는 영향이 없습니다.