개발일기

API 보안 제대로 이해하기: JWT, OAuth2, HTTPS 차이와 실무 적용법

뱅우 2025. 7. 23. 11:39
반응형

🔒 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 ConnectPKCE도 같이 공부해보세요!

👉 도움이 되셨다면 댓글과 공감 부탁드립니다!

반응형