NEON
소개
행사 관리 플랫폼 '네온'
[프로젝트 소개]
- 행사를 생성하고 관리할 수 있도록 도와주는 웹 서비스를 개발
- 행사 주최의 모든 과정을 이 안에서 수행하는 것이 목표
- 기획자나 스태프 등의 인력을 중개
- 티켓팅과 결제 기능
- 그룹 채팅 기능
[그룹 채팅 시스템]
- 예산 $50
- 500명이 동시에 그룹 채팅을 할 수 있도록 구현 (오프라인 이벤트 대비)
- 모니터링을 바탕으로 병목 구간을 파악하고 적절한 개수로 서버를 스케일 아웃한 뒤 부하를 분산하여 구현
[티켓 예매 시스템]
- 예산 $50
- 8000명의 동시 예매를 처리할 수 있도록 구현
- 비동기 메시지 큐를 활용한 배치 처리를 이용
[인증/인가 시스템]
- 모든 요청이 API Gateway를 거치는데 이때 인증 서비스의 JWT 필터를 거치도록 하여 인증을 수행
- 이 과정에서 병목이 발생하지 않기 위해서 캐싱을 도입하여 반복적인 인증 시 지연을 줄임
특징
- 쉽고 빠르게 소규모 온/오프라인 이벤트를 구성할 수 있다.
- …
- 작성 중
관련 프로젝트
Untitled
Tonari
## 프로젝트를 통해 얻은 교훈
나는 기술 스택을 점진적으로 변경하면서 시스템 설계의 중요성과 데이터 기반 의사결정의 가치를 깊이 깨달았습니다. 이 과정은 마치 오래된 건물을 보존하면서 새로운 구조를 추가하는 것과 같았습니다. 처음에는 안정적이고 익숙한 메모리 기반 시스템을 사용했지만, 사용자 수가 급증하면서 기존 구조만으로는 한계에 도달했습니다. 그래서 Redis를 도입해 실시간 데이터 처리를 개선했고, 이어서 Kafka를 도입하여 대용량 메시지 스트리밍을 가능하게 했습니다.
이때 느낀 점은, 새로운 기술을 도입할 때 기존 시스템과의 조화를 이루는 것이 얼마나 중요한지였습니다. 마치 역사적인 건물에 현대적인 확장부를 추가할 때, 원래의 미를 해치지 않으면서도 기능성을 높이는 것처럼 말이죠. 초기에는 Redis와 Kafka의 설정과 운영이 복잡하게 느껴졌지만, 체계적인 접근과 팀원들과의 협업을 통해 문제를 하나씩 해결해 나갔습니다. 이를 통해 마이크로서비스 아키텍처의 중요성을 깨닫게 되었고, 각 기능을 독립된 서비스로 분리함으로써 시스템의 유연성과 유지보수성을 크게 향상시킬 수 있었습니다.
또한, Prometheus와 Grafana를 활용한 실시간 모니터링을 통해 데이터를 기반으로 한 의사결정의 중요성을 체감했습니다. 이는 마치 건물의 각종 센서를 통해 실시간으로 상태를 파악하고, 문제가 발생하기 전에 예방 조치를 취하는 것과 유사했습니다. 데이터 분석을 통해 CPU 사용률이 급격히 상승할 때의 원인을 정확히 파악하고, 그에 맞는 최적화 전략을 세울 수 있었습니다. 이러한 데이터 기반의 접근 방식은 주관적인 판단보다 훨씬 더 신뢰할 수 있는 결정을 내리는 데 큰 도움이 되었습니다.
결국, 이번 프로젝트를 통해 기술 스택의 점진적인 변경이 단순한 업그레이드를 넘어, 전체 시스템의 설계와 데이터 활용 능력을 한층 더 향상시키는 중요한 과정임을 깨달았습니다. 이러한 교훈은 앞으로의 개발 여정에서도 더욱 견고하고 효율적인 시스템을 구축하는 데 큰 자산이 될 것입니다. 기술 변화에 유연하게 대응하며, 체계적인 설계와 데이터 기반의 결정을 통해 사용자들에게 신뢰할 수 있는 서비스를 제공하는 개발자로 성장할 수 있었습니다.
---
이번 프로젝트는 주니어 개발자로서의 성장과 잠재력을 확인하는 중요한 경험이었으며, 기술적 변화와 체계적인 설계, 데이터 기반의 의사결정을 통해 문제 해결 능력을 크게 향상시킬 수 있었습니다. 앞으로도 이러한 경험을 바탕으로 지속적으로 학습하고 도전하며 더욱 발전하는 개발자가 되겠습니다.
- 기술 스택을 점진적으로 변경하며 얻은 교훈
- 시스템 설계의 중요성 깨달음
- 데이터 기반 의사결정의 중요성
redis-cluster
MonotoMSA
웹소켓 채팅
모니터링
Conventional Commit and PR