MongoDB : NoSQL(Not Only SQL) DB Solution
Express.js : Node.js Framework
React.js : JavaScript Library (Browser-side/Frontend JavaScript)
Node.js : JavaScript Runtime (Server-side JavaScript)
javascript와 관련된 4가지 기술을 이용해 웹 사이트를 개발하는 것이다. MongoDB는 JS 문법을 사용한다.
❝ Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. ❞
풀어서 설명하면 Node.js는 Chrome V8(오픈 소스 자바스크립트 엔진)을 이용하여 javascript로 브라우저가 아닌 서버를 구축하고, 서버에서 javascript가 작동되도록 해주는 런타임 환경이다.
❝ Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다. ❞
쉽게 말해 Express는 Node.js의 원칙과 방법을 이용하여 웹 애플리케이션을 만들기 위한 프레임워크이다. 표준 웹서버 프레임워크로 불려질 만큼 많은 곳에서 사용되고 있다.
Express에는 웹 애플리케이션을 만들기 위한 각종 라이브러리와 미들웨어 등이 내장돼 있어 개발하기 편하고, 발 규칙을 강제하여 코드 및 구조의 통일성을 향상시킬 수 있다.
$ npm init
프로젝트 시작시 기본 설정을 하는 명령어이다. 애플리케이션의 이름과 버전 등 여러가지 정보를 설정 할 수 있다. 시작 점은 index.js로 하면된다.
$ npm install express --save
express를 설치하는 명령어이다. --save를 추가하면 package.json의 dependencies에 추가가 된다. 이것은 프로젝트를 공유할 때 다른 사람에게 넘기고
npm install
만 해주면 모든 모듈을 다운 받을 수 있기에 협업에 큰 도움이 된다.
const express = require('express')
const app = express()
const port = 5000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
5000번 포트에 간단한 서버를 띄운 코드이다.
express를 require 해서 사용한다.
app.get 부분은 라우팅을 하는 코드이다. 라우팅이란 애플리케이션의 엔드 포인트의 정의하고 클라이언트의 요청에 응답하는 방식을 말한다.엔드포인트가 "/"인 곳으로 요청(req)을 보내면 'Hello World!" 라는 응답(res)을 보낸는 것이다.
라우트 메소드는 HTTP 메소드 중 하나로부터 파생되며, express 클래스의 인스턴스에 연결된다.
앞으로 MERN 스팩을 이용해 Boiler plate를 만들 것인데 사용할때 관련 메서드를 정리하려고 한다.
서버를 실행하면
node index.js
이 명령어를 사용하면 된다. 더 쉽게 할 수 있는 방법이있다.
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
package.js의 script에 저렇게 추가를 하면 다음 부턴
npm run start
이 명령어로 서버를 실행할 수 있다. 자신에게 맞는 커스텀이 가능하다.