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

🛠 기타/WEB 55

웹서버와 WAS

웹서버 일반적으로 '서버'라고 하면 서버역할을 하는 컴퓨터를 뜻한다. 하지만 어떤 컴퓨터가 서버역할을 하도록 도와주는 소프트웨어도 서버라는 이름으로 부른다. (=웹서버) 웹서버는 이름 그대로 웹사이트를 제공하는 소프트웨어로 html,css,js 및 기타 asset 파일 등을 사용자에게 보내는 역할을 한다. apache-php-mysql(apm)과 같이 기초적인 구조의 동적 웹은 처리할 수도 있지만 다른 구조는 처리할 수 없는 경우가 많다. 대표적으로 Apache와 NginX가 있다. WAS Web Application Server의 약자 단순히 웹을 제공해주는 것이 아닌 동적 웹페이지 생성과 같이 프로그래밍되어 내장된 작업을 수행한 후 전달하는 기능까지 보유하고 있다. Tomcat을 예를 들자면, 스프링..

🛠 기타/WEB 2021.07.17

Redux - createStore / dispatch / subscribe

Store 생성 : Redux.createStore() function reducer(state, action) { if(state == undefined) { return {color: 'yellow'} } } var store = Redux.createStore(); console.log(store.getState()); // {color: 'yellow'} 출력 store 생성에는 reducer 등록이 필요하다. 이 때 store에 아무런 값이 없을 때는 state값이 undefined이기 때문에 초기화를 해주어야 한다. getState로 state를 불러올 수 있다. Reducer with action : store.dispatch() store.dispatch({ty..

🛠 기타/WEB 2021.04.18

Redux - 기초 개념

Redux란? 자바스크립트 앱을 위한 예측가능한 상태의 저장소 코드의 결과가 어떻게 나올지 좀 더 잘 예측할 수 있도록 도와줌으로서 코드의 복잡성을 낮춘다 하나의 state(상태)를 갖고, 해당 state들이 저장되는 store에 앱에서 필요한 모든 데이터를 넣고 관리하는 것으로 복잡성을 낮춘다. 외부로부터 철저히 차단되어 인가된 담당자(=함수)만을 통해 관리가 가능하다 작동하는 원리를 응용해 UNDO, REDO와 같은 기능도 수행이 가능하다. 앱을 리프래쉬해도 데이터(상태)는 살아있어 재입력을 할 필요가 없는 핫모듈리로딩을 할 수 있다. Redux의 구성요소 store : 정보가 저장되는 곳. 앱을 구성하며 생기는 동적 정보들이 들어가는 곳. state : 실제정보로, 절대로 해당 state에 직접 접..

🛠 기타/WEB 2021.04.17

Node.js - bcrypt

bcrypt 암호를 해시처리하는데 도움을 주는 라이브러리이다. 패키지 설치 $ npm install bcrypt기본사용법 const bcrypt = require('bcrypt'); const saltRounds = 10; const myPlaintextPassword = 's0/\/\P4$$w0rD'; const someOtherPlaintextPassword = 'not_bacon'; 해시처리를 위한 기본값들이다. saltRounds : 일종의 노이즈값으로 이 값을 높일 수록 해시처리하는데 드는 시간이 올라가 보안성이 높아진다. myPlaintextPassword : 내 비밀번호값 someOtherPlaintextPassword : 비밀번호와 다른 값 (비교..

🛠 기타/WEB 2021.02.04

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