JavaScript
-
[Node.js] Passport.js - 로그인 인증 및 세션 (Typescript)JavaScript/NodeJS 2020. 8. 22. 16:13
Node.js에서 사용하는 인증관련 미들웨어 로그인, 접근 권한 등을 인터셉트해서 권한을 체크 Express, Express-session 미들웨어와 연동 가능하여 유연한 기능 제공 인증을 위한 다양한 Strategy 제공(e.g. Facebook. Google ...) passport.js 적용 1. 모듈 설치 $ npm i passport passport-local -D 2. passport 미들웨어 설정 // app.js import express from 'express'; import bodyParser from 'body-parser'; import session from 'express-session'; import passport from 'passport'; import Passport ..
-
[JS] Webpack이란?JavaScript 2020. 8. 21. 14:42
Module 프로그램을 구성하는 구성 요소의 일부 관련된 데이터와 함수들이 묶여서 모듈을 형성하고 파일 단위로 나뉘는 것이 일반적임 모듈화 프로그래밍은 기능별로 파일을 나눠가며 프로그래밍을 하는 것이 유지보수가 쉬움 Bundler 지정한 단위로 파일들을 하나로 만들어서 요청에 대한 응답으로 전달할 수 있는 환경을 만들어주는 역할 번들러를 사용하면 소스 코드를 모듈별로 작성할 수 있고 모듈간 또는 외부 라이브러리의 의존성도 쉽게 관리할 수 있음 Webpack JS 정적 모듈 번들러 Webpack에서는 모든 것(e.g. js, stylesheet, image ...)이 모듈이고 JS 모듈로 로딩해서 사용 사용 이유 네트워크 병목현상 해결 HTML에서는 태그로 자바스크립트 파일을 실행할 수 있지만 많은 파일을..
-
[Node.js] pm2란?JavaScript/NodeJS 2020. 8. 17. 21:51
pm2란? Process Manager의 약어 Node.js의 프로세스를 관리해주는 역할 생산 프로세스 관리자로 서버 인스턴스들에 대한 로드 밸런싱과 Node.js의 Scale Up 또는 Scale Down을 도움 프로세스들이 계속 실행할 수 있는 환경을 제공 처리하지 못한 예외에 의해 스레드가 죽음으로 인해 애플리케이션이 죽는 현상을 방지 사용법 pm2 -version Version 확인 명령어 pm2 start example.js pm2를 실행하는 명령어로 서버 소스코드가 작성되어 있는 js파일을 실행 options --watch : pm2가 실행된 프로젝트의 변경사항을 감지하여 서버를 자동 리로드 해줌 -i max(코어 개수) : Node.js의 싱글 스레드를 보완하기 위한 Cluster 모드 pm..
-
[Node.js] Middleware 란?JavaScript/NodeJS 2020. 8. 16. 13:23
Middleware란? 클라이언트에게 요청이 오면 요청에 대한 응답하기 전인 중간에 목적에 맞게 처리하는 함수 역할 다음 미들웨어 호출(next 함수) req, res 객체 변경 가능 요청-응답 주기 종료(response method 사용) Middleware 유형 1. 애플리케이션 레벨 미들웨어 app.use() or app.method() 함수를 이용해 app 오브젝트의 인스턴스에 바인드 미들웨어를 애플리케이션 영역에 지정한 path대로 처리 가능 app.use((req, res, next) => { console.log('Middleware example'); next(); }) // 특정 경로만 적용 app.use('/example', (req, res, next) => { console.log(..
-
[Node.js] Node.js 란?JavaScript/NodeJS 2020. 8. 15. 14:07
웹 브라우저에 종속적인 JS를 Chrome V8 엔진을 기반으로 외부에서 실행할 수 있는 Runtime 환경을 제공 특징 모듈 시스템 모듈 : 독립적인 하나의 소프트웨어 기능별 모듈화 가능 싱글 쓰레드(Single Thread) 하나의 Thread만을 사용해서 여러 Clinet로부터 오는 Request를 처리 Context Switching으로 인한 오버헤드를 방지 이벤트 드리븐(Event Driven) 기능별로 등록된 Event Listener Non-Blocking I/O Non-Blocking : 비동기적 처리의 태스크들을 호출 스택에서 태스크 큐로 보내거나 태스크 큐로 부터 이벤트 루프를 통해 다시 스택으로 가져오는 I/O 형태 하나의 Thread가 Request를 받으면 다음 처리에 요청을 보내..
-
[JS] Async / AwaitJavaScript 2020. 7. 30. 21:22
동기 / 비동기 동기 요청을 받으면 요청한 작업의 처리가 끝나고 다음 코드 실행 코드가 위에서부터 아래로 순서대로 실행됨을 의미 비동기 요청에 대한 처리가 끝나기전에 다른 작업을 처리 비동기 요청은 응답 시간이 모두 달라 순서대로 실행되지 않고 호출시간과 응답시간에 따라 동작을 수행 async await 비동기 요청의 실행 순서 문제를 해결하기 위해 ES6부터 제공됨 let delay = (msg) => { let ms = Math.floor(Math.random() * 1000) + 1; return new Promise((resolve) => { setTimeout(resolve, ms); }).then((v) => { console.log(v, `${ms} ms`); }) } let asyncFun..
-
[JS] forEach, for of, for in 차이점JavaScript 2020. 7. 29. 21:57
forEach 모든 요소를 순회 break, return 지원 안함 let arr = ['a', 'b', 'c']; arr.forEach((currentValue, index, array) => { console.log(currentValue); // result : 'a' 'b' 'c' console.log(index); //result : 0 1 2 console.log(array); //result : ['a', 'b', 'c'] ['a', 'b', 'c'] ['a', 'b', 'c'] }) for of es6에서 추가된 문법 반복 가능한 객체(Array, Map, Set, String ...)를 반복 하는 기능 수행 객체의 요소(Data)를 순회하기 위한 구문 단점 인덱스가 문자로 반환됨 let ..