꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

JAVASCRIPT 73

currying이란

Currying은 1970년 Christopher Strachey가 Haskell Brooks Curry의 이름에서 착안하였습니다. 여러 개의 인자를 가진 함수를 호출할 경우, 파라미터의 수보다 적은 수의 파라미터를 인자로 받으면 누락된 파라미터를 인자로 받는 기법입니다. 함수 하나가 n개의 인자를 받는 과정을 n개의 함수로 각각의 인자를 받도록 합니다. 함수를 체인으로 계속 생성해 결과적으로 값을 처리하도록 하는 것이 그 본질입니다. 예를 들어보면, f(a, b, c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의 인수가 호출 가능한 프로세스로 호출된 후 병합되도록 변환하는 것입니다. 화살표 함수로 예시를 들겠습니다. const sum = (a, b) => a + b; a와 b 매개..

REST API란

HTTP 서버 프로젝트 공동 설립자인 로이 필딩은 당시 HTTP의 장점을 최대한 활용할 수 있는 아키텍처로서 REST를 소개했고, 이 REST의 기본 원칙을 지킨 서비스 디자인을 RESTful이라 표현합니다. 즉, REST란 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식(CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달)을 규정한 아키텍처이고, REST API는 REST를 기반으로 서비스 API를 구현한 것입니다. RESTful API는 아래와 같은 것들로 구성됩니다. Resource : 자원, URI Method : 요청 방식, GET / POST / PUT / PATCH / DELETE Representation of Resource (payload) : 자..

oAuth란

세 개의 참여자가 있습니다. 먼저, 제가 개발한 서비스(Client)가 있습니다. 그리고 그 서비스를 사용하는 사용자(Resource Owner)가 있습니다. 마지막으로 제 서비스가 연동하려는 다른 서비스(Resource Server, Authorization Server)가 있습니다.(구글, 페이스북 등) 예를 들어서 사용자가 제 서비스에서 글을 쓰면, 사용자의 구글 캘린더에 자동으로 저장되도록 하거나 페이스북에도 같은 글이 올라가면서 공유할 수 있도록 개발할 수 있습니다. 제 서비스는 사용자의 구글 혹은 페이스북 계정에 접근을 해야됩니다. 이때 사용되는 기술이 oAuth입니다. oAuth를 이용하면 안전하게 제 서비스가 구글 혹은 페이스북과 안전하게 상호작용할 수 있습니다. 구글 혹은 페이스북에서 사..

쿠키 / 세션 / 로컬스토리지 / 세션스토리지

쿠키 클라이언트가 서버에 방문한 정보를 브라우저에에 저장하는 작은 파일입니다. 쿠키의 경우 매번 서버에 요청을 할 때마다 같이 보내지기 때문에 쿠키가 크다면 서버에 부담이 갈 수 있습니다. 유효 기간을 지정해 줄 수 있으며 대부분의 브라우저에서 지원합니다. 용량은 약 4KB입니다. 세션 세션은 서버측에서 관리합니다. 서버에서 클라이언트를 구분하기 위해 세션 ID를 부여하고, 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다. 쿠키보다 안전하지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 됩니다 로컬스토리지 HTML5에서 추가된 웹 저장소입니다. key-value 스토리지의 형태를 갖고 있으며, 단순하고 사용하기 쉽습니다. key-value 형식의 저장 이외의 기능은 없으..