반응형
🔒 API 보안 제대로 이해하기: JWT, OAuth2, HTTPS 차이와 실무 적용법
API 서버를 만들 때 가장 먼저 고민해야 할 것이 바로 보안입니다.
JWT, OAuth2, HTTPS… 이름은 익숙하지만 정확히 어떻게 다르고, 언제 어떤 걸 써야 할까요?
✅ 1. HTTPS는 기본 중의 기본
HTTPS는 데이터를 암호화해서 중간에 탈취되더라도 내용을 알 수 없게 만듭니다.
👉 인증과 별개로, 모든 API 서버는 반드시 HTTPS를 사용해야 합니다.
✅ 2. JWT(Json Web Token)
JWT는 토큰 기반 인증입니다.
사용자가 로그인하면 서버가 서명된 토큰을 발급하고, 이후 클라이언트는 이 토큰을 매 요청마다 Header에 담아 인증합니다.
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "user123",
"exp": 1723412345
}
장점: 상태를 서버가 별도로 저장하지 않아도 됨(Stateless)
단점: 토큰 탈취 시 위험. 만료 주기 관리 필수.
✅ 3. OAuth2
OAuth2는 제3자 인증을 안전하게 위임할 수 있는 표준 프로토콜입니다.
예: "구글 로그인으로 회원가입"이 대표적인 OAuth2 흐름입니다.
👉 인증 서버와 리소스 서버가 분리되고, 액세스 토큰 & 리프레시 토큰을 활용해 더 안전합니다.
✅ 4. JWT vs OAuth2 vs HTTPS 비교
| 구분 | 역할 | 주요 사용처 |
|---|---|---|
| HTTPS | 데이터 암호화 | 모든 API 통신 |
| JWT | 인증 토큰 | 로그인 세션 대체 |
| OAuth2 | 인증 위임 | 소셜 로그인, API 연동 |
✅ 5. 실무에서 어떻게 선택할까?
- HTTPS는 무조건 사용
- 로그인 인증만 필요하다면 JWT만으로 충분
- 제3자 연동이 필요하면 OAuth2로 설계
- JWT & OAuth2는 함께 쓰는 구조가 일반적
📌 결론
보안은 복잡할 필요 없이, HTTPS + JWT(OAuth2)만 이해해도 실무에서 충분히 안전한 API를 만들 수 있습니다.
더 깊게 배우고 싶다면 OpenID Connect나 PKCE도 같이 공부해보세요!
👉 도움이 되셨다면 댓글과 공감 부탁드립니다!
반응형
'개발일기' 카테고리의 다른 글
| 🚀 2025 최신판: 개발자 필수 GitHub 활용 꿀팁 & 자동화 워크플로우 가이드 (5) | 2025.07.25 |
|---|---|
| 2025 최신판: 개발자 필수 VSCode 확장팩 추천 가이드 (8) | 2025.07.24 |
| 🔥 Flutter Local Notification & Firebase Push 완전 정복 (2025 최신) (7) | 2025.07.18 |
| ✨ Flutter 위젯 시리즈: Theme & Dark Mode 완전 정복 (4) | 2025.07.17 |
| ✨ Flutter 위젯 시리즈: StatefulWidget 고급 패턴 완전 정복 (21) | 2025.07.15 |