티스토리 뷰

어떻게 만들지, 어떤 패키지를 활용할지 지난 시간에 대충 계획을 세웠으니 이제 프로젝트를 만들어보도록 하자.

 

폴더를 하나 만들고 거기에 npm init -y 명령으로 package.json 파일을 생성하자.

 

$ npm init -y

이제 당장 생각나는 패키지들을 인스톨 해보자.

  • koa
  • koa-router
  • passport-jwt
  • sequelize

$ npm i -save koa koa-router passport-jwt sequelize

이렇게 설치해놓고 생각해보니 로그인 처리를 하려면 POST 방식으로 데이터를 받아야하고, Restful API 주제에 CORS 이슈도 생각을 못한 것이 떠올랐다. 그래서 아래의 패키지들을 더 인스톨 하도록 하자.

 

  • koa-bodyparser
  • koa-cors2

koa-cors 는 코아 서버가 버전이 올라가면서 안쓰는 것인지 안쓸거라는 건지 잘 모르겠지만 Warning을 발생시켜서 koa-cors2 패키지를 설치해야한다.

 

$ npm i -save koa-bodyparser koa-cors2

 

대충 이정도면 코딩준비는 마쳤다.

내가 이 시점에 한가지 고민을 하게 된 것이 babel을 사용해서 ES 2015를 사용하는 것이 좋지 않을까? 하는 것이다. 아무래도 Class 를 사용할 수 있는 것과 사용할 수 없는 것은 큰 차이가 있으니까.

 

그래서 몇가지 패키지들을 추가하기로 했다.

 

  • babel-cli
  • babel-preset-es2015
  • nodemon

 

$ npm install --save-dev babel-cli babel-preset-es2015 nodemon

이렇게 추가를 완료했으면 몇 가지 작업을 진행하자.

 

일단 프로젝트 디렉토리에 .babelrc 파일을 만든다.

 

{
  "presets": ["es2015"],
  "plugins": []
}

이렇게 하면 ECMA Script 2015(ES6)를 사용할 수 있게 된다.

이제 package.json 파일을 수정하자.

 

"scripts": {
    "start": "nodemon src/index.js --exec babel-node"
    , "build": "babel lib -d dist"
    , "test": "echo \"Error: no test specified\" && exit 1"
}

Scripts에 test만 덩그러니있을 텐데 start와 build를 추가해주면 끝난다.

 

이제 디버깅 환경을 잡아주자.

Visual Studio Code에서 벌레모양 아이콘을 클릭한다.

 

그러면 lauch.json 파일을 자동으로 만들어줄텐데 아래의 코드를 넣어준다.

 

"version": "0.2.0",
"configurations": [
    {
        "name": "Launch",
        "type": "node",
        "request": "launch",
        "program": "${workspaceRoot}/src/index.js",
        "stopOnEntry": false,
        "cwd": "${workspaceRoot}",
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/babel-node",
        "runtimeArgs": [
            "--nolazy"
        ],
        "env": {
            "NODE_ENV": "development"
            , "PORT" : "5000"
        },
        "console": "internalConsole",
        "sourceMaps": false,
        "outFiles": []
    }
]

이렇게 하면 이제 F5키만 눌러주면 코드가 알아서 실행된다.

 

개발환경은 이정도로 마치고 본격적으로 코딩에 들어가보도록하자.

'Dev > Node.js' 카테고리의 다른 글

Koa + MySQL + Passport-jwt 셋팅하기 #1  (2) 2020.02.12
댓글
댓글쓰기 폼