7주차 공부- JWT, Paging, Transaction

HakJun·2022년 2월 15일
0

📝실습 체크리스트

  • API 20개까지 구현하기
  • API Sheet 작성하기
  • JWT 활용하여 해당하는 모든 API 디벨롭하기
  • Paging 처리를 하여 조회 일부 API 디벨롭하기
  • Transaction 활용하여 API를 디벨롭하기

5. 핵심 키워드

  • Stateless(무상태성)

    비연결성으로 인해 HTTP는 이전의 상태정보나 현재의 통신의 상태가 남아있지 않다. 요청에 답하는 동시에 연결을 끊고 통신을 종료하기 때문이다.

    장점 : 쓸데없는 자원의 낭비를 줄일 수 있다.

    단점 : 클라이언트의 상태를 유지시켜줄 수 없다는 점이다.

  • Request Header를 활용한 로그인 방식

    요청헤더는 HTTP요청에서 사용되지만 메시지의 컨텐츠와는 관련이 없는 HTTP헤더이다. ACCEPT, ACCEPT-*,와 같은 요청헤더들은 조건부 요청 수행을 허용한다. Cookie와 같은 다른 것들은 컨텍스트를 정확히 나타내어 서버가 응답에 맞출 수 있게 한다.

  • 쿠키

    HTTP의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다.

  • 쿠키를 활용한 로그인 방식

    클라이언트가 서버에 요청을 하면 서버가 응답할 때 쿠키에 저장하고자 하는 정보를 Header의 Set-Cookie로 함께 전달한다.

    클라이언트는 서버로 전송하는 모든 요청에 현재 브라우저에 저장된 모든 쿠키를 Header의 Cookie로 전달한다.

    서버가 쿠키와 함께 아래와 같은 응답을 클라이언트에 전달했다면,

    이후로는 해당 클라이언트는 매번 저장된 쿠키를 헤더에 포함해서 요청을 보내게 된다.

  • 세션

    비밀번호와 같은 인증정보를 쿠키에 저장하지 않고 대신에 사용자의 식별자인 JSESSIONID를 저장한다. 서버에는 인증 정보와 더불어 이 ID에 해당하는 로그인 상태, 마지막 로그인 시간, 닉네임, 만료기한 등의 정보를 저장한다. 보안상 서버는 사용자의 개인 컴퓨터보다는 훨씬 안전하기 때문에 인증에 SESSION을 이용한다.

  • 세션을 활용한 로그인 방식

    1.클라이언트가 서버에 처음으로 Request를 보낸다.

    2.서버에서는 session id 쿠키값이 없는 것을 확인하고 새로 발급해서 응답한다.

    3.이후 클라이언트는 전달받은 session id 값을 매 요청마다 헤더 쿠키에 넣어서 요청한다.

    4.서버는 session id를 확인하여 사용자를 식별한다.

    5.클라이언트가 로그인을 요청하면 서버는 session을 로그인한 사용자 정보로 갱신하고 새로운 session을 발급하여 응답한다.

    6.이후 클라이언트는 로그인 사용자의 session id 쿠키를 요청과 함께 전달하고 서버에서도 로그인된 사용자로 식별 가능하다.

    7.클라이언트 종료 시 session id 제거, 서버에서도 세션 제거한다.

  • JWT(Json Web Token)

    JWT란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained방식으로 정보를 안전하게 저장한다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리된다.

  • OAuth

위와 같은 로그인 창처럼, 별도의 회원가입 없이 로그인을 제공하는 플랫폼의 아이디만 있으면 서비스를 이용할 수 있다. 외부서비스에서도 인증을 가능하게 하고 그 서비스의 API를 이용하게 해주는 것, 이것을 바로 OAuth라고 한다.

  • Paging 처리 사용자가 어떠한 데이터를 필요로 할 때 전체 데이터 중의 일부를 보여주는 방식이다.
  • Transaction 데이터베이스의 상태를 변화시키기 위한 수행하는 작업의 단위를 뜻한다. 간단하게 말해서 아래의 질의어를 이용하여 데이터베이스를 접근하는 것을 의미한다. -SELECT -INSERT -DELETE -UPDATE 작업단위는 질의어 한 문장이 아니고, 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것이다.
profile
백엔드 & 전공 공부

0개의 댓글