우선, npm 을 이용하여 개발 환경을 셋팅하자.

bash
1
2
3
$ mkdir api && cd api
$ npm init --yes
$ npm install --save --save-exact express body-parser mongoose

기본적인 개발 환경이 구성됐다면, package.json 에 사용할 패키지들의 정보를 작성한다.
이번에 사용하여 구현할 패키지들의 구성은 다음과 같다.

package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "Server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "1.17.2",
"express": "4.15.3",
"mongoose": "4.11.1"
}
}

기본적인 설정이 끝났다. 다음은 디렉터리 설정을 할 예정이다.

디렉토리 구조
  • tree
  • command
1
2
3
4
5
6
7
8
9
10
11
12
13
Server/
|-- config/
|-- controllers/
| |-- userController.js
|-- models/
| |-- userModel.js
|-- routes/
| |-- userRoute.js
|-- app.js
|-- controllers.js
|-- models.js
|-- routes.js
|__ package.js

다음은, Node.js 어플리케이션을 작성하기에 앞서 작성시의 권고사항들을 짚고 가겠다.
아래 스타일가이드는 Felix’s Node.js Style Guide 의 일부이다.
각 권고사항에 따른 부가 설명 혹은 사견을 달았다.

1. 동기보다는 비동기 함수를 사용하라

Node.js 는 쓰레드나 별도 프로세스 대신 비동기 이벤트 위주 I/O 를 사용하는 고도의 확장성을 가진 시스템이다.
간단한 작업을 수행하지만 접근 빈도가 높은 웹 어플리케이션에 적합하다.

Shelley PowersLearning Node

2. 2칸 들여쓰기를 사용하라.

칸수보다는 일관성이 중요하다고 생각한다.

MadistMEAN Stack

3. 세미콜론을 사용하라 / 세미콜론을 사용하지 마라.

근래 들어, 많은 언어들이 세미콜론 없이도 해석을 한다.
그치만, 나의 경우 습관이고, 명확하다고 판단하여 ; 세미콜론을 사용한다.

MadistMEAN Stack

4. 작은 따옴표를 사용하라.

PHP의 경우 단순 스트링의 경우 작은 따옴표를 이용하여 작성하는게 큰 따옴표보다 성능이 더 좋다.
( 변수를 해석하냐 안하냐 차이라고 생각된다. 보다 자세한사항은 검색해보면 나온다.)
Node.js 의 경우에는 성능상의 차이라기보다는, 표현상의 차이라고 생각된다.
이건 작은이든, 큰 따옴표든 일관성있게만 진행하면 될 것으로 생각된다.

MadistMEAN Stack

5. 여러 개의 변수를 정의 시에 단일 var 키워드를 사용하라 / 단일 var 키워드를 사용하지 마라.

중요한지 잘 모르겠다.

MadistMEAN Stack

6. 상수는 모두 대문자여야 한다.

이 항목에 동의한다.

Shelley PowersLearning Node

7. 변수는 camel 표기법을 사용한다.

이 항목에 동의한다.

MadistMEAN Stack

8. 완전 항등 연산자 (strict equality operator, ===)를 사용하라.

이 항목에 동의한다. == 의 경우 내가 의도치 않은 결과물을 낼 수 있다.

MadistMEAN Stack

9. 클로저에 이름을 붙여라.

클로져
  • Named
  • UnNamed
1
2
3
req.on(‘end’, function onEnd() {
console.log(‘Right’);
});

function 명을 꼭 붙이자. onEnd

10. 라인 길이가 80자 이하여야 한다.

이 항목에 동의한다. 모듈화하여 분할 하는게 현명하다.

MadistMEAN Stack

11. 중괄호는 중괄호를 필요로 하는 것과 같은 줄에서 시작한다.

중괄호
  • SameLine
  • NewLine
1
2
3
if (true) {
console.log(‘winning’);
}

이 항목에 동의한다. ( 나는 모든 코드가 11번 가이드를 따르고 있다.)

추후 코드 작성시 최대한 위의 코딩스타일을 준수하며 작업할 예정이다.

Stay Huger, Stay Foolish