hyo_jung
[Work Book] UMC 서버 7주차 본문
학습 목표
- 인증과 권한 부여(인가)에 대한 지식 습득
- 로그인 유지 방법에 대해서 이해 및 적용
- 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
- 데이터데이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻한다.
'개발 > Backend' 카테고리의 다른 글
| [JPA] JPA 프로그래밍 기본기 다지기 1강 - JPA 소개 (0) | 2022.01.15 |
|---|---|
| [Work Book] UMC 서버 8주차 (0) | 2021.11.28 |
| [Work Book] UMC 서버 6주차 (0) | 2021.11.28 |
| [Work Book] UMC 서버 5주차 (0) | 2021.11.07 |
| [Work Book] UMC 서버 4주차 (0) | 2021.11.04 |