REST 인증이 뭐죠?
이제 어느 정도 이해도가 높아지면 생각보다 많은 초보 개발자들이 이렇게 말합니다.
“REST는 알겠는데… 로그인은 갑자기 왜 어려워지는 거죠?”
저 또한 그렇습니다. 사실 지금도 공부를 꾸준히 하고 있지만 최근에야 이해했답니다.
로그인이 어려운 이유는 생각보다 간단합니다.
REST는 “상태가 없는(Stateless)” 구조이고, 로그인은 “상태를 기억해야 하는 기능”이기 때문입니다.
즉, 다시 말해서.
- REST는 “요청-응답만 주고받는 단순 구조” 이지만,
- 인증(Authentication)과 인가(Authorization)는 “누가, 무엇을 할 수 있는지”를 계속 확인해야 합니다.
그래서 로그인은 REST 인증 구조와 가장 부딪히는 부분이며, 이 때문에 토큰, 세션, 쿠키, OAuth 같은 인증 방식이 등장하게 된 것 입니다.
이번 글에서는 “REST API에서 로그인은 어떻게 동작하는가?” 를 입문자 기준으로 가장 쉽게 설명하면서,
- 세션/쿠키 방식
- 토큰 기반 인증 방식(JWT)
- OAuth 인증 방식
- 정보처리기사 포인트 및 기출 유형
까지 한번에 정리합니다. REST 인증방식에 대하여 오늘도 저와 함께 시작해 보시죠!

