Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

hyo_jung

[Work Book] UMC 서버 7주차 본문

개발/Backend

[Work Book] UMC 서버 7주차

hyo_jung 2021. 11. 28. 18:08

학습 목표

  • 인증과 권한 부여(인가)에 대한 지식 습득
  • 로그인 유지 방법에 대해서 이해 및 적용
  • DB가 항상 정확하고 일관된 상태를 유지하는 방법

 

 

핵심 키워드

Stateless(무상태성)

  • http는 요청에 답하는 동시에 연결을 끊고 통신을 종료한다. 서버는 클라이언트의 상태를 저장하지 않는다.

 

Request Header를 활용한 로그인 방식

  • 사용자가 URL에 아이디, 비밀번호 넣어서 접속한다.
  • 브라우저가 아이디, 비밀번호를 인코딩하여 요청 헤더에 담아서 서버에 전달한다.
  • 서버가 이것을 디코딩하여 DB에 아이디와 비밀번호가 있는지 체크한다.
  • 인증이 완료되면 서버는 사용자에 맞는 데이터를 보내준다.

 

쿠키

  • 브라우저에 저장되는 작은 데이터 파일이다.
  • 클라이언트의 상태 정보를 로컬에 저장했다가 참조한다.

 

쿠키를 활용한 로그인 방식

  • 쿠키에 유저의 아이디와 비밀번호를 넣는다.
  • 브라우저가 Request 시에 Request Header에 쿠키를 넣어서 서버에 전송한다.
  • 인증이 완료되면 서버는 사용자에 맞는 데이터를 보내준다.

 

세션

  • 세션은 서버측에서 관리한다. 서버에서 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증 상태를 유지한다.
  • 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다.

 

세션을 활용한 로그인 방식

  • 사용자가 로그인을 하면 서버에서는 사용자를 확인한 후 사용자에게 고유한 ID값을 부여한다. 이것을 세션 저장소에 저장한 후 이와 연결되는 세션 ID를 발급한다.
  • 서버는 Response Header에 발급된 세션 ID를 넣어서 보낸다. 클라이언트는 받은 세션 ID를 쿠키 같은 곳에 저장한다.
  • 이후 요청에서는 Request Header에 세션 ID가 담긴 쿠키를 넣어 보낸다.
  • 서버에서는 세션 저장소에서 대조를 한 후 대응되는 정보를 가져온다.
  • 인증이 완료되면 서버는 사용자에 맞는 데이터를 보내준다.

 

JWT(Json Web Token)

  • 인증에 필요한 정보들을 암호화시킨 토큰을 말하며 access token으로 사용된다.
  • JWT를 생성하기 위해서는 Header, Payload, Verify Signature 객체를 필요로 한다.
  • Header, Payload는 인코딩될 뿐, 따로 암호화되지 않는다. 따라서 Header, Payload는 누구나 디코딩하여 확인할 수 있기에 정보가 쉽게 노출될 수 있다. 하지만 Verify Signature는 SECRET KEY를 알지 못하면 복호화할 수 없다.

 

OAuth

  • 외부 서비스의 인증 및 권한 부여를 관리하는 범용적인 프로토콜이다.

 

OAuth 원리와 과정

OAuth2.0 개념, 동작방식, 특징에 대해 알아보자!

 

Paging 처리

실시간 타임라인에서 올바른 페이징(Paging) 처리 방식 (max_id, since_id)

 

Transaction

  • 데이터데이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻한다.

트랜잭션(Transaction)이란?

 

로그인 인증 4가지 방법

쿠키와 세션 개념