인증(Authentication) vs 인가(Authorization), 아직도 헷갈리시나요?
IT 보안 공부를 시작하면 가장 먼저 마주치고, 또 가장 자주 헷갈리는 두 개념이 있습니다. 바로 인증과 인가입니다. 이름도 비슷하고 둘 다 '로그인' 과정과 관련이 있다 보니 혼동하기 쉬운데요. 오늘은 아주 쉬운 비유를 통해 이 둘의 차이점을 확실히 정리해 보겠습니다!
1. 인증(Authentication): "당신은 누구십니까?"
인증은 한 마디로 **'신원 확인'**입니다. 사용자가 주장하는 그 사람이 진짜 맞는지 확인하는 절차죠.
- 쉽게 말하면: 공항 입국 심사대에서 여권을 보여주는 것과 같습니다.
- 보안의 관점: 시스템이 "오, 당신은 우리 서비스에 가입된 '홍길동'이 맞군요!"라고 인정해 주는 단계입니다.
- 대표적인 예시:
- 아이디와 비밀번호 입력
- 스마트폰 지문 인식 / Face ID
- OTP 번호 입력

2. 인가(Authorization): "무엇을 할 수 있습니까?"
인가는 신원이 확인된 사람에게 **'권한을 부여'**하는 과정입니다. 인증을 통과했다고 해서 모든 곳에 들어갈 수 있는 건 아니니까요.
- 쉽게 말하면: 비행기 티켓 등급에 따라 비즈니스 라운지에 들어갈 수 있는지, 아니면 일반석에 앉아야 하는지 결정하는 것과 같습니다.
- 보안의 관점: 시스템이 "홍길동님은 확인됐습니다. 하지만 당신은 '일반 사용자'이므로 '관리자 페이지'에는 들어갈 수 없습니다"라고 통제하는 단계입니다.
- 대표적인 예시:
- 카페 회원이 '우수 회원' 전용 게시판에 접근할 때
- 회사원이 자기 팀의 문서함은 볼 수 있지만, 인사팀 문서함은 못 열 때

3. 한눈에 비교하기 (요약)
| 구분 | 인증 (Authentication) | 인가 (Authorization) |
|---|---|---|
| 핵심 질문 | "너 누구니?" (Who are you?) | "너 뭐 할 수 있니?" (What can you do?) |
| 비유 | 공항의 여권 심사 | 비행기의 탑승권(Ticket) 등급 |
| 실패 시 결과 | 로그인 실패 (존재하지 않는 계정 등) | 접근 거부 (권한이 없는 페이지 등) |
| 순서 | 반드시 먼저 수행 (1단계) | 인증 후 수행 (2단계) |
4. 왜 구분해야 할까요?
실제 웹 서비스에서 에러 메시지를 볼 때 이 차이를 알면 훨씬 이해가 빠릅니다.
- 401 Unauthorized: "너 누구인지 모르겠어." (로그인 필요)
- 403 Forbidden: "너 누구인지는 알겠는데, 여기 들어올 권한은 없어." (접근 권한 부족)
보안의 시작은 '누구인지 정확히 알고(인증)', '허락된 범위만큼만 행동하게 하는 것(인가)'에서 시작됩니다. 이 두 가지만 잘 구분해도 보안의 절반은 이해하신 셈입니다!