JWT 토큰 인증 이란? (쿠키 vs 세션 vs 토큰)
·
Computer Science/WEB
Cookie / Session / Token 인증 방식 종류 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 살펴보고 이들의 각각 특징과 장단점 그리고 왜 토큰 인증 방식을 사용하지는에 대해 알아보자. Cookie 인증 쿠키는 Key-Value 형식의 문자열 덩어리이다. 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 각 사용자마다의 브라우저에 정보를 저장하니 고유 정보 식별이 가능한 것이다. Cookie 인증 방식 브라우저(클라이언트)가 서버에 요청(접속)을 보낸다. 서버는 클라이언트의 요청에 대한 응답을 ..
OAuth 2.0 개념
·
Computer Science/WEB
OAuth란? 웹을 사용하다 보면 Google과 Facebook 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 웹 어플리케이션을 쉽게 찾아볼 수 있다. 클릭 한 번으로 간편하게 로그인할 수 있을 뿐만 아니라, 연동되는 외부 웹 어플리케이션에서 Facebook 및 Twitter 등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있다. 예를 들어, Google로 로그인하면 API를 통해 연동된 계정의 Google Calendar 정보를 가져와 사용자에게 보여줄 수 있다. 이 때 사용되는 프로토콜이 바로 OAuth다. OAuth에 대한 정의는 다음과 같다. OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근..
호스팅이란 무엇인가?
·
Computer Science/WEB
​호스팅이란 ​호스팅이란 서버나 웹 사이트를 인터넷 상에서 이용할 수 있게 공간을 임대 해주는 서비스이다. 웹 호스팅은 웹 사이트를 구성하는 여러 파일(e.g. 코드, 이미지 등)을 온라인에서 볼 수 있게 해준다. 우리가 호스팅을 위해 임대하는 서버의 공간은 호스팅 종류에 따라 다르다. 즉, 웹 사이트나 웹 페이지를 구성하기 위한 호스팅과, 서버를 열기 위한 호스팅은 관리 방법과 제공받는 서비스, 추가적인 서비스 등이 다르다. 여기서 말하는 공간이란, 우리가 서버를 열기 위해 필요한 자원들을 말한다. CPU, RAM, 하드 디스크, IP Address, 서버를 설치할 컴퓨터와 컴퓨터의 온습도와 전력 관리등 다양한 자원들을 빌려 직접 운영 하기에는 부담이 큰 다양한 자원들을 빌려 필요한 만큼만 사용할 수 ..
브라우저와 동작 원리
·
Computer Science/WEB
브라우저 동작 원리 우리가 평소에 접하는 이 화면은 도대체 어떻게 나타나게 되는 것일까? ​ 우리는 평소처럼 당연하게 인터넷 주소창에 주소를 입력하고 거기에 해당되는 홈페이지 화면에 접속하며 사이트를 돌아다니기만 했지, 이렇게 화면이 보여지는 과정이 어떻게 동작하는지는 생각해보기는 쉽지 않다. ​ 또한 프론트엔드 개발자 역시, HTML과 CSS 문서를 작성하고 Javascript 코드를 짜면서 기대하던 동작을 확인하며 웹 개발을 했을 것이고, 실제로 이 HTML문서가 어떻게 자리를 잡아서 웹 페이지에 각자 자리에 DOM 요소들이 세팅이 되고 CSS 스타일이 적용돼서 그려지는지 맘 잡고 학습해보지 않는 이상 생각해보는 경우가 없을 것이다. ​ 그래서 이참에 맘 잡고 한번 자세히 알아보자. ​브라우저의 주요..
하드웨어 관점에서 인터넷은 어떻게 연결되는가?
·
Computer Science/WEB
인터넷이란? 정보를 담고 있는 각 컴퓨터들을 TCP/IP 라는 통신 프로토콜을 이용해 서로 정보를 주고받도록 하는 컴퓨터 네트워크를 말한다. 인터넷의 역사는 자세히 알려지지 않았지만 1960년대 한 연구 프로젝트에서 시작되었다고 한다. 그리고 1980년대에 들어서 많은 지원이 추가되며 공공 기반의 서비스로 진화해왔다. 인터넷은 지금에 이르기까지 많은 진화를 해왔지만 작동방식 자체는 크게 변하지 않았다. 인터넷은 다수의 컴퓨터를 연결하고 어떤 일이 있어도 연결 상태를 유지할 수 있는 방법을 찾는 방법이다. 인터넷 네트워크 종류 (발전 과정) 단순한 네트워크 ​A와 B라는 pc가 통신을 하기 위해서는 한개의 통신 케이블이 필요하다. ​ 다수의 네트워크 ​그렇다면 위 사진처럼 다수의 컴퓨터를 연결하는 경우에는..
웹 소켓 (Socket) 정리
·
Computer Science/WEB
​웹 개발을 처음 배우기 시작했다면 서버와 클라이언트의 통신은 모두 HTTP 프로토콜만 이용해서 이루어진다고 생각할 수 있다. 하지만 웹 개발을 하면서 채팅, 게임, 주식 차트 등의 실시간 통신이 필요한 서비스를 구현하려 하면 HTTP 프로토콜이 아닌 웹소켓 프로토콜을 사용하는 것이 좋다는 이야기를 들어왔을 것이다. HTTP의 한계 [HTTP] HTTP란? HTTP(Hyper Text Transfer Protocol)란? HTTP(Hyper Text Transfer Protocol)란 서버-클라이언트 모델을 따르면서 request/response 구조로 웹 상에서 데이터를 주고 받을 수 있는 프로토콜(규칙)이다. TCP/IP 기반으로 작동 s-y-130.tistory.com HTTP는 약속이다. 약속을 ..