[TIL]231212_인증vs인가

ㅇㅖㅈㅣ·2023년 12월 12일
1

Today I Learned

목록 보기
41/93
post-thumbnail

👩🏻‍💻 Today Learn

  • 알고리즘 1문제
  • 주특기플러스 강의

💡 알게된 내용

인증(Authentication) vs 인가(Authorization)

인증?

  • 서비스를 이용하려는 유저가 회원인지 아닌지 신원을 확인하는 절차
  • 보통 어떤 인증요소를 증거로 자신을 증명함
  • ex) 온라인에서는 ID와 패스워드를 입력하는 행위가 인증이 될 수 있음
  • ex) 실생활에서는 공공기관에서 신원확인 시 신분증을 보여주는 것을 생각해볼 수 있음

인가?

  • 어떤 개체가 리소스에 접근할 수 있는지 또는 동작을 수행할 수 있는지 검증하는 것(접근 권한을 얻는 일)
  • ex) 현실에서는 비행기 탑승 시 여권과 함께 가져가는 비행기 티켓을 생각해볼 수 있음(여권으로 신분확인 하는 것 말고 티켓이 있어야 탑승이 가능하기 때문)
  • 인터넷 기반 앱에서는 보통 토큰 이라는 것을 사용
  • 유저는 자신의 인가 세부사항을 가진 토큰을 통해 서버에 인증받음
  • 서버는 유저의 토큰을 보고 권한이 있는지 판단

🔎 인증은 인가로 이어지지만 인가는 인증으로 이어지지 않는다!


http 프로토콜 통신의 특징

모든 형태의 데이터를 전송할 때 HTTP를 사용한다.

HTTP의 특징

  1. Client-Server 구조
  2. 무상태성(Stateless)
  3. 비연결성(Connectionless)
  4. 단순/확장 가능

1. Client-Server 구조

  • 각각의 ServerClient는 독립되어 있음
  • Client는 Server에 요청(Request)을 보내고 응답이 올 때까지 대기
  • Server는 Client에서 받은 요청(Request)에 대한 결과를 만들어 응답을 하는 것
  • Client-Server 구조는 Request-Response 구조와 같은 것
  • Server에서 비즈니스 로직과 데이터를 Client에 독립적으로 처리할 수 있도록 만든 구조

2. 무상태성(Stateless)

  • ServerClient의 상태를 기억하지 않음
  • 각 요청마다 Server에서 요구하는 모든 상태 정보를 담아서 요청해야함
  • 상태값은 매 요청마다 Client가 가지고 오기 때문에 Server는 Client의 상태를 별도로 기억할 필요없이 주문받은 대로 응답해줌

3. 비연결성(Connectionless)

  • Server와 Client는 연결되어 있지 않아서 서버 입장에서는 매번 새로운 요청임
  • 비연결성으로 인해 최소한의 서버 자원으로 서버를 유지할 수 있게 해줌

4. 단순/확장 가능

  • 클라이언트에서 요청이 발생하면 TCP의 3-way handshake를 통해 연결
  • 서버에서 결과를 처리하여 응답을 받으면 4-way handshake를 통해 연결을 해제
  • 클라이언트의 상태를 저장하지 않는(stateless) 단순한 과정을 거치기 때문에 HTTP가 이렇게까지 성장할 수 있었음

✍🏻 회고

새롭게 배운 내용들을 이해하기 어려워서 자료 찾아가며 TIL로 적어보았는데 여전히 어렵다..ㅎㅎ 그래도 반복적으로 읽으면서 어떤 내용인지, 의미인지 한발자국 더 다가가게 되었다.

profile
웰씽킹_나는 경쟁력을 갖춘 FE개발자로 성장할 것이다.

0개의 댓글