프로젝트 목표 - LeeEuyJoon/lilling-be GitHub Wiki
1. 시스템 설계부터 구현까지의 End-to-End 경험 축적
Lilling 프로젝트는 『가상 면접 사례로 배우는 대규모 시스템 설계 기초』 스터디에서 출발한 실습형 프로젝트이다.
스터디의 취지에 따라 단순한 아이디어 수준의 설계에 그치지 않고,
실제 서비스 수준으로 동작 가능한 시스템을 설계하고 이를 직접 구현까지 이어가는 것을 핵심 목표로 한다.
이를 통해 다음과 같은 경험을 얻는 것을 지향한다.
- 요구사항을 바탕으로 한 전체 시스템 구조 설계
- 트래픽 규모를 고려한 컴포넌트 분리 및 책임 정의
- 설계 결과를 실제 코드, 인프라, 배포 파이프라인까지 연결하는 일련의 과정 경험
2. URL Shortener 도메인에 대한 심화 이해 및 노하우 축적
Lilling은 URL Shortener 도메인을 중심으로 한 프로젝트로, 짧은 URL을 고유하게 생성하는 로직 설계라는 기술적 포인트에 집중한다.
본 프로젝트는 UI/UX나 서비스 기능 확장보다는,
도메인 로직의 완성도와 설계 품질을 중점적으로 다룬다.
3. 대규모 트래픽 처리를 위한 시스템 확장 전략 및 검증
프로젝트의 계략적 추정치에 따르면,
서비스는 초당 수천 건의 쓰기 요청과 수만 건의 읽기 요청을 처리해야 한다.
이에 따라 Lilling은 대규모 트래픽을 안정적으로 처리할 수 있는 구조를 설계하고, 필요한 부분에 대해 실험적 검증을 수행하는 것을 목표로 한다.
이 과정에서 다음과 같은 요소들을 고려하거나 실험적으로 적용할 수 있다.
- 로드 밸런싱 (Load Balancing)
- 요청 분산을 통한 서버 확장 가능성 검토
- 데이터베이스 최적화 (DB Optimization)
- 인덱싱, 파티셔닝, 샤딩 등 성능 향상 전략 탐색
- 캐싱 전략 (Caching Strategy)
- Redis 등 메모리 기반 캐시를 활용한 읽기 성능 개선 방안 검토
- 부하 테스트 (Load Testing)
- JMeter / K6 등을 이용한 시스템 한계 및 병목 구간 검증
- 오토스케일링 및 장애 복원 (Auto Scaling & Failover)
- 분산 환경 운영 시 안정성을 높이기 위한 아키텍처적 고려
이를 통해 Lilling은 단순히 작동 가능한 수준을 넘어서,
대규모 트래픽 환경에서도 안정적으로 운영 가능한 시스템 설계에 대한 실험적 인사이트를 확보하는 것을 목표로 한다.