Web(4)
-
REST API
1. REST API 1. 개요 REST API는 REpresentational State Transfer의 줄임말로 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이는 로이 필딩이 자신의 박사 학위 논문에서 소개하면서 알려졌다. 1. 구성 자원(Resource) - URI 행위(Verb) - HTTP method 표현(Representations) 2. 특징 1. Uniform Interface URI로 지정한 리소스에 대한 조작은 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다. 2. Stateless 작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다. 세션이나 쿠키를 별도로 저장하고 관리하지 않아 API 서버는 요청만 처리한다. 때문에 서비스의 자유도가 높..
2023.03.18 -
JWT
JWT란? JWT(Json Web Token)는 JSON 포맷을 활용한 토큰 기반의 인증 방식 중 하나이다. RFC 7519에 명시되어 있으며 기존의 Stateful한 세션 방식의 인증 방식과 달리 Stateless한 인증 방식으로 사용된다. JWT가 나온 배경부터 차근차근 살펴보도록 하자. JWT의 탄생 배경 웹 환경에서 까다로운 부분 중 하나는 로그인 상태를 유지하는 것이다. 사이트에 회원가입한 유저가 로그인한 후 사이트를 돌아다니는데 이동할 때마다 로그인해야 하는 것은 매우 불편하다. 이런 문제를 해결하는 방법으로 전통적인 세션이 있다. 세션은 일반적으로 서버의 메모리에 사용자에 대한 정보들을 저장해두는 방식으로 사용된다. 클라이언트에는 세션 ID를 내려주고 해당 ID에 해당하는 세션의 유무로 사용..
2023.03.18 -
[REST API] 개인 프로젝트 REST API 버전 관리
버전 관리 알고 있는 4가지 버전 관리 방법 중 Header로 관리하는 방법을 선택했다. URI Request Parameter Header MIME 선택 이유 먼저 사용자들이 이용할 서비스는 직접 API를 다룰 일이 없다. 따라서 API 정보가 일반 사용자에게 보여질 필요가 없다고 생각했다. 1번과 2번이 해당되어 제외했고 Header와 MIME 중 선택해야 했는데 굳이 MIME으로 복잡하게 할 필요가 없다고 생각하여 간편하게 Header로 관리하는 방법을 선택했다. 네이밍을 직접 한 것은 처음이었는데 네이밍 컨벤션에 관하여 검색해보니 "X-"를 사용하는 것은 deprecated 되어 지양하고 각 서비스에 적절한 이름을 정하라고 했다. 그래서 나는 만들 서비스의 이름을 따 StudyLounge-API-..
2021.11.27 -
[Servlet] 서블릿이란?
1. 서블릿 서블릿(Servlet)은 자바 코드를 통하여 동적인 웹 어플리케이션을 개발할 수 있게 해주는 프로그램입니다. 서블릿 이전의 웹 사이트는 정적인 정보만을 제공하는 경우가 대부분이었습니다. 이를 개선하여 사용자에게 인터렉티브한 정보를 제공해주기 위해 서블릿이 개발되었습니다. 서블릿은 자바로 작성되었기 때문에 자바와 같은 특징을 가집니다. 서블릿은 다른 자바 프로그램과 다르게 독자적으로 실행할 수 없습니다. 서블릿을 실행하기 위해서는 컨테이너(Container)를 함께 사용해야 합니다. 여기서 말하는 컨테이너란 서블릿을 구동시키기 위한 프로그램을 말합니다. 대표적으로 Apache 재단에서 만든 오픈소스 프로그램인 톰캣(Tomcat)이 있습니다. 사용자의 요청에 따른 흐름은 다음과 같습니다. 사용자..
2021.07.10