Hexagonal Architecture
1. 다양한 외부 시스템 통합 요구 사항
- F1 Open API: 실시간 레이스 데이터, 드라이버 정보, 팀 정보
- OAuth 제공자: Google, Kakao, Naver 등 SNS 로그인
- 데이터베이스: 사용자 정보, 팔로우 관계 저장
- 향후 확장: 푸시 알림, 이메일 서비스, 파일 스토리지 등
2. 비즈니스 로직의 복잡성
- 팔로우 시스템: 사용자가 특정 팀/드라이버를 팔로우할 때의 규칙
- 개인화된 데이터: 팔로우한 팀의 최신 정보 우선 표시
- 알림 로직: 팔로우한 팀의 레이스 결과, 뉴스 알림
- 권한 관리: 프리미엄 사용자vs일반 사용자 기능 차별화
3. 점진적 확장과 기술 스택 변경
현재 (MVP)
- REST API로 F1 데이터 제공
- 기본적인 OAuth 로그인
- 단순한 팔로우 기능
미래 확장 가능성
- 실시간 기능: WebSocket으로 라이브 레이스 업데이트
- 마이크로서비스: 사용자 관리, F1 데이터, 알림 서비스 분리
- 캐싱: Redis로 자주 조회되는 데이터 캐싱
- 검색: Elasticsearch로 드라이버/팀 검색 기능
6. 실제 개발 워크플로우 개선
- Frontend 개발자: Port 인터페이스만 보고 API 스펙 이해 가능
- Backend 개발자: 외부 API 변경 시 Adapter만 수정
- QA: 각 레이어별로 독립적인 테스트 가능