Pickply - R2C Company

R2C Company|Company|2024.07 ~ 2026.01
thumbnail

TECHNOLOGIES & TOOLS

awsgcpmongodbdockerredisgrafanareactNativereact.jsnestjsnextjstypescriptzustandappsflyergoogle analyticsfirebase

CONTRIBUTION & ACHIEVEMENT

Full-stack Engineer

Jul. 2024 ~ Jan. 2026

1. Overall Operations & Agile Feature Development

Situation:

  • The service required rapid iteration to accommodate a growing user base, as well as an independent blog channel to establish SEO and attract B2B customers.

Task:

  • Accelerate the app release process bypassing store reviews and build an official company blog to drive inbound marketing and business growth.

Action:

  • Proposed and directly integrated hot-updater to enable instant Over-The-Air (OTA) app updates, securing an agile release cycle.
  • Developed the official Pickply promotional & B2B blog from scratch using inblog to optimize Search Engine Optimization (SEO).

Result:

  • Led the full-stack development of Pickply across versions 1.6.17 ~ 2.7.3, scaling MAU from 10K to 70K and supporting over 450,000 cumulative users.
  • Actively drove business growth and user acquisition, contributing to the successful closure of the Pre-A fundraising round.

2. Infrastructure Redesign & Deployment Automation

Situation:

  • Manual deployments caused downtime, and infrastructure scaled inefficiently, leading to high operational costs ($650/month) and bottlenecks.

Task:

  • Redesign the infrastructure to fully automate deployments, eliminate downtime, and significantly reduce recurring operational and infrastructure costs.

Action:

  • Redesigned and deployed a secure AWS infrastructure using CDK and introduced a Blue/Green deployment strategy.
  • Automated CI/CD pipelines using Docker multi-stage builds, ECR caching, and CodePipeline.
  • Downgraded MongoDB specs (M30 → M10) via indexing/monitoring and introduced Serverless ETL pipelines.

Result:

  • Eliminated deployment downtime (7s → 0s) and reduced manual deployment time by 80% (5min → 1min).
  • Cut monthly infrastructure costs by over 57% ($650 → $280).
  • Maintained Serverless ETL pipeline operations at under $3/month.

3. Scheduling Server Integration & Migration

Situation:

  • The main server and cron scheduling server were divided into separate ALB+EC2 instances, incurring an additional $150+ monthly.
  • Exposed to a Single Point of Failure (SPOF) risk with complex HTTP dependencies.

Task:

  • Consolidate the separated scheduling server into the main server to reduce costs and remove the SPOF risk, all while ensuring zero service downtime.

Action:

  • Migrated to Fargate with zero downtime through gradual weight-based traffic routing (Blue/Green).
  • Eliminated dependencies and latency by consolidating HTTP API calls into internal service calls.
  • Minimized costs by setting up ECS Fargate scheduled scaling for 15 peak times.

Result:

  • Reduced dual operational costs by 50% by eliminating redundant infrastructure and DataTransfer overhead.
  • Resolved SPOF risk and reduced deployment/maintenance time by unifying management points.

4. Solved Scheduling System Data Loss & Scalability Issues

Situation:

  • Configured notification data volatilized during server restarts due to Node.js setTimeout and in-memory operations.
  • Queue distributed processing was impossible during auto-scaling, risking redundant execution (Race Condition) upon recovery.

Task:

  • Build a highly reliable, persistent scheduling architecture that guarantees 100% execution without data loss during restarts or duplicate runs in multi-server environments.

Action:

  • Ensured data persistence by transitioning to a BullMQ-based message queue architecture.
  • Implemented Distributed Locks using Redis SET NX EX to block redundant execution.
  • Built a @bull-board dashboard to visualize the queue state and introduce automated Retries.

Result:

  • Achieved Zero Data Loss for scheduled tasks during deployments and restarts.
  • Successfully paralleled task processing across instances, resolving overlap and single-point-of-failure issues.

5. MongoDB Load Bottleneck Resolution & Cost Optimization

Situation:

  • All 3 nodes scaled up (M20 → M40) during auto-scaling, wasting $300~$400 monthly.
  • Heavy queries from analytics and full-scan batches interrupted Primary communications, delaying real-time service operations.

Task:

  • Prevent unnecessary scale-ups, isolate performance bottlenecks, and resolve slow queries to drastically reduce database infrastructure costs while ensuring stability.

Action:

  • Separated long-running analytics traffic to a ReadOnly (Analytics) Replication Node (Read Replicaarchitecture).
  • Optimized 40-second malicious queries into Covered queries using a Compound Index.
  • Reduced storage waste by swapping PIT (Point-In-Time) backups to daily snapshot backups.

Result:

  • Downgraded database specs and cut monthly DB costs by 70% ($400 → $120).
  • Reduced 40-second analytics queries to under 0.1 seconds, completely resolving load bottlenecks.

앱/웹서비스 풀스택 리드 엔지니어

2024년 7월 ~ 2026년 1월

1. 전반적인 운영 기여 및 비즈니스 마케팅 인프라 구축

Situation:

  • 유저 타겟 확장을 위해 빠른 실험과 앱 업데이트 주기가 필수적이었으며, B2B 고객 확보 및 마케팅을 위한 독자적인 SEO 최적화 블로그 채널이 부재한 상황

Task:

  • 앱 스토어 심사 과정 없이 즉각 배포가 가능한 애자일 프레임워크를 도입하고, 검색 엔진 노출을 극대화할 수 있는 홍보 블로그를 개발하여 비즈니스 성장 견인

Action:

  • hot-updater 도입을 제안 및 직접 구현하여 실시간(OTA) 빠른 배포를 통한 애자일 릴리즈 주기 확보
  • inblog (인블로그)를 활용하여 픽플리 자체 B2B 홍보 및 기술 블로그를 개발, SEO(검색엔진 최적화) 인프라 구축 완료

Result:

  • 앱/웹 서비스(ver.1.6.17 ~ 2.7.3) 풀스택 개발을 주도하며 MAU를 1만 명에서 7만 명으로 성장시키고 누적 45만 유저 트래픽 안정적 대응
  • 검색 노출을 통한 B2B 고객 유입과 비즈니스 지표 상승에 기여하며 성공적인 Pre-A 투자 유치 단계 견인

2. 인프라 재설계 및 배포 자동화

Situation:

  • 수동 배포로 인한 서비스 다운타임이 존재했으며, 분산된 스케줄러로 잦은 병목 및 높은 유지보수 비용 발생

Task:

  • 인프라를 재설계하여 배포를 수동에서 100% 자동화, 다운타임을 없애며 복잡한 운영 오버헤드와 중복 비용 요소의 최적화 도모

Action:

  • CDK를 사용하여 안전한 AWS 인프라 재설계 및 Blue/Green 다운타임 제로 배포 전략 도입
  • Docker 멀티 스테이지 빌드, ECR 캐싱, CodePipeline을 통해 완전 자동화된 CI/CD 파이프라인 구축
  • Fargate, ElastiCache (Valkey) 도입 및 서버리스(Serverless) 기반 ETL 파이프라인 구축

Result:

  • 배포 다운타임 제거 (7초 → 0초) 및 배포 소요 시간 80% 단축 (5분 → 1분)
  • MongoDB 스펙 최적화 보완으로 월 인프라 총비용 57% 이상 절감 ($650 → $280)
  • 서버리스 ETL 파이프라인 월 3,000원 이하 운영 유지

3. 스케줄링 서버 통합 및 마이그레이션

Situation:

  • 메인 서버와 크론/스케줄링 서버가 ALB+EC2로 이중 분리되어 월 $150 이상 추가 비용 발생
  • 메인 서버 장애 시 스케줄링 서버도 무용지물이 되는 단일 장애점(SPOF) 리스크 및 복잡한 HTTP 의존성 존재

Task:

  • 분리된 서버 구조를 통합하여 비용 효율 및 성능 최적화를 이루되, 라이브 서비스의 중단 위험 없는 점진적인 인프라 마이그레이션 필요

Action:

  • 점진적 가중치 기반 트래픽 전환(Blue/Green)을 통해 무중단으로 Fargate로 마이그레이션
  • HTTP API 호출을 내부 서비스 호출로 통합하여 의존성 및 네트워크 레이턴시 제거
  • 15개 피크 시간대에 맞춰 ECS Fargate 예약 스케일링 설정으로 비용 최소화

Result:

  • 중복 인프라 및 DataTransfer 오버헤드 제거로 이중 운영비 50% 절감
  • 관리 포인트 단일화로 SPOF 리스크 해소 및 배포/유지보수 시간 단축

4. 스케줄링 시스템 데이터 유실 및 확장성 문제 해결

Situation:

  • 기존 Node.js의 setTimeout 및 in-memory 기반 작동으로 서버 재시작 및 배포 시 예약된 알림/로직 데이터가 휘발되는 치명적 이슈 발생
  • 오토스케일링 시 큐 분산 처리가 불가하고 여러 인스턴스에서 동시 복구 시 중복 실행(Race Condition) 위험 존재

Task:

  • 서버 재부팅 및 에러 유발 시에도 절대 휘발되지 않으면서, 다중 서버 인스턴스 환경에서도 중복 없이 단 한 번만 실행되는 분산 처리 시스템 구축

Action:

  • BullMQ 기반 메시지 큐 아키텍처로 전환하여 작업을 디스크 레벨 데이터로 영속성 보장
  • Redis SET NX EX 명령어를 활용한 분산 락(Distributed Lock) 구현으로 다중 서버 환경에서 중복 실행 원천 차단
  • @bull-board 대시보드 구축으로 블랙박스 상태였던 큐 내부 상태 시각화 및 에러 재시도(Retry)도입

Result:

  • 서버 재시작 및 배포 중 예약된 작업 유실 사고 0건 달성 (Zero Data Loss)
  • 단일 장애 처리 없이 메인 인스턴스 간 작업 병렬 처리 성공 및 로직 중복 실행 문제 해결

5. MongoDB 부하 병목 및 비용 최적화

Situation:

  • 오토스케일링 과정에서 모든 노드(Primary 포함) 3개가 M20 → M40으로 Scale-Up 되며 월 $300~$400 낭비 발생
  • 데이터 분석 및 풀스캔 성격 배치 작업의 헤비 쿼리로 인해 Primary 통신을 방해하며 실시간 서비스 성능 지연 유발

Task:

  • 트래픽 병목의 원인을 파악/분리하여 불필요한 스케일업을 방지하고 슬로우 쿼리를 튜닝하여 DB 사용의 근본적인 효율성 확보

Action:

  • 분석용 롱-런 트래픽은 ReadOnly(Analytics) Replication Node로 연결 분리 (Read Replica 아키텍처 도입)
  • 조회에 40초가 소요되는 악성 쿼리를 분석하고 Compound Index를 구성하여 복합 조건 Covered 쿼리로 최적화
  • PIT(Point-In-Time) 백업을 일 단위 스냅샷 백업으로 변경하여 스토리지 낭비 감축

Result:

  • DB 인프라 월 비용을 $400 → $120 수준으로 스펙 다운그레이드 및 70% 절감 (M30 → M10)
  • 40초 이상 소요되던 분석 쿼리를 0.1초 미만으로 단축하여 부하 완벽히 해소

Copyright © Dohyeong Lee
All Rights Reserved.