'REST' 를 보다 'RESTful' 하게 API 만들기

    REST API 인증 파트가 어느정도 마무리되고 써볼 글은 API 에 대한 이야기다. 가장 처음, REST(Representational State Transfer) API 에 대한 이야기를 해보고자 한다. REST API 는 SPA(Single Page Application) 방식으로 개발된 프론트엔드에서 백엔드의 데이터를 가져올 때 가장 많이 사용되는 자원(Resource) 처리방식이다. REST API 를 따르는 API 가 세상에는 많이 존재하고 있으므로 몇 가지 규칙만 알고있으면 다른 서비스의 API 를 사용하는 것에 거부감을 느끼지는 않을 것이다. REST API 의 가장 두 가지 특징으로는 URI 로 자원(Resource)을 요청하여 특정 형태로 표현(Representation)한다는 것과 H..

    쿠키(Cookie), 그리고 세션(Sessions)에 대해 알아보자

    인증과 관련된 포스트 중 마지막으로 알아볼 것은 쿠키(Cookie)와 세션(Sesisons)이다. 어플리케이션 레벨에서 인증하는 JWT(JSON Web Token), OAuth, Session 을 끝으로 인증 쪽은 마무리 지을 예정이며 프로토콜 레벨의 인증인 HTTP Basic, HTTP Digest 인증은 생략하기로 하자. 언젠간 이야기할 지도 모르겠지만, 지금 이 시점은 아니다. 세션(Sessions) 세션(Sessions)은 웹 어플리케이션을 개발할 때 기본적으로 배우는 쿠키(Cookie)*와 함께 배우는 개념이다. 둘 다 데이터라는 점에서는 동일하지만 쿠키는 클라이언트(웹 브라우저)에, 세션은 서버(파일, RDBMS, Redis)에 저장된다는 것이 가장 큰 차이점이다. 쿠키*는 비로그인 상태에서 ..

    OAuth 2.0 클라이언트 만들기(feat. 깃허브)

    OAuth 2.0 OAuth 는 기본적으로 서비스 제공자(깃허브, 트위터, 페이스북)가 신뢰할 수 없는 타 어플리케이션에게 사용자의 아이디와 패스워드를 제공하지 않더라도 사용자의 특정 정보에 접근하거나 작업을 처리할 수 있도록 하는 방법이자 표준이다. 최근 일반적으로 웹사이트에 흔히 볼 수 있는 SNS 계정으로 로그인하는 것이 가장 대표적인 사용처라고 볼 수 있다. 내가 만든 서비스에 수동으로 회원가입 기능을 넣지 않더라도 서비스 제공자가 가지고 있는 개인정보를 기반으로 로그인할 수 있도록 하는 것이며 이를 사용하면 작은 서비스에서 직접 비밀번호를 관리해야 하거나 하는 번거로운 부분을 떠안고 가지 않고 부담을 대기업에게 떠넘기게 된다. JWT(Json Web Token)와는 다르게 토큰 자체는 큰 의미를..

    JWT(JSON Web Token)의 개념부터 구현까지 알아보기

    JWT(JSON Web Token) JWT 는 유저를 인증하고 식별하기 위한 토큰(Token)기반 인증이다. RFC 7519 에 자세한 명세가 나와있다. 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다. JWT 가 가지는 핵심적인 특징이 있다면, 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함(Self-contained)된다는 것이다. 데이터가 많아지면 토큰이 커질 수 있으며 토큰이 한 번 발급된 이후 사용자의 정보를 바꾸더라도 토큰을 재발급하지 않는 이상 반영되지 않는다. JWT 를 사용하면 RESTful 과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고 받을 수 있게된다. 세션..

    Webpack 3 에서 Webpack 5 으로 바꾸기 위해 해야 할 일들

    현재 티도리 프레임워크는 Webpack 3 를 기반으로 동작하고 있다. 최근 Webpack 5 로 업그레이드하는 작업을 진행하고 있는데, 그 와중에 당연히 시행착오도 여럿 발생하고 있어 내가 했던 삽질을 바탕으로 웹팩을 업그레이드하기 위해 겪어야 할 과정을 공유하고자 한다. 본론으로 가기 전에 먼저 이야기 하자면, 꼭 필요한게 아니라면 웹팩 업그레이드는 권장하지 않는다. 번거로운 일이 한 두개가 아니다. 게다가 둘은 Webpack 4 보다도 큰 차이를 보이고 있어 주의가 필요하다. 글을 쓰기전에 먼저 결론부터 말하자면 Webpack 3 을 Webpack 5 로 업그레이드할 때 중요한 것은 다음과 같다. Webpack, Webpack Dev Server 의 변경된 CLI 사용법 숙지 설정 파일의 새로 추가..