본문 바로가기

Javascript

(43)
Node.js 미들웨어(Middleware) 미들웨어 (Middleware) Express는 Node.js에서 복잡하게 해야할 일을 간단하게 만들어준다고 했다.Express가 어떻게 간단하게 해줄까? 그 방법 중 하나가 미들웨어를 사용하는 것이다.미들웨어란?쉽게 이해하기 위해서 간단히 표현하면 어떤 요청과 응답 사이 즉, 중간에 껴서 어떤 처리를 하는 애 다.개발자들이 이미 만들어 놓은 수 많은 미들웨어(ex. Morgan, Body-parser등)가 있는데 npm에서 설치해서 사용하면 된다.노드 런타임은 기본적으로 요청을 받아서 원시바이트를 처리할 수 있는 두개의 자바스크립트 개체로 전환한다. 그 중 하나는 요청(request)에 대한 것이고, 하나는 응답(response)에 대한 것이다.Node에서 이 두 가지 개체는 단 하나의 함수로 전달되지..
방명록 웹 애플리케이션 만들기 방명록 웹 애플리케이션 만들기 지금까지 공부한 내용을 복습하기위해 간단한 애플리케이션 제작.1. 준비1) npm init 명령으로 package.json 파일 만들기.2) 필요한 npm 모듈 설치 (npm install express morgan body-parser ejs --save) 2. 코딩app.js123456789101112131415161718192021222324252627282930313233343536373839404142434445464748var http = require("http");var path = require("path");var express = require("express");var logger = require("morgan");var bodyParser = req..
Express 기초 (morgan 로깅미들웨어, 라우팅, 요청/응답 확장, 뷰 렌더링) Express 기초 주요 기능1. 미들웨어 - 하나의 함수를 통해서만 요청이 흘러가는 node.js와 대조적으로, 함수를 효과적으로 배열하는 미들웨어 스택이 있음.2. 라우팅 - HTTP메서드(get,post,put,delete...)로 특정 URL을 방문할 때만 함수가 호출됨.3. 요청/응답 개체에 대한 확장 - response.redirect(...) 나 response.sendFile(...) 처럼 확장 가능.4. 뷰 - 뷰를 사용해서 HTML을 동적으로 렌더링할 수 있음. (뷰템플릿 pug, ejs 등)Morgan로그 기록을 남기는 morgan 모듈을 설치하고 사용해본다. npm install morgan --save 명령어를 입력하여 morgan 모듈을 설치한다.123456789101112131..
Node.js 기초와 모듈 (내장 모듈, npm, 사용자정의 모듈) Node.js 기초 * 노드 설치https://nodejs.org/ko/ 에서 설치 LTS 버전 설치하면 된다. (document 확인도 여기서 함)* 노드 실행1. 노드 프로젝트(?)를 시작할 디렉토리에 간다.2. 원하는 자바스크립트 파일을 만든다. (ex. jeong_pro.js)3. 명령프롬프트에서 'npm init' 을 입력하고 프로젝트에 대해 몇 가지 입력하면 package.json 파일이 디렉토리에 생성된다. (package.json은 패키지에 관한 정보와 의존중인 버전정보를 갖고있다.(메타데이터))4. 자바스크립트 파일에서 사용하는 모듈이 준비되었는지 확인하고 설치한다. (node_modules 파일이 생성됨)(자바스크립트파일에서 내장 모듈로만 이뤄진게 아니라면 npm으로 설치해야할 모듈들이..
Node.js 와 Express Node.js Node.js는 자바스크립트를 브라우저외에서도 실행하는데 사용되는 자바스크립트 플랫폼이다.이 특징으로 자바스크립트 문법을 가지고 '서버'를 만들 수 있다.노드 이전에는 하나의 애플리케이션을 만들기 위해 두 가지 서로 다른 기술과 패러다임, 라이브러리를 배워야 했다.그러나 노드를 사용하면 프론트엔드 개발자도 백엔드에 뛰어들 수 있고 반대도 가능하게 된다.나아가 노드로 이뤄진 자바스크립트 웹 애플리케이션 스택인 MEAN스택을 만들었다.MongoDB (자바스크립트로 제어하는 DB), Angular.js(프론트엔드 자바스크립트 프레임워크) 왜 Node.js를 사용하는가? 1. 자바스크립트 엔진이 빠르기 때문.- 구글 크롬의 엔진을 기반으로 하기 때문에 수천 개 명령을 1초에 처리할 수 있다.2. ..
커링 (curry, curryr, get) 커링 12345678910111213141516function _curry(fn){ return function(a){ return function(b){ return fn(a,b); } }}var add = _curry(function(a,b){ return a+b;}); var add10 = add(10);console.log( add10(5) ); //15console.log( add(5)(3) ); //8// 결국 원형함수를 계속 가지고 있다가 원하는 시점에 평가하는 스타일 원형 함수를 가지고 있다가 원하는 시점에 평가하는 함수 => curry 함수 1234567891011121314function _curry(fn){ return function(a,b){ return arguments.leng..
함수형 프로그래밍의 장점, 다형성!(어떤 객체에만 적용가능한 메서드가 아닌 함수를 생성한다) 다형성 1234567891011121314 console.log( [1,2,3,4].map(function(val){ return val * 2; }));// 2,4,6,8 출력console.log( [1,2,3,4].filter(function(val){ return val % 2; }));// 1,3 출력 Colored by Color Scripter 다형성에 대해 얘기하기전에 기존에 만들었던 _map 함수와 _filter 함수는 이미 만들어져있다.그래서 위와같이 사용이 가능하다.명확히는 함수가 아닌 메서드로 만들어져있다.무슨말이냐면 메서드는 어떤 객체, 여기서는 배열의 메서드라서 배열객체가 생성된 후에 그 배열객체에'만' 적용가능한 함수인 것이다.12345console.log( document.qu..
each 메서드 만들어보기 each지난번 _map 함수와 _filter 함수에도 똑같이 중복되는 부분이 있었다.중복제거를 하는 each함수를 만들어본다.12345678910111213141516function _filter(list,predi){ var new_list = []; for(var i=0;i< list.length;i++){ if(predi(list[i])){ new_list.push(list[i]); } }}function _map(list, mapper){ var new_list = []; for(var i = 0; i