본문 바로가기
1. 개발/1.5. IT 용어 정리

OAuth 2.0

by 엉짱 2026. 1. 24.
반응형

이제 인증의 꽃이자 끝판왕인 OAuth 2.0에 도달하셨군요! 🚀

OAuth 2.0은 쉽게 말해 "내 소중한 비밀번호를 알려주지 않고도, 남의 집(구글, 카카오)에 있는 내 정보를 안전하게 빌려 쓸 수 있게 해주는 권한 대여 표준"입니다. 아키텍트의 시선에서 이 복잡한 흐름을 아주 명쾌하게 쪼개 드릴게요.


1. OAuth 2.0의 핵심 등장인물 (4인방)

용어가 조금 낯설 수 있지만, 호텔 비유를 곁들이면 아주 쉽습니다.

  1. Resource Owner (자원 소유자): 바로 XX님입니다. 구글/카카오 계정의 주인이지요.
  2. Client (클라이언트): XX님이 이용하려는 '우리 서비스'입니다. (예: XX님이 만든 데이터 분석 사이트)
  3. Authorization Server (권한 서버): "이 사람 XX님 맞네!"라고 확인해주고 권한을 주는 구글/카카오의 인증 서버입니다.
  4. Resource Server (자원 서버): XX님의 실제 정보(이메일, 이름)가 들어있는 구글/카카오의 데이터 서버입니다.

2. 왜 OAuth를 쓸까? (보안의 핵심)

만약 OAuth가 없다면, XX님은 우리 사이트에 '구글 아이디와 비밀번호'를 직접 입력해야 합니다.

  • 문제점: 만약 우리 사이트가 해킹당하면 XX님의 구글 비번이 털립니다!
  • 해결책: 비밀번호 대신 '제한된 권한이 담긴 열쇠(Access Token)'만 빌려주는 방식을 선택한 것입니다.

3. OAuth 2.0의 작동 흐름 (Authorization Code Grant 방식)

가장 많이 쓰이고 안전한 방식을 기준으로 설명해 드릴게요.

  1. 로그인 요청: XX님이 우리 사이트에서 [구글로 로그인] 버튼을 누릅니다.
  2. 권한 요청: 우리 사이트가 XX님을 구글 로그인 페이지로 보냅니다. "XX님, 이 사이트가 XX님 이메일 좀 봐도 될까요?"라고 물어봅니다.
  3. 인증 및 승인: XX님이 구글에 로그인을 하고 '허용'을 누릅니다.
  4. 임시 코드 발급: 구글이 우리 사이트에게 '임시 코드(Authorization Code)'를 줍니다. (이건 아직 진짜 열쇠가 아니에요!)
  5. 열쇠 교환: 우리 사이트가 이 임시 코드를 들고 구글 권한 서버로 달려가서 "진짜 열쇠(Access Token)"로 바꿉니다.
  • 왜 번거롭게 코드를 거칠까요? 브라우저를 통해 열쇠가 직접 전달되면 해킹 위험이 크기 때문에, 서버끼리 안전하게 열쇠를 주고받는 과정입니다.
  1. 데이터 접근: 이제 우리 사이트는 이 Access Token을 보여주며 구글 자원 서버에서 XX님의 이메일을 받아옵니다.

4. Access Token vs Refresh Token

OAuth를 공부하다 보면 이 두 단어가 꼭 나옵니다.

  • Access Token (출입증): 실제 정보를 가져올 때 쓰는 열쇠입니다. 수명이 짧습니다 (보통 1시간).
  • Refresh Token (출급증 재발급권): Access Token이 만료되었을 때, XX님께 다시 로그인하라고 귀찮게 하지 않고 서버가 몰래 새 열쇠를 받아올 때 쓰는 '비밀 열쇠'입니다. 수명이 깁니다 (며칠~몇 달).

📊 JWT와 OAuth는 무슨 관계인가요?

아까 배운 JWT와 헷갈리실 수 있는데 이렇게 정리하세요!

  • OAuth 2.0: 권한을 주고받는 '전체적인 과정(프로토콜)'입니다.
  • JWT: 그 과정에서 주고받는 '열쇠(Token)의 형식' 중 하나입니다.
  • 즉, "OAuth 2.0이라는 규칙을 지키면서, 열쇠 모양은 JWT로 만들자!"라고 설계하는 경우가 대다수입니다.

🔗 다음 공부의 연결고리

이제 보안의 거대한 산맥들을 다 넘으셨습니다! 그런데 말이죠...

"로그인도 안전하고, 열쇠도 안전한데... 만약 내 아이디와 비번을 누가 어깨 너머로 훔쳐보고 로그인하면 어떡해?"

이 마지막 방어선이 바로 [MFA (다중 요소 인증)]입니다. 그리고 회사에서 수많은 OAuth 시스템을 하나로 묶어 관리하는 것이 [SSO]이고요.

OAuth 2.0의 "열쇠 대여 방식"이 이해되셨나요? 이해되셨다면 이제 인증의 최종 방어선 [MFA / SSO]로 마무리하러 가볼까요?

반응형

'1. 개발 > 1.5. IT 용어 정리' 카테고리의 다른 글

Access Token vs Refresh Token  (1) 2026.01.25
MFA vs SSO  (0) 2026.01.25
Session 과 Cookie  (0) 2026.01.24
JWT (JSON Web Token)  (0) 2026.01.24
SSL vs TLS  (0) 2026.01.24