Skip to content

SeungHun333/hackerton5-reallyeasy-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 영화 리뷰 서비스 - 백엔드 README

📌 기술 소개

  • Language: Java17
  • Build: Gradle 8.10
  • 데이터베이스 쿼리 & ORM: Spring Data JPA
  • Framework: Spring Boot 3.4.5
  • Database: MySql
  • Security: Spring Security, JWT
  • 배포: AWS - EC2, RDS
  • API 문서화: Swagger 2.2.0

🛠️ 서비스 소개

본 서비스는 🎬 영화 리뷰 및 커뮤니티 플랫폼입니다.
사용자는 회원가입 후 영화에 대한 별점과 리뷰를 남길 수 있으며,
리뷰를 기반으로 다른 사용자들과 자유롭게 의견을 나눌 수 있는 커뮤니티 기능도 제공합니다.

  • TMDB 영화 API를 기반으로 최신 영화 정보를 확인하고
  • 영화에 대한 개인적인 의견을 공유하거나
  • 다른 사용자들의 리뷰를 읽고 소통할 수 있습니다.

간단하고 직관적인 UI로 누구나 쉽게 영화에 대해 이야기할 수 있는 공간을 제공합니다.

✅ 주요 기능

🎬 영화 리뷰 기능

  • 🧑‍💻 회원가입 / 로그인
    • Spring Security 와 JWT 토큰 인증
  • 🎞️ 영화 목록 조회
    • TMDB API(영화 API)를 스케쥴링 하여 내부 DB에 저장
    • 목록 조회할 때마다 저장된 영화 정보를 불러옴
  • 📽️ 영화 상세 조회
    • 불러온 영화를 누르면 해당 영화의 상세 정보 확인
  • ✍️ 리뷰 작성
    • 상세 조회 시 해당 영화의 별점 및 리뷰 작성 기능

💬 커뮤니티 기능

  • 📝 게시글 작성
    • 자유롭게 글을 작성할 수 있는 게시판 제공
  • 📚 게시글 목록 및 상세 조회
    • 게시글 제목, 내용, 작성자, 작성일 등 확인 가능
  • 💬 댓글 작성 및 삭제
    • 게시글에 댓글을 달아 사용자 간 소통 가능
  • 🧹 게시글/댓글 삭제
    • 본인 글 또는 댓글 삭제 기능 제공
  • 🔍 검색 기능
    • 키워드로 게시글 검색 가능

🐞 트러블슈팅

🔐 JWT 토큰을 쿠키에 담았을 때 CORS 문제 발생

문제 상황
초기 로그인 구현 시 JWT 토큰을 쿠키(HttpOnly) 에 담아 응답했으나,
클라이언트(React)와 백엔드(Spring Boot) 간 도메인이 다를 경우
CORS 정책에 의해 쿠키가 제대로 전달되지 않는 문제가 발생함.

원인 분석

  • CORS 정책상 credentials 옵션(withCredentials)을 설정하지 않으면 브라우저가 쿠키를 차단함.
  • 또한 SameSite 속성과 Secure 설정 등 브라우저 보안 정책과도 충돌 가능.

해결 방법
JWT 토큰을 쿠키 대신 HTTP 헤더에 담아 전송하도록 수정

  • 프론트엔드에서 Authorization: Bearer <token> 형태로 요청 헤더에 추가
  • 서버 측에서는 필터에서 해당 헤더를 파싱하여 인증 처리

🧱 인프라 구성

📄 ERD

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages