K-Pullup
Korean Pull-up Bar Map using Kakao Map API
System Architecture
Project Purpose
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.
Tech Stack
Go·MySQL·Redis·RabbitMQ·Uber Fx·Bleve·Grafana·Locust·Kakao Map API
Roles
- 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)
Key Achievements
-
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.
Screenshots
Click on images to view them in full size.
Reflection
- 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.