K-Pullup

Korean Pull-up Bar Map using Kakao Map API

2024.02 - Ongoing Maintenance· 1 BE, 1 FE· Backend Lead

System Architecture
System Architecture

To help fitness enthusiasts easily find and share pull-up bar locations across Korea. This map-based service enables bodyweight exercise enthusiasts to discover pull-up bars anywhere and share new location information with the community.

Go·MySQL·Redis·RabbitMQ·Uber Fx·Bleve·Grafana·Locust·Kakao Map API

  • Backend Architecture Design
  • MySQL Spatial Data Optimization
  • Redis Caching System Implementation
  • WebSocket Chat System
  • Performance Monitoring (Grafana)
  • Profanity Filtering Algorithm
  • Load Testing (Locust)
  • Message Queue System (RabbitMQ)
  • Massive MySQL Spatial Query Optimization

    Analyzed inefficient spatial queries and redesigned index strategy, achieving 66x cost reduction and 85% response time improvement. User experience in location-based searches was significantly enhanced.

  • High-Performance Profanity Filtering System

    Applied Double AhoCorasick algorithm to improve profanity filtering speed from 4,858ms to 1.1ms for 10KB Korean text. Optimized to handle real-time chat processing instantly.

  • Large-Scale Real-time Chat System

    Built Redis-based WebSocket chat system handling 1,000 concurrent users and processing 1 million messages in 5 minutes. Achieved TPS 3,548 with scalable chat infrastructure.

  • Proactive Monitoring System

    Implemented comprehensive monitoring with Prometheus + Grafana to detect anomalies in long-running tasks in real-time and proactively resolve resource issues like memory leaks.

Click on images to view them in full size.

What I Learned
I gained deep knowledge of Go's concurrency capabilities and spatial database optimization. Particularly learned practical MySQL spatial indexing techniques and Redis-based real-time data processing optimization. Also experienced the importance of monitoring for handling large-scale traffic.
Areas for Improvement
Not considering scalability sufficiently in the initial design phase led to mid-project architecture refactoring. Also, more active collection of user feedback for UX improvements could have been better implemented.
Future Plans
Plan to introduce AI-powered automatic pull-up bar detection and workout routine recommendation system. Also want to enhance community features to develop into a social platform where users can more actively share workout information.