메인 콘텐츠로 이동하기

Experiences

회사별 역할과 결과

이 페이지는 회사와 프로젝트별로 맡은 책임, 주요 기술 판단, 제품·운영에 만든 변화를 시간순으로 정리합니다. 대표 문제의 배경부터 설계 대안과 구현 과정까지 깊게 다룬 사례는 Portfolio에서 확인할 수 있습니다.

2025/06 - 재직 중

퍼포먼스바이티비더블유에이 #

플랫폼 개발자 (주임연구원)

Java Spring JSP MyBatis MariaDB NestJS TypeScript BullMQ Redis MikroORM Python FastAPI AWS S3 GitHub Actions Docker Git

B2C 광고 CM 서비스 #

2025/06 - 진행 중

Spring/JSP 기반 B2C 광고 캠페인 매니저의 광고 생성·결제·승인·송출 흐름 개발 및 외부 매체 연동

  • 광고 생성부터 소재 승인, 결제·마일리지, 리포트와 송출까지 이어지는 핵심 업무 흐름을 구현하고 요구사항 변화에 맞춰 데이터 구조를 개선
  • 트랜잭션을 보장하지 않는 YouTube Demand Gen API의 부분 실패에 대응해 외부 리소스를 역순 정리하는 보상 트랜잭션과 DB 롤백을 설계, 캠페인 생성 과정의 데이터 불일치 위험을 축소
  • 자동 복구까지 실패하는 경우 상태 기록과 Slack 통지로 사람에게 제어권을 넘기는 운영 경계를 마련해 장애가 조용히 누락되지 않도록 구성
  • 운영 환경의 API 문서와 루트 접근을 제한하고, setup·Git Hooks·AI 에이전트 규칙을 정비해 서비스 보안과 팀 개발 절차를 함께 보강

B2B 광고 CM 서비스 #

2025/08 - 2026/03

레거시 Spring/JSP 기반 B2B 광고 CM 서비스의 기능 확장 및 운영

  • 광고소재 심사 결과를 외부 플랫폼에서 별도로 확인하던 운영 흐름을 Google Authorized Buyer API와 연결해, 캠페인·소재 화면 안에서 승인 상태와 정책 위반 사유를 확인하도록 개선
  • 타겟 파일의 직접 접근을 S3 presigned URL 기반 다운로드로 전환해 파일 전달 과정의 접근 통제를 강화
  • 운영 중인 레거시 시스템을 멈추지 않고 MyBatis mapper, 공통 응답, DTO·VO 분리를 단계적으로 적용해 변경 비용과 반복 의존성을 축소
  • creative 단위 리포트 대시보드를 추가하고 지표 계산·분모 0 예외와 화면 상태 관리를 보강해 운영 데이터의 신뢰성과 입력 흐름의 예측 가능성을 높임

플랫폼 알림 백엔드 #

2025/08 - 2026/02

광고 예산 소진 현황을 실시간으로 파악하고 운영팀에 알리는 NestJS 기반 알림 서버 신규 구축

  • 운영팀이 광고그룹·광고별 예산 소진 상태를 빠르게 파악할 수 있도록 Redis 기반 리포트와 Slack 알림 서비스를 구축
  • 스케줄러 직접 발송 구조를 BullMQ 이벤트 처리 구조로 전환해 발송 부하를 분리하고, 재시도와 실패 로그로 알림 누락을 추적할 수 있게 설계
  • ABI·Addirect 데이터소스를 분리해 처리하고 NaN/null 방어 로직과 Redis pipeline을 적용해 리포트의 안정성과 조회 효율을 보강
  • GitHub Actions와 PM2 배포, SSH 접근 제어 및 AWS Security Group 변경을 자동화해 반복 배포 작업과 수동 접근 범위를 축소

사내 NestJS 백엔드 표준 템플릿 #

2026/01 - 2026/03

서비스마다 반복되는 초기 설정 비용을 줄이기 위한 사내 백엔드 표준 템플릿 설계 및 구축

  • 서비스마다 반복되던 설정과 공통 기능 구현을 실행 가능한 표준 골격으로 묶어 신규 백엔드의 초기 구축 비용을 줄임
  • API와 worker 런타임을 독립적으로 확장할 수 있도록 pnpm workspace 기반 apps/packages 구조를 설계
  • shared-kernel·contracts·messaging·persistence 경계와 outbox/inbox 예시를 제공해 도메인 분리와 메시지 처리 기준을 팀이 재사용할 수 있게 구성
  • README와 확장 가이드를 구현과 함께 관리해 템플릿의 사용법과 확장 지점을 명시

2025/04 - 2025/06

알타바그룹 #

백엔드 개발자

TypeScript JavaScript Hono.js Cloudflare Workers Cloudflare D1 Kysely Zod R2 Slack

Platform 서버리스 백엔드 #

2025/04 - 2025/06

Hono.js와 Cloudflare Workers D1 기반 B2C 플랫폼 백엔드 개발 및 운영

  • 이벤트 처리와 주간 랭킹·보상 집계를 별도 서비스로 분리해 실행 시점 제어와 장애 격리가 가능한 운영 구조를 마련
  • JavaScript 코드베이스를 TypeScript와 Kysely 기반으로 점진 전환해 원시 SQL 의존도를 줄이고, D1 Batch API로 데이터 작업의 실행 효율을 개선
  • 유저 랭킹·포인트, 도움말, 다국어 뉴스 등 제품 기능과 SSE 실시간 스트림을 구현하고 관련 스키마·마이그레이션을 함께 관리
  • 환경별 실행 분기와 Slack 알림을 연결해 서버리스 배치의 수행 상태를 운영자가 확인할 수 있도록 구성