REST API에서 “인증”이 필요한 이유
REST는 Stateless(무상태) 특성을 가집니다.
무상태란 상태가 없다는 말로 서버는 클라이언트의 상태를 유지하지 않습니다.
그렇기 때문에 요청을 받을 때마다 “누구냐 넌?” 을 하는 겁니다.
그래서 필요한 것이 바로 인증 입니다.
| 문제 | 설명 |
|---|---|
| 서버는 클라이언트를 기억하지 않는다 | REST의 기본 원칙 |
| 모든 요청이 독립적이다 | 요청마다 다시 사용자 정보 확인 필요 |
| 로그인 후에도 사용자를 식별해야 한다 | 인증 토큰, 쿠키 등 필요 |
인증(Authentication)과 인가(Authorization)의 차이
비슷해서 입문자 분들이 많이 헷갈리는 부분입니다. 하지만 이 부분을 꼭 짚고 넘어가셔야 하며 반드시 이해 해야 합니다.
이 정의를 모르면 REST 인증을 제대로 이해할 수 없습니다.
| 개념 | 의미 | 예시 |
|---|---|---|
| Authentication (인증) | “너 누구냐?” | 아이디/비밀번호 login |
| Authorization (인가) | “너가 할 수 있는 행동은?” | 결제, 글쓰기 권한 확인 |
대부분의 REST 인증 구조는
로그인 = 인증
로그인 후 페이지 접근 = 인가
라는 순서로 진행 됩니다.
REST 인증 방식 3종 // 쿠키 + 세션 방식 (전통적 방식)
웹 초창기부터 사용되던 인증 방식입니다.
🔹 원리
- 사용자가 로그인
- 서버가 세션 ID를 발급
- 클라이언트 브라우저는 세션ID를 쿠키로 저장
- 다음 요청부터 쿠키 자동 전송 → 서버에서 세션ID로 사용자 확인
🔹 특징
- 전통적 웹(JSP, Spring MVC, PHP 등)에서 가장 흔함 -> 공공기관은 여전히 사용합니다.(네, 저 쓰고 있습니다…)
- REST API에는 다소 부적합
- 모바일 앱에서는 잘 쓰이지 않음
🔹 장점 vs 단점
| 장점 | 단점 |
|---|---|
| 구현 쉬움 | 서버가 세션을 저장해야 해서 상태 유지(Stateful) |
| 많은 프레임워크가 지원 | 서버 메모리 부담 증가 |
| 보안 설정 편리 | REST 철학과 거리가 멀다 |
REST 인증 방식 3종 // 토큰 기반 인증(JWT) – 현대 REST의 표준
대부분의 REST API(웹·앱·백엔드)는 JWT(JSON Web Token) 기반 인증을 사용한다.
🔹 원리
- 사용자가 로그인
- 서버가 JWT 토큰 발급 → 클라이언트 저장(로컬 스토리지 등)
- 이후 요청마다 헤더에
Authorization: Bearer <token>포함 - 서버는 토큰을 검증해 사용자 인증
🔹 왜 REST와 잘 맞을까?
서버가 상태를 기억할 필요가 없다. 무상태(Stateless) → 토큰만 검증하면 끝.
🔹 장점 vs 단점
| 장점 | 단점 |
|---|---|
| REST와 최적화 | 토큰 유출 시 위험 큼 |
| 서버 부담 적음 | 토큰 자체가 커서 네트워크 부하 가능 |
| 모바일/웹 모두 사용 | 토큰 관리(갱신 등) 로직 필요 |
REST 인증 방식 3종 // OAuth 2.0 – “로그인 위임” 구조
우리가 흔히 보는
- “구글 로그인”
- “카카오 로그인”
- “네이버 로그인”
이런 기능이 바로 OAuth 2.0 입니다.
🔹 원리
- 사용자가 Google/Kakao 로그인 클릭
- OAuth 서버(구글 등)에서 인증
- 내 서비스로 토큰을 전달
- 내 서비스는 그 토큰으로 사용자 정보 조회
🔹 특징
- 직접 비밀번호를 다루지 않아도 됨
- 소셜 로그인 구현 시 필수
- 기업 서비스에서 매우 흔함
🔹 장점 vs 단점
| 장점 | 단점 |
|---|---|
| 사용 편리, 전 세계 표준 | 구현 난이도 높음 |
| 비밀번호 보관 불필요 | 토큰·리프레시·스코프 관리 필요 |
| 보안 강력 | 설정 오류 시 취약 가능 |
세 가지 인증 방식 비교표
| 구분 | 쿠키/세션 | JWT 토큰 | OAuth 2.0 |
|---|---|---|---|
| REST 적합도 | 낮음 | 매우 높음 | 높음 |
| 서버 상태(State) | 유지(Stateful) | 무상태(Stateless) | 무상태(Stateless) |
| 사용처 | 전통적 웹 | 웹/앱/백엔드 API | 소셜 로그인 |
| 구현 난이도 | 쉬움 | 보통 | 어려움 |
| 보안 | 보통 | 높음 | 매우 높음 |
“로그인은 REST 구조에서 어떻게 동작할까?” – 순서 흐름도로 이해하기
1) 클라이언트가 로그인 요청
POST /auth/login
→ 서버가 DB에서 비밀번호 확인
2) 서버는 인증 성공 시 토큰 발급
→ JWT 또는 세션ID 등
3) 클라이언트는 토큰을 저장
→ 로컬 스토리지 또는 쿠키
4) API 호출 시 토큰을 계속 포함
→ Authorization 헤더
5) 서버는 토큰을 검증
→ 유효하면 리소스 접근 허용
즉, 로그인과 REST 구조를 연결하는 핵심은 토큰입니다.
정보처리기사 기출 포인트 정리
인증 vs 인가
- 인증: Authentication
- 인가: Authorization
REST 원칙 – 무상태(Stateless)
- 서버가 클라이언트 상태를 저장하지 않음
- 그래서 토큰 기반 인증이 필요
OAuth 2.0 구성요소
| 용어 | 의미 |
|---|---|
| Resource Owner | 사용자를 의미 |
| Client | 서비스를 제공하는 시스템 |
| Authorization Server | 인증 담당 서버 |
| Resource Server | 사용자 정보가 있는 서버 |
토큰 방식
- Access Token
- Refresh Token
- Bearer Token
정보처리기사 기출 예제
문제 1
OAuth 2.0에서 사용자를 대신해 보호된 리소스 접근을 허용하는 인증 방식은?
정답: OAuth 2.0 (위임 인증)
문제 2
REST API 인증 방식으로 서버가 상태 정보를 저장하지 않고 클라이언트가 토큰을 유지하는 방식은?
정답: JWT 기반 인증
문제 3
인증(Authentication)과 인가(Authorization)의 차이를 서술하시오.
정답:
- Authentication: 사용자 신원 확인
- Authorization: 권한 확인
마무리하며.
인증을 이해하면 REST가 쉬워진다
REST는 단순하지만, 로그인은 단순하지 않습니다.
하지만 원리는 명확합니다.
- 서버는 상태를 기억하지 않는다(Stateless)
- 그래서 클라이언트가 자신을 증명할 수 있는 토큰이 필요하다
- 쿠키/세션, JWT, OAuth는 그 방식의 차이일 뿐이다
REST API를 설계하거나 공부할 때 “인증이 어떻게 이루어지는지” 이해하면 웹 개발 전체가 훨씬 쉽고 단단해집니다. 반드시 여러분들에게 도움이 될 것이라 생각합니다.
다음 편 예고
다음편은 [정보처리기사] 제 14편 – REST API 보안 실무편(HTTPS·CORS·CSRF·JWT 보안) 완전 정복으로 찾아오겠습니다. 보안 실무로 좀 더 단단하고 한 단계 더 발전할 수 있는 입문 및 초급 개발자가 되어봐요!
REST 인증 외부 참고자료 (추천 3개)
MDN Web Docs – HTTP Cookie 기본 개념
쿠키의 구조, 용도, 보안 옵션(SameSite, Secure, HttpOnly)까지 상세하게 설명하는 가장 권위 있는 문서. REST 인증에서 쿠키 기반 인증을 설명할 때 반드시 참고하면 좋음. https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
JWT 공식 사이트 – JSON Web Token 소개
JWT 구조(헤더·페이로드·시그니처), 사용 목적, 장단점을 시각적으로 쉽게 정리한 공식 가이드. REST 인증의 핵심인 토큰 방식의 기본 개념을 강화하기 좋음. https://jwt.io/introduction
OAuth 공식 문서 – OAuth 2.0 개요
OAuth의 역할, 권한 부여 방식, Access Token 구조 등 실무에서 사용하는 인증 흐름을 정확하게 설명함. REST 로그인과 실무 서비스 연동(구글 로그인, 카카오 로그인 등)을 이해하는 데 강력한 참고 자료. https://oauth.net/2/
이전 편이 궁금하다면?
[정보처리기사] 필기 실기 통합 이론 제 1편 – 정보와 보안의 모든 것
[정보처리기사] 필기 실기 통합이론 제2편 – 디자인패턴
[정보처리기사] 필기·실기 통합이론 제3편 – IT 신기술 및 전산 용어 총정리
[정보처리기사] 필기·실기 통합 이론 제 4편 – 실무에서 바로 쓰이는 기출전산용어
[정보처리기사] 필기·실기 통합 이론 제 5편 – 기출용어 중 실무에서 자주 쓰이는 고급 전산용어
[정보처리기사] 필기·실기 통합 이론 제 6편 – 기출용어 중 실무에서 자주 쓰이는 네트워크 보안과 데이터 암호화 핵심 정리 (SSL/TLS 포함)
[정보처리기사] 필기·실기 통합 이론 제 7편 – 실무에서 바로 쓰이는 네트워크 구조 완전 정복
[정보처리기사] 제 8편 – TCP/IP 완전 정복 (핵심 개념 + 포트번호 + 계층 역할)
[정보처리기사] 필기 실기 통합 이론 제 9편 – 웹 통신 완전 정복(HTTP, HTTPS, 쿠키, 세션, 토큰)
[정보처리기사] 필기 실기 통합 이론 제 10편 – 웹 보안 완전 정복(XSS · CSRF · SQL Injection 쉽게 이해하기)
[정보처리기사] 필기 실기 통합 이론 제 11편 – 웹 서버와 WAS 구조 완전 정복
[정보처리기사] 필기 실기 통합 이론 제 12편 – REST API 완전 정복(입문부터 실무까지)