웹/Node.js

[Node.js] MongoDB: 개념 및 기본 쿼리문

MongoDB란? 비관계형 데이터베이스(NoSQL DB)의 하나 MySQL, Oracle 등의 관계형 데이터베이스는 신뢰도를 더 중요시하기 때문에 SQL문을 읽어들이고 실행하는 데 많은 리소스를 들인다. 반면, 비관계형 데이터베이스는 성능을 최우선으로 생각하기 때문에 실시간 처리나 대용량 트래픽을 다루는 메시징 시스템에 활용된다. MongoDB(NoSQL)는 다음과 같이 관계형 데이터베이스와 대응된다. 관계형 데이터베이스 MongoDB 테이블(Table) 컬렉션(Collection) 레코드(Record) 문서 객체(Document) 즉, 데이터베이스는 컬렉션의 집합이며, 각각의 컬렉션은 여러 개의 문서 객체(Document)를 가진다. 이때, 문서 객체는 레코드와 달리 각 객체마다 똑같은 필드를 지니지 ..

웹/Node.js

[Node.js] Express 6: 쿠키와 세션 (Cookie & Session)

쿠키(Cookie) 쿠키는 클라이언트 웹 브라우저에 저장되는 정보이다. 익스프레스에선 cookie-parser 모듈을 이용해 쿠키를 설정하거나 사용할 수 있다. cookie-parser는 쿠키 헤더를 파싱하여 요청 객체(req)의 cookies 속성에 할당한다. 설치 $ npm install cookie-parser 사용 방법 만약 암호화된 쿠키를 사용하기 위해선 cookieParser() 메소드의 인자로 임의의 문자열(secret key)을 전달하면 된다(아래 예제 코드에서 확인할 수 있다). 이 경우 쿠키 옵션에서 signed의 값으로 true를 할당해야 한다. const express = require('express'); const cookieParser = require('cookie-parse..

웹/Node.js

[Node.js] Express 5: 에러 처리(Error Handling)

이번 포스팅은 전 포스팅인 Express4: 라우터와 이어진다. 등록되지 않은 경로로 요청이 들어왔을 때 에러 처리 - 404 에러(Status 404) 익스프레스에서 404 응답은 에러로 인해 발생하는 결과가 아니므로 에러 핸들러(error-handler) 미들웨어는 이를 캐치하지 못한다. 이렇게 작동하는 이유는 익스프레스에서 404 응답은 단순히 실행해야 할 추가적인 작업이 없다는 것을 나타내기 때문이다. 다시 말해, 404 응답은 익스프레스는 모든 미들웨어 함수 및 라우터를 실행했으며 이들 중 어느 것도 응답하지 않았다는 것을 나타낸다. 이를 처리 하기 위해선 모든 미들웨어 함수 아래에 다음과 같은 미들웨어 함수를 추가하면 된다. 모든 함수 아래에 이러한 미들웨어를 추가하는 이유는 순차적으로 실행되..

웹/Node.js

[Node.js] Express 4: 라우터(Router)

라우터란? 라우터는 클라이언트의 요청 경로(path)를 보고 이 요청을 처리할 수 있는 곳으로 기능을 전달해주는 역할을 한다. 이러한 역할을 라우팅이라고 하는데, 애플리케이션 엔드 포인트 (URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 의미한다. 예를 들어, 클라이언트가 /users 경로로 요청을 보낸다면 이에 대한 응답 처리를 하는 함수를 별도로 분리해서 만든 다음 get()메소드를 호출하여 라우터로 등록할 수 있다. 라우터 사용하기 익스프레스에선 이러한 라우터를 미들웨어로서 제공하고 있다. 다음과 같은 순서로 라우터 미들웨어를 사용할 수 있다. 1. 라우터 객체 참조 2. 라우팅 함수 등록 3. 라우터 객체를 app 객체에 등록 이를 실제 코드로 표현하면 다음과 같다. // 라우..

웹/Node.js

[Node.js] Express 3: 미들웨어(Middleware)

미들웨어란? 공식 문서에 따르면 미들웨어는 요청 객체(req), 응답 객체(res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수에 대한 액세스 권한을 갖는 함수이며, 그 다음의 미들웨어는 일반적으로 next라는 이름의 변수로 표시된다라고 정의되어 있다. 좀 더 쉽게 말하자면, 익스프레스 내에서 웹 요청과 응답에 대한 정보를 사용해서 필요한 처리를 진행할 수 있도록 분리된 독립적인 함수를 미들웨어라고 한다. 그리고 각각의 미들웨어는 next() 메소드를 호출해서 그 다음 미들웨어가 작업을 처리할 수 있도록 순서를 넘길 수 있다. 미들웨어 안에서는 기본적으로 요청 객체인 req와 응답 객체인 res를 파라미터로 전달받아 사용할 수 있다. 그리고 이 미들웨어 함수를 호출한 app 객체 ..

코택
'웹' 카테고리의 글 목록 (3 Page)