본문 바로가기

Network

(6)
[GraphQL] GraphQL 오늘은 GraphQL 에 대해서 알아볼게요! 시작하겠습니다 :) ▶ GraphQL 이란? - API를 위한 쿼리언어 ▶ SQL VS GraphQL SQL : 데이터베이스 한정으로, 데이터데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적 GQL : API에서 쓰이고, 웹클라이언트가 서버로부터 데이터를 효율적으로 가져오는 것이 목적 ▶ HTTP API VS GraphQL 1) HTTP API : 다양한 endpoint 가 존재하고, 각 Endpoint마다 데이터베이스 SQL 쿼리가 달라진다! 2) GraphQL : 한개의 endpotint가 존재하고, API는 gql 스키마의 타입마다 데이터베이스 SQL 쿼리가 달라진다! ▶ GraphQL 의 구조 1) 쿼리 : 데이터읽을 때 / R 2) ..
[HTTP] 쿠키 / 세션 / 웹스토리지 / 캐쉬 /프록시 1. 쿠키(cookie) 웹 브라우저가 웹사이트에서 보내온 정보를 저장할 수 있도록 하는 조그마한 파일 4KB까지 저장공간을 이용할 수 있음, 클라이언트의 브라우저 메모리 혹은 하드디스크에 저장 임의로 수정 및 삭제가 가능하므로, 사용자의 편의를 위하되 지워지거나 가로채이더라도 문제 없는 정보를 저장할 때 사용 쿠키 값을 웹브라우저에 설정하면 접속 할 때 마다 설정되었던 쿠키값을 서버에 전송하여, 사용자의 상태를 유지하고, 식별할 수 있다. ex) 로그인창의 아이디 자동완성 기능 or 공지메세지 오늘 보지 않기 기능 or 로그인을 안한 상태로 장바구니 담기 기능 2. 세션(session) 웹 서버가 http 통신상에서 필요한 데이터를 저장, 서버에 저장되기 때문에 쿠키와 달리 사용자 정보가 노출되지 않음..
[인증] 로그인 / 인증 / 암호화 / bcrypt 인증(Authentication) ▶ 인증이란? 사용자의 신원을 확인하는 절차 로그인을 하여 아이디와 비번을 확인하는 절차 ▶ 인증 절차 1) 사용자 가입 절차를 진행해서 사용자의 아이디와 비밀번호를 생성 2) 아이디와 암호화한 비밀번호를 데이터베이스에 저장 3) 로그인할 때 본인의 아이디와 비밀번호를 입력 4) 입력한 비밀번호를 암호화한 후, 암호화되어 DB에 저장된 값과 비교하여 일치하면 로그인 성공 5) 백엔드 API 서버는 access token을 프론트엔드 혹은 클라이언트에게 전송 6) 프론트엔드는 access token을 첨부해서 request를 서버에 전송 엑세스 토큰 알아보기(JWT 토큰) ▶ 왜 사용자의 비밀번호를 암호화해서 저장해야 하는가? 1) 외부의 해킹 공격에 의해 데이터베이스가 ..
[HTTP] HTTP란? / request & response / method / status code 1. HTTP(HyperText Transfer Protocol)란? ▶ 정의 서버와 클라이언트 사이에 데이터를 주고 받기 위한 통신 규약 웹 상에서 네트워크를 통해 서버 사이에 통신할 때 어떠한 형식으로 서로 통신하자고 규정해놓은 "통신 형식", "통신 구조" 서버와 클라이언트가 html,css 등의 컨텐츠를 서로 주고 받으려면 공통으로 약속된 메세지가 필요 바로 그 메세지가 http 이고, http 는 Request와 Response 를 위한 메세지로 구분되어 있음. * 페이지에서 개발자 도구 - network 탭에 들어가면 웹 브라우져와 서버가 통신하는 것을 확인 할 수 있다! ▶ 특징 1) 요청과 응답 : http는 기본적으로 요청고 응답의 구조로 되어 있다. 클라이언트가 먼저 http 요청을 서..
[인가] access token / JWT / 데코레이터 / 토큰 만료 시간 인증(Authentication) 알아보기 인가(Authorization) ▶ 인가란? 사용자가 서버에 로그인 하면 해당 사용자가 맞는지 확인하는 과정 JWT(JSON Web Token) ▶ JWT(JSON Web Token) http는 stateless한 특징(과거의 통신상태를 저장하지 않음)이 있어서, headers에 토큰을 보내서 확인. 그 토큰을 생성하는 방법 중 가장 널리 이용되는 방법이 JWT 이다. ▶ JWT 구조 "eyJ0eXAiOiJKVLCJiOiJIUzI1NiJ9.eyJpZCI6MmV4cCTYzNTE1MTc0Nn0.vjvArYldV2OX7jnVBqpx_EQCr4WsY4GOXqIg" 1) Header : 토큰의 타입과 해시알고리즘 정보가 들어간다. 헤더의 내용은 BASE64URL 방식으로..
[HTTP] RESTful API 1. RESTful(Representational State Transfer) API 란? ▶ REST 방식 : API 시스템을 구현하기 위한 아키텍처(=엔드포인트 구조를 구현하는 방식)이고, 이외에도 GraphQL 등이 있다 ▶ 정의 API(Application Programming Interface)에서 전송하는 리소스를 URI로 표현하고 해당 리소스에 행하고자 하는 의도를 http 메소드로 정의하는 방식 → 리소스(URI)를 어떻게 한다(Method+Payload서버로 보내는 데이터(body)) · post : 생성 · get : 조회 · put : 전체수정 / id를 제외한 전부를 우리가 전송한 데이터로 변경, 교체라고 생각하면 됨 · patch : 부분수정 / title을 언급하면 title 만..