개요
Elite Digital은 여러 프로젝트를 동시에 빠르게 진행하는 디지털 마케팅 에이전시입니다.
지난 2년 동안 30개 이상의 클라이언트 프로젝트에 참여하며, 대규모 마케팅 캠페인부터 복잡한 레거시 시스템까지 다양한 서비스를 경험했습니다.
개발자는 특정 프로젝트에 고정되지 않고, 업무 상황과 기술 적합도에 따라 여러 프로젝트를 오가며 작업합니다. 이 과정에서 새로운 코드베이스와 프로젝트 구조를 빠르게 이해하고, 짧은 일정 안에서 안정적으로 결과를 내는 것이 중요했습니다.
업무 내용
Elite Digital에서 풀스택 개발자로 근무하며 여러 개의 서비스를 동시에 담당하였습니다. 주 단위로 평균 5~10개의 서비스를 동시에 관리하며 클라이언트 요청에 맞추어 새 기능을 추가하고, 반복적으로 발생하는 오류와 예외 처리 로직을 개선해 재발을 줄이고, 장애 대응 프로세스를 정리하여 대응 속도를 높였습니다.
주요 업무:
- Next.js, React, Vite 기반 웹 애플리케이션 개발 및 유지보수
- Node.js, Express, NestJS, Prisma 기반 백엔드 개발
- MongoDB, MySQL 운영 환경에서 데이터 처리
- Vercel, FlyWheel 등의 환경에서 배포 및 운영 대응
- 운영 중인 서비스의 버그 수정 및 장애 대응, 레거시 시스템 유지보수
주요 프로젝트
1. VoIP 메시징 서비스
웹, 어드민, 백엔드, 모바일(iOS/Android)을 포함한 메시징 플랫폼의 주요 유지보수를 담당했습니다.
서비스 안정화
서비스 인수 직후, 연말에 서비스 이용 빈도수가 높아지며 백엔드 장애가 발생하였습니다.
문제 원인:
- Prisma 인스턴스 중복 생성
- DB read/write 설정 오류
- 비효율적인 전체 메시지 및 연락처 조회 쿼리
- 프론트엔드에서의 중복 API 요청
- 비효율적인 로깅 환경
대응:
- Prisma를 단일 인스턴스로 재구성
- DB 라우팅 설정 수정
- 주요 쿼리 분석을 통해 병목 구간 식별 및 최적화
- 중복 요청 제거
- 로깅 개선
해당 패치 이후 서비스 장애가 해결되었고, 이후 서비스 응답 속도가 개선되고 DB 부하가 줄어들었음을 확인할 수 있었습니다.
인프라 이전
비용 절감을 위해 AWS에서 DigitalOcean 및 Vercel으로 인프라를 이전하는 작업에 참여했습니다.
- AWS 의존 로직을 분석하고 새로운 인프라 구조에 맞게 수정
- staging 환경 검증
- 약 5시간의 실시간 운영 이전 참여
- 이전 과정에서 실시간 테스트 및 hot-fix 대응
위의 과정을 거쳐 큰 문제 없이 성공적으로 인프라 이전을 마칠 수 있었습니다.
이전 이후에도 모니터링을 지속하며, 파일 업로드 제한, 어드민 쿼리 오류 등의 인프라 변경으로 발생한 문제를 신속하게 파악 후 해결했습니다.
유지보수 및 서비스 개선
서비스의 주요 유지보수 담당으로서, 아래의 역할을 수행했습니다:
- 클라이언트와 소통 및 요청에 대응
- 분산되어 있던 결제 로직을 Stripe 기반으로 통합
- 운영 중 발생하는 버그를 지속적으로 대응
- React Native 기반 모바일 앱을 최신 스토어 정책에 맞게 업데이트하고 SDK 의존성 문제 해결
2. 레거시 데스크탑에서 웹 앱 전환
15년 이상 운영된 Delphi 기반 데스크탑 시스템을 웹 환경으로 전환하는 프로젝트의 개발을 주도했습니다.
주요 업무:
- 문서화되지 않은 기존 로직 및 데이터 구조 분석
- Firebird 기반 데이터베이스를 MySQL 기반 데이터 모델으로 재설계 및 마이그레이션 로직 구현
- 레거시 코드와 데이터베이스의 보안 및 구조적 문제 개선
- 웹 앱 개발 및 데이터베이스 마이그레이션 계획
기술 스택:
- 프론트엔드: React, Vite, Tailwind, Redux
- 백엔드: Node.js, Express, Prisma
- 데이터베이스: MySQL
해당 프로젝트를 진행하는 동안 기존 서비스의 로직을 최대한 유지하는 방향으로 진행하려 노력했고, 향후 유지보수를 고려하여 최대한 문서화하기 위해 노력했습니다.
3. 콘테스트 플랫폼
Next.js 기반의 contest baseline을 활용해 여러 마케팅 캠페인을 개발 및 런칭하였습니다.
주요 내용:
- 짧은 일정 내 캠페인별 커스터마이징 구현
- 디자인, PM, 클라이언트 QA 피드백 반영
- 성능, 접근성, SEO 기준 유지
- 신규 캠페인 세팅 및 개발 시간을 줄이기 위하여 contest baseline 구조 개선
추가 작업:
- AI 기반 영수증 검증 기능 구현 (중복 및 부정 제출 방지)
- IP 기반 rate limiting 및 이상 탐지 기능 추가
- 다양한 캠페인 요구사항을 대응할 수 있도록 설정 구조 개선
- MongoDB에서 Supabase(PostgreSQL)으로 이전할 수 있는 로직 구현
여러 캠페인을 동시에 운영하면서도 안정성을 유지했습니다.
협업 및 프로세스 개선
개발팀 내 정보 공유 부족 문제를 인지하고 프로젝트별로 분산되어 있던 정보를 정리하기 위해 개발팀 Wiki 도입을 주도했습니다.
- 프로젝트 및 기술 문서 정리
- 정보 공유 방식 표준화
- 신규 팀원 온보딩 효율 개선
- 업무 효율을 높이기 위해 자주 사용하는 기능 및 QA 툴 개발
또한 PR 템플릿을 도입해 코드 리뷰 기준을 정리하고, 협업 과정의 일관성을 높였습니다.