Next.js, REST API 및 보안 쿠키를 사용하여 Spotify 통합 구축하기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 웹 개발자, 프론트엔드/백엔드 개발자, API 통합에 관심 있는 개발자
  • 중급 이상의 Next.js 및 REST API 경험을 가진 개발자

핵심 요약

  • Next.js (App Router) 및 Spotify Web API를 사용한 실시간 음악 데이터 통합
  • HTTP-only 쿠키와 JWT (JSON Web Token)을 활용한 보안 인증 구현
  • Dev.to API 연동을 통한 블로그 자동 업데이트 기능 도입
  • 프로덕션 환경에서의 환경 변수 관리 및 API 타입 안전성 강화

섹션별 세부 요약

1. 프로젝트 목적

  • 사용자의 음악 활동 (현재 플레이 중인 곡, Top Tracks, 연결된 디바이스)을 웹사이트에 실시간으로 표시
  • Dev.to API 연동으로 포트폴리오 내 블로그 자동 업데이트 기능 구현
  • 사이트의 개인화 및 상호작용성 향상

2. 사용 기술

  • Next.js (App Router): 프론트엔드/백엔드 통합 개발
  • TypeScript: 타입 안전성 및 유지보수성 강화
  • Spotify Web API: 음악 데이터 및 디바이스 정보 접근
  • HTTP-only 쿠키: 액세스 토큰 및 리프레시 토큰 보안 저장
  • JWT: 자동 세션 업데이트 및 인증 관리
  • Axios: Spotify API 요청 처리
  • Dev.to API: 블로그 자동 업로드 기능

3. 보안 구현

  • HTTP-only 쿠키: JavaScript 접근 제한으로 민감 정보 보호
  • JWT 기반 세션 관리: /api/refresh 엔드포인트를 통한 자동 세션 갱신
  • 환경 변수 관리: Vercel 등 프로덕션 환경에서의 Environment variable not found 오류 대응

4. 기술 학습 포인트

  • 외부 API 타입 안전성 강화: any 타입 사용 제거 및 dotenv 활용
  • 쿠키 검증: 로그인 버튼 조건부 표시를 위한 쿠키 검증 로직
  • 데이터 처리 fallback: 누락된 데이터에 대한 대체 처리 로직 구현

5. 향후 개선 방향

  • SWR 또는 React Query 활용: 캐시 및 성능 최적화
  • 관리자 대시보드 추가: 음악 데이터 관리 기능 구현
  • YouTube Music 연동: 대체 음악 플랫폼 통합
  • 블로그 확장: 클린 아키텍처, NestJS, Docker + AWS 자동화 관련 콘텐츠 추가

결론

  • Next.js, Spotify Web API, JWT 기반의 보안 인증 구현은 웹 애플리케이션에서 실시간 데이터 통합과 사용자 인증에 유용
  • Dev.to API 연동은 포트폴리오의 블로그 관리 효율성 향상에 기여
  • 프로덕션 환경에서의 환경 변수 관리 및 타입 안전성 강화는 필수적인 개발 실천 요소