[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타 189

JWT (JSON Web Token)

JWT (JSON Web Token) JSON 객체를 사용하여 가볍고 자가수용적(self-contained)으로 정보를 전달한다. HTTP 헤더 혹은 URL의 파라미터로 두 개체 사이에서도 손쉽게 전달된다. Java, Python, C++, PHP, JavaScript, Go, Swift 등 대부분의 주류 프로그래밍 언어에서 지원된다. 자가수용적(self-contained)? 필요한 모든 정보를 자체적으로 지니고 있다. 자체적으로 기본정보, 전달정보, 서명(signature)를 포함한다. 회원 인증을 하거나, 정보교류를 할 때 유용하게 사용된다. 토큰 내부에 검증증명이 포함되어 있기 때문에 이를 확연하여 인증정보 혹은 정보의 조작여부를 확인할 수 있다. A.B.C와 같이 .을 구분자로 하여 3가지 문자열..

🛠 기타/WEB 2021.02.03

서버기반 인증시스템과 토큰기반 인증 시스템

서버기반 인증시스템 원리 서버측에서 사용자들의 정보를 기억하고 관리한다. 메모리나 디스크, 데이터베이스 등에 세션정보를 유지한다. 클라이언트에게 요청을 받으면 세션의 상태를 유지하고 해당 정보를 서비스에 이용한다. 이를 Stateful 서버라고 한다. 단점 세션의 사용량이 많아질 경우 서버컴퓨터의 메모리 혹은 데이터베이스에 무리를 줄 수 있다. 서버를 확장할 때 세션을 분산시키는 시스템을 설계하기 어려워 확장에 방해가 된다. 세션의 기반이 되는 쿠키는 단일 도메인 및 서브 도메인에서만 작동하기 때문에 여러 도메인에서 관리하기 어렵다. 토큰기반 인증시스템 원리 서버 기반 시스템의 단점을 극복하기 위해 등장했다. 인증받은 사용자에게 토큰을 발급하고, 서버에 요청할 때 헤더에 토큰을 함께 보내 유효성검사를 한..

🛠 기타/WEB 2021.02.03

Node.js - Passport.js 기초

Passport.js express 프레임워크 상에서 사용되는 인증 미들웨어 라이브러리이다. 기본적인 인증시스템 지원과 더불어 페이스북, 구글과 같은 소셜 로그인을 할 수 있도록 도와주기 때문에 매우 편리하다. 패키지 설치 $ npm install passport passport.js 패키지를 설치한다. Strategies passport.js에서는 다양한 인증방법을 'strategie' 라는 이름으로 제공한다. 기본적인 사용자 ID 및 PASSWORD를 사용하는 방법부터, OAuth를 사용한 위임 인증 등 다양한 strategies가 존재한다. 그중 가장 기본으로 단순히 ID와 PASSWORD를 사용한 인증방법인 local strategie를 사용해보자. 물론 단순한 로그인만 사용할 것이..

🛠 기타/WEB 2021.02.03

Node.js - session

session 쿠키를 좀 더 개선하여 더 안전하도록 만든 것이 세션이다. 쿠키의 기능에 서버 데이터 공간을 합친 개념이라고 생각하면 된다. 사용자의 식별값만을 브라우저에 쿠키로 저장하고, 실제 데이터는 서버에 저장한다. 세션을 node.js express 상에서 간단하게 활용하기 위해선 추가적인 패키지 설치가 필요하다. 패키지 설치 $ npm install express-session node.js가 session을 생성하고 관리할 수 있도록 도와주는 미들웨어이다. 사용예제 var express = require('express'); var session = require('express-session'); var app = express(); app.use(session({..

🛠 기타/WEB 2021.02.02

Node.js - cookie

Cookie 웹브라우저는 기본적으로 cookie(쿠키)라는 것을 지원한다. 쿠키를 활용하면 서버로부터 받은 데이터 중 일부를 브라우저 자체적으로 저장해놓고 추후 활용할 수 있다. (접속 URL은 동일해야함) 따라서 사용자가 브라우저를 사용하는 동안은 이러한 쿠키를 기반으로 정보가 저장 및 관리될 수 있다는 것이다. 이러한 cookie를 관리하려면 node.js express에서는 별도의 패키지가 필요하다. 패키지 설치 $ npm install cookie-parser cookie-parser는 이러한 브라우저의 쿠키데이터를 node.js가 확인하고 관리할 수 있도록 도와주는 패키지(미들웨어)이다. 사용예제 var express = require('express'); var cookieParser = re..

🛠 기타/WEB 2021.02.02

Node.js - multer (파일 업로드)

multer express 기본 기능에는 파일 업로드 기능이 포함되어 있지 않다. multer는 사용자 파일 업로드 기능을 제공하는 패키지로, 사용자가 전송한 파일을 처리하는 작업을 수행한다. 패키지 설치 $ npm install --save multer 사용 예제 📄app.js var express = require('express'); var multer = require('multer'); var upload = multer({ dest: 'uploads/' }); var app = express(); app.set('view engine', 'pug'); app.set('views', path.join(__dirname, 'html')); app.get('/upload', function(req,..

🛠 기타/WEB 2021.01.31

AWS - S3

S3 Simple Storage Service의 약자로, 파일을 저장할 수 있는 서비스이다. 99.9%의 객체 내구성을 보장하도록 설계된 인프라를 제공한다. 데이터가 여러 시설, 여러 디바이스에 중복으로 저장된다. 가용성도 높고, 가격도 저렴하며, 보안성 및 확장성이 보장되기 때문에 유용하다. S3 사용해보기 AWS 홈페이지에서 Services 중 S3에 접속하고, Create Bucket을 만들어 Bucket을 생성한다. Bucket은 일종의 저장장치라고 생각하면 된다. Bucket의 이름과 지역을 설정하고 생성하면 된다. (이름중복X) 홈페이지에서는 간단하게 Upload 버튼으로 파일을 업로드할 수 있으며, 그렇게 업로드된 파일을 클릭해보면 해당 파일에 접속할 수 있는 link도 존재하게 된다. (다..

Node.js - AWS SDK

AWS SDK? SDK : Software Development Kit의 약자로 특정 서비스를 프로그래밍적으로 제어하기 편리하도록 제공되는 라이브러리들을 의미한다. 따라서 AWS SDK는 AWS를 프로그래밍적으로 제어하기 편리하도록 제공되는 라이브러리들을 의미하는 것이다. 언어별로 다양한 SDK가 제공되며, 이 중 Node.js의 SDK를 사용해보자. 튜토리얼 패키지 설치 $ npm install aws-sdk --save aws-sdk 패키지를 프로젝트에 설치해준다. 이렇게 설치한 SDK는 바로 사용할 수 없고, 자격검증이 포함되어야 한다. 일반적으로 AWS 환경 위에서 node.js를 돌리거나, ~/.aws에 credentials파일를 생성하여 자격검증을 진행한다. 자격검증 📃 credentials ..

AWS - Scalability

클라우드 컴퓨터의 특징과 Scalability 클라우드 컴퓨터를 사용할 수 없을 때, 사용자의 수요와 성능을 맞추기 힘들다. 갑자기 수요가 늘어나거나 줄어드는 경우 대응하기 어렵기 때문이다. 클라우드 컴퓨터는 가상의 컴퓨터를 사용하는 것이기 때문에, 사용자의 수요와 성능을 일치하기 용이하다. 이 때 사용하는 방법이 Scale up과 Scale out이다. Scale up과 EIP Scale up Scale up은 인스턴스의 성능을 높여 대응하는 것이다. 한 인스턴스(EC2)를 이미지화한 다음, 해당 이미지를 기반으로 더 좋은 성능의 타입으로 재생성하는 것이다. Create Image를 통해 인스턴스를 이미지화할 수 있으며, 이미지화 진행중엔 인스턴스가 꺼진다. Monitoring을 통해 CPU 부하상황을..

Node.js - Sequelize

Sequelize? node.js의 ORM으로, mysql이나 postgresql과 같은 DB를 제어할 수 있도록 해준다. cf. ORM(Object relational Mapping) : 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 즉, 프로그래밍 언어의 구문을 자동으로 SQL 구문으로 변경해준다. $ npm install sequelize 또한 sequelize는 mysql 등의 DB모듈도 필요로 한다. 그 중 하나인 mysql을 설치하자. $ npm install mysql2 dotenv 설정 Sequelize를 사용하기 위해서는 앞서 말했듯이 DB와 연동이 되어있어야 한다. mysql과 같..

🛠 기타/WEB 2021.01.28