Platform 배치 스케줄러 #

2025/04 - 2025/05

주간 디자인·유저 랭킹 배치 스케줄러의 운영 조건 조정 및 Slack 알림 통합

  • 서비스 운영 정책에 맞춰 디자인·유저 랭킹 기준을 월간에서 주간으로 전환하고 댓글 수 기반 계산 로직을 조정
  • 주간 랭킹과 추천 디자인 스케줄의 실행 조건을 분리해 기능별 배치 제어가 서로 영향을 주지 않도록 개선
  • dev/live 메시지 분기와 수동 실행 플래그를 추가해 검증과 긴급 재실행이 가능한 운영 경로를 마련

2021/04 - 2023/05

웹젠 #

백엔드 개발자 (선임)

Node.js Vue.js Python Linux Docker Redis GitLab Nuxt.js FastAPI JavaScript TypeScript TypeORM Git ExpressJS Ubuntu centOS HTML SQL NoSQL PostgreSQL Nginx InfluxDB Grafana Prometheus Nginx Redmine Teams

라이브 서비스 게임 운영툴 웹 개발 및 운영 #

2021/05 - 2023/05

Nuxt.js기반 라이브 게임 운영툴에 추가 기능을 개발하고, 지속적으로 운영 및 유지보수를 수행

  • 게임 서비스와 어드민 역할별 권한에 따라 화면과 기능을 분리하고 인증·인가를 통합 관리해 운영 도구의 접근 범위를 안전하게 제어
  • 로그 추출용 백엔드를 분리하고 CSV 처리 방식을 개선해 클라이언트 멈춤 현상을 제거하면서 평균 요청 시간을 5초에서 1초로 단축
  • 대규모 MSSQL 작업을 스트림 기반 청크 처리로 전환해 스케줄링 시간을 평균 10초에서 3초로 줄이고 평균 메모리 사용량을 40% 이상 절감
  • API 문서와 Redmine 기반 업무 이력을 관리해 라이브 서비스의 변경 사항과 협업 맥락을 지속적으로 공유

Alert 백엔드 설계 및 구축 #

2021/08 - 2023/05

모니터링 대상 서버의 메트릭에 대한 Alert 백엔드 시스템을 설계 및 구축

  • 여러 라이브 서비스의 Grafana 알림을 한 백엔드에서 처리하고, 팀·개인·조직 단위로 수신 대상을 관리할 수 있는 전달 구조를 설계
  • Microsoft Teams·Slack·이메일의 메시지 생성과 발송을 공통 인터페이스로 통합해 중복을 줄이고 신규 채널 개발 속도를 30% 이상 향상
  • 패널 이미지를 알림에 함께 제공해 운영자가 이상 징후의 맥락을 빠르게 파악할 수 있도록 지원
  • Docker·구축 스크립트·GitLab CI/CD로 환경 구성과 배포를 표준화하고 Swagger 문서로 연동 기준을 공유

모니터링 시스템 구축 #

2021/04 - 2023/05

라이브 서비스 서버의 메트릭을 수집하고 이를 시각화하기 위한 모니터링 시스템을 설계 및 구축

  • PoC를 통해 라이브 서비스 환경에 맞는 모니터링 스택을 선정하고, 서비스별 맞춤 메트릭을 수집·시각화하는 기반을 구축
  • Ubuntu·CentOS별 수집 에이전트를 패키징하고 배포 버전과 설치 가이드를 함께 관리해 여러 운영 환경에서 일관된 수집 체계를 유지
  • Docker와 구축 스크립트로 오픈소스 버전 변경과 환경 재구성을 표준화해 마이그레이션과 반복 설치 부담을 축소
  • 타 부서 피드백을 운영 방식에 반영하고 Redmine으로 변경 이력을 관리해 실제 사용 조직과의 협업 루프를 유지

2020/03 - 2021/03

알파브릿지 #

백엔드 개발자

Python Flask REST API Git Jenkins Docker AWS EC2 AWS RDS AWS Route 53 AWS Elasticsearch Service AWS Elastic Load Balancing AWS CloudFront AWS S3 JavaScript Apollo Server ExpressJS Node.js Redis MariaDB Nginx SQL NoSQL GitHub Linux Ubuntu Slack Grafana Prometheus Nginx Notion

탱고픽 베타 백엔드 개발 및 인프라 구축 #

2020/03 - 2021/03

Python Flask 기반, Restful API 서버 구축 및 AWS 서비스를 이용한 인프라 구축과 배포 자동화

  • 탱고픽 베타의 Flask API와 ExpressJS·GraphQL 기반 백오피스를 설계·구축·운영하며 초기 제품 검증에 필요한 서버 영역을 담당
  • Nginx 리버스 프록시와 기능별 부하 분산, Docker 패키징을 적용해 서비스 구성 요소를 분리하고 배포 가능한 형태로 정리
  • Jenkins·GitHub·Bash 기반 CI/CD 파이프라인을 구축해 반복 배포 작업을 자동화
  • Grafana·Prometheus 모니터링과 Swagger·Notion 문서를 운영해 서비스 상태와 API 협업 기준을 공유
Jaeyong Shim
글쓴이
Jaeyong Shim
라이브 서비스 운영 도구와 외부 시스템 연동 👨‍💻