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: 각 레이어별로 독립적인 테스트 가능