김태윤

Backend Developer

Email [email protected]

Github https://github.com/pykido

Blog https://animoto1.tistory.com

김태윤_증명사진.png

About Me


코드몬스터(CodeMonster) - 코딩테스트 스터디 플랫폼

작업 기간 2025.02 ~ 현재 (운영중)
인력 구성 백엔드 2, 프론트엔드 2, PM 2, 디자이너 1, 마케터 1
프로젝트 목적 코딩 테스트를 꾸준히 준비하기 어렵다는 문제를 해결하고, 개발자들이 함께 성장할 수 있는 온라인스터디 플랫폼 제공
주요 업무 및 상세 역할 역할 : 백엔드 개발, 인프라 운영 및 서비스 기획
• 빠른 성장과 안정적인 운영 : 서비스 출시 3개월 만에 130명 이상의 활성 사용자 확보
• 스터디 관리 시스템 설계 : 팀별 학습 피드백 제공, 문제 풀이 공유
• 확장 가능한 아키텍처 구축 : 모니터링과 로깅을 쉽게 할 수 있는 대시보드 구성
• AWS 기반 인프라 구축 : EC2, RDS, S3, Github Action 등을 이용한 CI/CD 구축과 블루-그린을 통한 무중단 배포 환경 구축
개발 환경 Java, Spring Boot, JPA, MySQL, AWS (EC2, RDS, S3), Github Actions, Nginx
참고 자료 서비스 주소 : https://codemonster.site
Backend Github : https://github.com/PNUMeat/comon-be
Frontend Github : https://github.com/PNUMeat/comon-fe

스크린샷 2025-11-14 오후 7.43.25.png

스크린샷 2025-11-14 오후 7.43.59.png

스크린샷 2025-11-14 오후 7.45.22.png

헤커톤과 공모전을 경험하며 대회가 끝나면 서비스도 함께 종료되는 패턴에 늘 아쉬움을 느꼈습니다. **‘대회용이 아닌, 실사용자가 쓰는 서비스를 만들고 싶다’**는 생각으로 카카오테크캠퍼스 2기 팀원들과 프로젝트를 시작했습니다. APPTIVE 개발 동아리에서 마케터, PM, 디자이너를 영입해 팀을 구성하고, 코딩 테스트 준비의 핵심 과제인 ‘꾸준한 학습’을 돕는 온라인 스터디 플랫폼을 기획했습니다. 그 결과 출시 3개월 만에 150명 이상의 활성 사용자를 확보했으며, 지금도 안정적으로 서비스를 운영하고 있습니다.

사용자가 가파르게 증가함에 따라, 새로운 기능을 배포할 때마다 발생하는 서비스 중단 시간과 수동 배포의 리스크를 해결해야 했습니다. 초기에는 매번 직접 EC2에 접속해 git pull과 빌드를 수행하였으나 이를 개선하기 위해 GitHub Actions와 Nginx를 활용한 Blue-Green 무중단 배포 아키텍처를 구축했습니다. Blue-Green 방식의 무중단 배포 아키텍처 구현 이전에 AWS ECS를 활용한 롤링 업데이트 방식을 구현해 본 경험이 있었으나, 현재 '코드몬스터'의 서비스 규모와 t2.micro 기반의 단일 서버 인프라를 고려했을 때 ECS 유지 비용과 오버헤드가 크다는 점을 확인했습니다. 이에 따라 별도의 관리형 서비스 없이도 셸 스크립트와 Nginx 포트 스위칭만으로 자원 효율을 극대화하면서 안정성을 확보할 수 있는 Blue-Green 전략을 직접 설계했습니다. 이를 통해 인프라 비용 증액 없이 가용성을 높게 유지할 수 있었고, 배포 시점과 관계없이 팀원들이 자유롭게 기능을 업데이트할 수 있는 환경을 완성했습니다.

프로젝트 초창기에 적용한 기존 Multipart 방식의 이미지 업로드는 클라이언트 → 백엔드 → S3로 두 번의 네트워크 전송을 거쳐야 했고, 게시글 수정 시 기존 이미지와 신규 이미지의 순서를 추적하는 로직이 복잡했습니다. 이를 개선하기 위해 S3 Presigned URL을 도입해 클라이언트가 S3에 직접 업로드하도록 변경했습니다. 백엔드는 URL 발급과 유효성 검증만 담당하게 되어 게시글 등록 API 응답 시간이 236ms에서 18ms로 약 10배 향상되었습니다. 또한 이미지 메타데이터를 관리하던 별도 테이블을 제거하고, @Component 기반 마이그레이션으로 수백 개의 기존 게시글 이미지 URL을 안전하게 교체하여 DB 구조를 간소화했습니다. 이를 통해 추후 이미지 기능 추가 시에도 복잡한 업로드 로직 없이 검증에만 집중할 수 있게 되었습니다.