CEOS 23기 백엔드 스터디 - CGV 클론 코딩 프로젝트
영화관 ||--o{ 상영관상영관 ||--o{ 좌석
상영관 ||--o{ 상영일정
영화 ||--o{ 상영일정
상열일정 ||--o{ 예매내역
좌석 ||--o{ 상영일정
사용자 ||--o{ 예매내역
연동 성공(저번주에 이어서..)
erd 다시 그림 h2 실행 connect 하면 이렇게 뜸 테이블 명 한 번 더 보고 인서트 준비 테스트 데이터 insert 영화관 post 영화 post 매점 postJWT -> 로그인한 사용자인지 확인하기 위해 사용하는 토큰 방식
사용자가 로그인하면 서버가 토큰을 만들어 주고, 사용자는 이후 요청마다 이 토큰을 함께 보내서 자신을 인증함
- 실제 API 요청할 때 쓰는 토큰
- 보통 유효기간이 짧다
- Access Token이 만료됐을 때 새 Access Token을 받기 위해 쓰는 토큰
- Access Token보다 보통 더 오래 간다
- 서버가 로그인 상태를 따로 많이 저장하지 않아도 된다
- 모바일 앱이나 프론트/백 분리 구조에 잘 맞는다
- 토큰이 탈취되면 위험할 수 있다
- 한 번 발급된 토큰은 바로 무효화하기가 어렵다
쿠키 -> 브라우저에 저장되는 작은 데이터
로그인 정보를 유지할 때 많이 사용된다.
세션 -> 서버가 로그인 상태를 저장하는 방식
브라우저는 보통 쿠키에 담긴 세션 ID를 보내고, 서버는 그걸 보고 누가 로그인했는지 확인
- 서버가 로그인 상태를 직접 관리해서 제어하기 쉽다
- 로그아웃 처리나 강제 만료가 비교적 쉽다
- 사용자가 많아지면 서버가 세션을 계속 관리해야 해서 부담이 생긴다
OAuth -> 다른 서비스의 계정을 이용해 로그인하거나 권한을 위임하는 방식 ex)
- 카카오 로그인
- 구글 로그인
- 네이버 로그인
즉, 우리 서비스가 사용자의 비밀번호를 직접 받지 않고 다른 서비스의 인증 기능을 빌려 쓰는 것
- 회원가입/로그인이 편하다
- 비밀번호를 우리 서비스가 직접 관리하지 않아도 된다
- 구현이 조금 더 복잡하다
- 외부 서비스 정책에 영향을 받을 수 있다
| 방식 | 설명 | 장점 | 단점 | 주로 쓰는 곳 |
|---|---|---|---|---|
| JWT | 토큰을 이용해 사용자를 인증하는 방식 | 서버 부담이 비교적 적고, 프론트/백 분리 구조에 잘 맞음 | 토큰 탈취 시 위험하고, 바로 무효화하기 어려움 | 모바일 앱, REST API, SPA |
| 세션 + 쿠키 | 서버가 로그인 상태를 저장하고, 브라우저는 쿠키로 세션 ID를 보냄 | 서버가 로그인 상태를 직접 관리해서 제어하기 쉬움 | 서버가 세션을 계속 관리해야 해서 부담이 생길 수 있음 | 전통적인 웹 서비스 |
| OAuth | 다른 서비스 계정으로 로그인하거나 권한을 위임하는 방식 | 소셜 로그인이 가능하고, 비밀번호를 직접 관리하지 않아도 됨 | 구현이 더 복잡하고 외부 서비스에 영향을 받을 수 있음 | 카카오 로그인, 구글 로그인, 네이버 로그인 |
- JWT: 토큰으로 로그인 상태를 확인하는 방식
- Access Token: 실제 요청에 사용하는 토큰
- Refresh Token: Access Token을 다시 발급받기 위한 토큰
- 세션: 서버가 로그인 상태를 저장하는 방식
- 쿠키: 브라우저에 저장되는 데이터
- OAuth: 구글/카카오 같은 외부 계정으로 로그인하는 방식


















