Experience
Backend Engineer · 니콘내콘 모바일 기프티콘 플랫폼 (누적 유저 210만, MAU 30만)
모바일 기프티콘 거래 플랫폼의 백엔드 시스템을 개발·운영합니다. 결제, 주문, 환불, 정산, CMS, 외부 제휴 연동 등 핵심 도메인의 기능 개발과 레거시 개선을 담당합니다. 여러 레포지토리에 분산된 Express 레거시를 NestJS 모노레포로 이관하는 작업에 초기부터 참여해 결제·제휴·공통 도메인 계층을 정리하고, EKS 기반 Kubernetes 운영 환경에서는 배포·모니터링·장애 대응 흐름을 개선하고 있습니다.
핵심 기여
- 결제 완료 이후 상품권 발송 이벤트를 DB 기준으로 추적·재처리 가능한 구조로 전환했습니다. 결제 상태 변경과 메시지 발행이 하나의 원자적 흐름으로 묶여 있지 않아 발행 실패나 프로세스 장애 시 발송 흐름이 끊길 수 있었습니다. 이를 Transactional Outbox 구조로 전환해 결제 상태 변경과 outbox record insert를 하나의 트랜잭션으로 묶었습니다.
- 특정 시간대 cron 부하가 writer RDS에 집중되는 구조를 개선해 CPU 피크를 80% 이상에서 40~60%대로 낮췄습니다. Performance Insights의 Top SQL과 Kubernetes Job 이력을 대조해 상품권 만료 처리, 재고 집계, 정산 cron이 같은 시간대에 겹치는 구조를 확인하고, 실행 시간 분산·chunk size/concurrency 조정·만료 조회 인덱스 점검으로 순간 피크 부하를 낮췄습니다.
- 도메인별로 분산된 레거시 서비스를 NestJS + Turborepo 모노레포로 점진 이관하고 있습니다. 결제·주문·상품권·CMS 도메인과 cron, consumer가 여러 코드베이스에 나뉘어 있어 변경 영향도 추적이 어려웠고, CMS와 신규 앱 기능부터 모노레포로 이관하며 공통 도메인 계층과 변경 범위를 정리하고 있습니다.
- 뱅크샐러드 제휴 오픈 TF를 리드해 신규 유입 채널을 확보했습니다. 제휴사 규격에 맞춘 상품 조회, 주문 생성, 사용자 보유 상품권 확인, 상태 동기화 기준을 정리하고 백엔드 구현과 오픈 대응을 주도했습니다. 이후 네이버 가격비교와 웰컴페이먼츠 연동도 함께 리드했습니다.
- 운영 문서를 기반으로 AI 봇을 추가해 반복 대응을 표준화했습니다. CS 유형별 확인 순서, 관련 주문·상품권 상태, 보정 기준, 고객 안내 주의사항을 문서화하고, Slack에서 질문하면 정리된 문서 컨텍스트를 바탕으로 AI 봇이 처리 방향과 확인 항목을 안내하는 흐름을 도입했습니다.
TypeScript
NestJS
Express
Turborepo
MySQL
Redis
OpenSearch
Kubernetes
Helm
ArgoCD
Docker
AWS SQS
Grafana
Backend Engineer · 탈중앙화 생체인증 및 보안 솔루션
탈중앙화 생체인증 기술을 활용한 무인 출입·근태·결제 시스템을 개발했습니다. 모바일 단말 중심의 생체 비교 흐름이 가진 보안·속도 한계를 발견하고, 인증 플로우를 키오스크 장치 중심으로 재설계했습니다. 이후 인증 결과가 ESP32 디바이스, 스피드게이트, 근태·결제 흐름으로 이어지는 백엔드 구조와 운영 기반을 구축했습니다. 해당 제품은 CES 2024 혁신상과 CES 2025 최고 혁신상을 수상했습니다.
핵심 기여
- .NET 레거시 시스템은 DB Stored Procedure에 비즈니스 로직이 집중되어 디버깅·모니터링·배포 단위 분리가 어려웠습니다. 이를 NestJS 애플리케이션 계층과 RDS 데이터 계층으로 분리하고 ECS/Fargate 기반으로 운영해 AWS 비용을 약 40% 절감했습니다.
- 모바일 단말 분산 비교 방식의 보안·응답 안정성 한계를 개선하는 키오스크 인증 플로우를 제안·설계했고, 해당 방식은 특허로 등록되었습니다. 기존 방식은 인증 시점에 여러 사용자 단말의 비교 결과를 수집해야 해, 인증 대상이 늘어날수록 민감한 데이터의 전달 범위와 단말 응답 의존도가 커질 수 있었습니다. 이를 개선하기 위해 근접 사용자의 인증 기준 데이터를 사전에 암호화해 키오스크 장치에 준비하고, 인증 순간에는 장치 내부 기준 데이터와 입력 데이터를 비교하는 플로우를 설계했습니다.
- 개발팀 리더로 백엔드·프론트엔드·Windows 클라이언트 개발을 조율하고 스프린트 기반 협업 체계를 정착시켰습니다. 백엔드 2명, 프론트엔드 3명, Windows 클라이언트 1명과 함께 개발하는 구조에서 Jira를 도입해 스프린트 단위로 요구사항과 작업을 관리하고, 코드 리뷰와 개발 문서화를 정착시켰습니다.
- 서버 인증 결과가 현장 출입 장치까지 이어지는 실시간 제어 흐름을 구현했습니다. 인증 결과, 디바이스 상태, 출입 제어 명령이 어긋나면 사용자는 인증에 성공했지만 문이 열리지 않는 경험을 하게 되고, 운영자는 실패 지점을 추적하기 어려웠습니다. ESP32 기반 디바이스 소프트웨어와 스피드게이트·도어락 통신을 구현하고, Firebase RTDB/MQTT 기반 상태 동기화 흐름을 구성했습니다.
- 외부 본인인증·결제 SDK 제약을 핵심 서버와 분리해 연동 서버로 구성했습니다. 본인인증과 결제 모듈은 C/Java SDK 중심으로 제공되어 Node.js/NestJS 핵심 서버에 직접 섞기 어려운 제약이 있었습니다. 이를 모노레포 내 Spring Boot 연동 서버로 분리해 외부 SDK 런타임과 핵심 비즈니스 로직의 책임을 나눴습니다.
TypeScript
NestJS
Spring Boot
Java
ASP.NET
PostgreSQL
MongoDB
Redis
MQTT
Firebase
ESP32
AWS ECS/Fargate
GitHub Actions
React
Full Stack Engineer · SNS 기반 주식 매매 플랫폼
누적 다운로드 45만 건, 계좌 개설 4만 건을 달성한 SNS 기반 주식 매매 플랫폼에서 초기 제품 검증과 실서비스 운영 구간의 백엔드, Android MVP, 증권사 API 연동, 실시간 시세 전달 구조를 담당했습니다. 계좌 개설·매매·실시간 시세처럼 사용자 신뢰에 직접 영향을 주는 기능은 증권사별 예외와 트래픽 변동을 백엔드에서 흡수하는 방향으로 설계했습니다.
핵심 기여
- 신한/NH/KB/삼성증권 API를 연동하며 증권사별 응답 형식, 상태값, 예외 흐름 차이를 백엔드에서 흡수해 일관된 계좌 개설·매매 플로우로 제공했습니다.
- 총 5번의 주식 계좌 개설 이벤트를 담당하며, 보상 지급 흐름을 큐 기반 후속 처리로 분리했습니다. 계좌 개설 이벤트는 참여 조건 검증, 외부 증권사 상태 확인, 보상 지급, 사용자 알림이 한 흐름에 연결되어 있었습니다. 이를 동기 요청 안에서 모두 처리하면 외부 응답 지연이나 일시 실패가 사용자 경험과 중복 지급 위험으로 이어질 수 있다고 보고 큐 기반 후속 처리로 분리했습니다.
- 초기 Android 앱 MVP를 1인 개발해 백엔드 개발만 기다리던 출시 병목을 줄이고, 앱 출시 일정을 약 1개월 단축했습니다.
- 실시간 주식 시세 전달 범위를 종목 구독 기준으로 줄여 반응 속도 30% 개선, 서버 부하 40% 이상 절감에 기여했습니다. Socket.IO 구독 채널을 종목 단위로 정리하고, Redis를 통해 서버 인스턴스 간 시세 데이터를 공유하도록 개선해 필요한 사용자에게만 시세 이벤트가 전달되도록 조정했습니다.
Node.js
TypeScript
Socket.IO
Redis
MySQL
Android(Java)
AWS Lambda
EventBridge
ECS/Fargate
SQS
AWS SNS
Slack API
Backend Engineer · 스마트 공장 제조공정 시각화 솔루션
스마트 공장 제조공정 시각화 솔루션인 IFIS 미니/프로에서 생산, 재고, 주문, 품질, 모니터링 기능과 고객사별 커스텀 연동 API를 개발했습니다. 표준형 패키지 기능과 고객사 요구사항에 맞춘 커스텀 기능을 함께 다루며, 공장 운영 데이터가 대시보드와 외부 업무 시스템에 반영되는 구조를 구현했습니다.
핵심 기여
- WebSocket 기반 설비 상태 전달 구조를 구현해 공정 상태 반영 지연을 줄였습니다. 기존 폴링 방식은 설비 상태 반영이 늦고 장애 알림이 지연될 수 있었습니다. WebSocket 기반으로 설비 상태 변경을 전달하는 구조를 구현해 현장 상태가 대시보드에 더 빠르게 반영되도록 개선했습니다.
- Lambda cold start 병목을 개선해 초기 응답 시간을 600ms에서 100ms로 줄였습니다. AWS Lambda 기반 API에서 초기 호출 시 응답 지연이 발생하는 문제를 확인하고, EventBridge warm-up 트리거를 도입했습니다.
- IFIS 미니/프로의 생산·재고·주문·품질 관리 기능과 고객사 커스텀 기능을 개발했습니다. 사용자 관리, 기준정보, 주문, 재고, 생산, 품질, 모니터링, 엑셀 업로드/다운로드, 바코드, 고객 주문 화면 등 공장 운영 기능의 API를 개발하고 고객사별 커스텀 기능을 구현했습니다.
Node.js
TypeScript
Python
AWS Lambda
API Gateway
WebSocket
DynamoDB
S3
CloudWatch