[Miro 설계 보러가기] Spring 최종 프로젝트 - Miro
Miro | The Visual Workspace for Innovation
Miro is a visual workspace for innovation where teams manage projects, design products, and build the future together. Join 60M+ users from around the world.
miro.com
1. 프로젝트 주제 선정
최종 프로젝트 주제를 고민하면서
단순 CRUD가 아닌, 비즈니스 로직과 확장성을 고려할 수 있는 서비스를 기준으로 선정했다.
특히 다음 요소를 중심으로 판단했다.
- 결제 기능 포함 가능 여부
- 동시성 문제 발생 가능성
- 캐싱 / 성능 개선 포인트 존재 여부
- 향후 AI 또는 외부 시스템과 연동 가능 여부
단순 기능 구현이 아니라 데이터 흐름과 확장성 중심으로 접근하고자 했다.
2. 도메인 설계 진행
기능 구현 전에 도메인 중심으로 구조를 먼저 정의했다.
- 핵심 도메인 식별
- 각 도메인의 역할과 책임 분리
- 사용자 흐름 기반 관계 설계
특히 단순 기능이 아니라
데이터가 어떻게 생성되고 축적되는지를 중심으로 고민했다.
예를 들어,
- 사용자 수 대비 데이터 증가량 (유저 10명 → 데이터 100건 이상)
- 특정 시점에서 데이터가 급증하는 구간
- 어떤 데이터가 핵심 데이터가 되는지
설계를 데이터 관점에서 바라보는 연습을 했다.
3. 대용량 데이터 처리 관점 고민
튜터님의 피드백을 통해
단순 기능 구현보다 대용량 데이터 처리와 관리가 중요하다는 것을 인지했다.
특히 다음과 같은 부분을 고민했다.
- 공공 데이터 / 외부 데이터 활용 가능성
- 데이터 정제 및 불필요 컬럼 제거
- 대량 insert 처리 방식 (예 : 수천만 ~ 1억 건)
- 데이터 처리 자동화 (파이프라인)
단순히 저장하는 것이 아니라
데이터를 어떻게 관리하고 흐르게 할 것인지에 대한 고민으로 확장되었다.
4. 성능 설계의 중요성
서비스 설계에는 반드시 성능에 대한 근거가 필요하다는 점을 배웠다.
- 예상 트래픽 기반 데이터 규모 산정
- 병목이 될 수 있는 쿼리 예측
- 모니터링 및 부하 테스트 필요성
또한 이를 해결하기 위한 기술 요소를 함께 고려했다.
- 인덱스
- 캐싱
- 샤딩 등 확장 전략
단순히 기술을 적용하는 것이 아니라
"왜 이 기술을 선택했는지 설명할 수 있는가"가 중요하다는 것을 느꼈다.
5. 설계를 통해 느낀 점
이전에는 기능 중심으로 접근했다면,
이번에는 데이터 흐름과 성능을 함께 고려하는 설계를 경험할 수 있었다.
특히 다음과 같은 고민을 하게 되었다.
- 데이터가 많아질 때 어떻게 대응할 것인지
- 선택한 기술의 한계와 개선 방향은 무엇인지
단순 구현을 넘어
실제 서비스 환경을 고려한 설계를 지속적으로 경험해보고자 한다.
'Fivefy 프로젝트 > 설계' 카테고리의 다른 글
| Playback 도메인 설계 고도화 (행동 중심 enum을 상태 중심으로 재정의한 이유) (0) | 2026.04.15 |
|---|---|
| 재생 시스템 설계에서 sessionId 기반 로그 구조를 선택한 이유 (0) | 2026.04.08 |
| 플레이리스트 설계에서 트랙 중복을 허용하지 않은 이유 (1) | 2026.04.08 |
| 데이터 흐름 중심으로 설계한 음악 서비스 아키텍처 (도메인·ERD·API) (0) | 2026.04.08 |
| 서비스 설계 과정에서의 주요 의사결정과 개선 과정 (0) | 2026.04.08 |