[RC]6주차개념 - RestAPI / 로그인 유지방식 / Paging

iOSoo·2021년 10월 17일
0
post-thumbnail

1. Rest API

우선 Rest가 뭔지 알아보자

  • Representational(대표성)
  • State(상태)
  • Transfer(전달)

단어를 하나씩 해석해보자

  • Representational - 자원의 이름으로 표현(id)

  • State - 자원의 상태

  • Transfer - 송, 수신

여기서 자원이란?

-> 소프트웨어(Project, App)가 관리하는 모든 것

이제 다시 Rest를 설명해보면

자원의 이름으로 자원을 구분짓고 자원의 상태를 송수신하는 규칙

예를 들어 1학년 1반 1번 철수라는 데이터를 저장할 때를 생각해보자.

URL 예시 : http:// iOSoo.com/students/1/1/1

2. 로그인 유지 방식

쿠키, 세션

[쿠키]

"놀이공원의 자유이용권"과 같다.

굳이 쿠키를 왜 쓰는가?

HTTP의 특성때문이다.

  • 비연결성
  • 비상태성

위의 특성이 왜 쿠키를 쓰게 만들까?

HTTP와 통신할 때 한번만 연결하면 계속 통신이 되는 것이 아니고 통신할 때마다 원하는 형식으로 통신을해야 Response를 받을 수 있는데 이 때 서버는 자신의 사용자인지 아닌지를 알 수 있어야하기 때문에 쿠키가 사용된다.

쿠키와 세선은 뭐가 다른가?

  • 쿠키: 사용자의 저장소에 저장
  • 세션: 서버의 저장소에 저장

서버가 그냥 다해주면 되는데 왜 쿠키를 사용할까?

그 이유는 서버가 모든 일을 행하게 된다면 서버의 과부하가 걸리기 때문이다.

여기서 쿠키나 세션이 누군가에 의해서 훔쳐진다면?

API의 데이터가 조작되어 보안상 데이터가 생길 수 있다.
이런 문제점을 보안하기 위해서 아래에서 설명할 OAuth가 생긴것이다.

OAuth, JWT

[OAuth]

"Big3 전용 이용권"과 같다.

"Big3 전용 이용권"의 뜻은 놀이공원에서 인기랭킹 1,2,3위의 놀이기구만 탈 수 있는 이용권을 말한다.
즉, 쿠키와 세션은 모든 데이터를 넘겨 문제가 생기니깐 OAuth에서는 그 문제를 해결하고자 필요한 데이터만 넘겨 문제를 해결했다.

OAuth는 토큰을 발급해주는 프레임워크이다.

마지 UIKit과 같이 UIKit라는 프레임워크를 따르게 되면 UI를 계속 만들 수 있는 것처럼 OAuth라는 프레임워크를 따르게되면 총 2개의 토큰을 만들 수 있다.

  • Acces Token(주기가 1시간 ~ 3시간)

  • Refresh Token(주지가 15일 ~ 30일)

왜 2개를 만들었을까?

  • Access Token을 사용하면 해커가 Token을 해킹하고 사용하려고 하면 다시 재발급이 되기 때문에 해킹해도 사용할 수 없어 보안에 강하다.

  • Refresh Token을 사용하면 컴퓨터를 껐다가 내일 일어나서 다시 컴퓨터를 할 때 Refresh Token은 유효기간이 길기 때문에 해당 Refresh Token으로 새로운 Access Token과 Refresh Token을 생성할 수 있다.

[JWT(Json Web Token)]

JWT의 구성

  • header: 토큰의 타입과 암호화 알고리즘으로 구성되어있다.

  • payload: 토큰에 담을 클레임(claim) 정보를 포함하고 있다. Payload 에 담는 정보의 한 ‘조각’ 을 클레임이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄져있다. 토큰에는 여러개의 클레임 들을 넣을 수 있다. (내용)

  • signature: secret key를 포함하여 암호화되어 있다. (누가 발급했는지에 대한 서명)

3. Paging

https://jhnyang.tistory.com/290

profile
애플을 좋아하는 비전공생

0개의 댓글