인증
실생활 예시
내가 편의점에서 술을 사려했다. 점원은 나에게 신분증을 제시해 달라고 요구할 것이다.
신분증을 확인한 이후 성인임이 확인되면 술을 계산해주었다.
여기서의 인증은 '신분증의 확인'이다

인증이란 식별 가능한 정보로 사용자가 누구인지 확인하는 절차
인가
고3 학생이 편의점에서 술을 사려했다. 점원은 학생생에게 신분증 제시해 달라고 요구하였고, 신분증을 확인하였다.(인증)
하지만, 고3에게는 아직 술을 살 수 없기 때문에 학생을 돌려보냈다.
여기서의 인가는 '고3학생이 술을 살 수 있는지에 대한 권한을 확인하여 접근을 허용하거나 제한하는 것'이다

인가는 인증된 사용자가 특정 자원에 접근할 수 있는지 권한을 확인하고 그에 따라 접근을 허용하거나 제한하는 절차
마찬가지로 온라인도 마찬가지이다. 나의 1차 프로젝트인 이음새 웹사이트에 적용을 시켜보자.
우리 이음새는 로그인을 하여야 게시글을 작성 및 수정/삭제할 수 있다.
하지만, 다른 사람의 게시글을 수정/삭제하지 못하도록 권한을 막아놓았다.
여기서는 로그인이 인증이고, 게시글 작성 및 다른 사람의 게시글에 대한 접근 금지에 대한
권한을 확인 및 허용 및 제한 하는 것이 인가이다.
🤔 비회원인 경우 인증/ 인가는 어떻게 진행될까?
문득 글을 정리하다가 그렇다면 비회원은 어떻게 처리될까? 라는 생각이 들었다.
비회원으로 네이버에 들어가보자.


- 비회원인 경우에도 다양한 뉴스 기사들을 볼 수 있게 된다. (인증 X 권한 0)
- 댓글을 달고 싶을땐, 로그인을 해야만 권한을 부여해준다. (인증 O 권한 O)
- 하지만, 남의 댓글을 마음대로 삭제할 수는 없다. (인증 O 권한 X)
인증과 인가(권한)이 항상 일치하지 않으며, 시스템의 정책에 따라 다양하게 적용될 수 있음.
직접 스케치해보면 더 나아가서 직접 구현을 해보면, 더 와닿을 거라고 한다! (feat. King JaHyun...)
시나리오 스케치
계속하여 편의점에 비유해보자

- 일반 상품인 과자를 구매하러 온 손님 (인증 x 권한 O)
- 술을 구매하러 온 성인 (인증 O권한 O)
-주민등록증 인증 O (성인 인증 O) - 술을 구매하러 온 고3 (인증 O 권한 X)
-주민등록증 인증 O (성인 인증 X) - 직원 구역에 들어가는 직원 (인증 O 권한 O)
- 금고에 접근하는 매니저👑 (인증 O 모든 권한 O) *직원(모든 권한 X)
이처럼 비회원, 일반 사용자, 관리자로 분류를 해보았고, 관리자도 등급에 따른 세분화를 해서 실생활 비유를 해보았다.
스케치 시나리오를 통해 이해하니 훨씬 더 와닿았다.
인증 상태 유지
🤔 인증만 하면 될까?
편의점을 갔을 때, 술을 사기 위해 민증을 보여준 이후, 담배를 살 때 계속하여 민증을 보여달라 하면 매우 불편할 것이다.
온라인 또한 마찬가지이다.
사이트에 로그인을 한 후 사이트가 제공하는 서비스를 이용하려 할 때마다 로그인을 하여 인증하라고 하면 예쁜 말은 나오지 않을 것이다.
즉, 핵심은 이 인증 상태를 유지하는 것이다.
그렇다면 어떠한 인증방식이 있는지, 인증상태를 어떻게 유지해야 할지 자세히 알아보도록 하자!
🔗 Base🌱] - 세션(Session) & 토큰(JWT)
🙇♂️ 결론
첫 팀 프로젝트 때 내가 주로 맡았던 부분은 회원가입, 로그인, 관리자 페이지 구현이었다.
프로젝트를 진행하는 동안 부족한 실력으로 구현에만 포커스를 맞췄기 때문에, 기본 개념에 대해서는 빠르게 훑어보기만 했었다.
그렇다 보니, 정작 구현을 해놓고도 팀원이 나에게 코드의 본질적인 개념에 대해 물어보았을 때 확실하게 대답을 못해주는 경우가 많았다.
또한, 회원가입, 로그인 같은 경우 워낙에 정형화된 코드의 틀이 있기 때문에 그 틀 안에 내 프로젝트만 간신히 끼워놓은 수준이었다.
본질을 놓치면 아무런 소용이 없다.
조금 더 주도적으로 공부하고 , 이 개념에 대해 제대로 공부해 보자!
'Knowledge > 🌐 Web 지식' 카테고리의 다른 글
| OAuth란? (0) | 2024.09.07 |
|---|---|
| 테스트 코드 (Test Code)란? (2) | 2024.09.04 |
| RESTful API란? (2) | 2024.09.03 |
| API란 ? (0) | 2024.08.29 |
| 세션(Session) & 토큰(JWT) (0) | 2024.08.22 |