02. 프로젝트 생성
작업환경 준비하기
Koa는 v7 이상버전부터 사용하는 것을 권장합니다. 그 이유는, v7 이상 버전부터 async/await 를 바벨을 통해 트랜스파일링 하지 않고 바로 실행 할 수 있기 때문입니다.
현재 이미 LTS 가 v8.x.x 이니 별 신경 안쓰셔도 됩니다. 강의 초반에 받았었던 Node.js 를 그대로 사용하시면 됩니다.
프로젝트 생성
이번에 만들게 될 백엔드 프로젝트는, 추후 우리가 이 책에서 다루는 마지막 프로젝트인 블로그 서비스에서 연동하게 될 서버입니다. blog 라는 디렉토리를 만들고, 그 내부에 blog-backend 디렉토리를 만드세요. 그리고 나서 해당 디렉토리에서 yarn init 명령어를 사용하여 패키지 정보를 생성해보세요.
$ mkdir blog
$ cd blog
$ mkdir blog-backend
$ cd blog-backend
$ yarn init
question name (blog-backend):
question version (1.0.0):
question description:
question entry point (index.js):
question repository url:
question author:
question license (MIT):
success Saved package.json
Done in 2.73s.
yarn init 명령어를 실행하고나면, name, version 등의 정보를 묻는데, 이 때 그냥 엔터를 눌러서 기본값으로 설정하시면 됩니다.
이 작업을 마치고나면, 디렉토리에 package.json 이라는 파일이 생깁니다. 다음 명령어를 통해서 해당 파일을 조회해보세요 (혹은 에디터로 열어보셔도 됩니다)
$ cat package.json
{
"name": "blog-backend",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
프로젝트의 패키지정보를 지니고있는 package.json 파일이 잘 생성되었나요? 이제, koa 를 설치해보겠습니다.
$ yarn add koa
한번 다시, package.json 을 조회해보시면, dependencies 쪽에 koa 가 생성되었을 것입니다.
ESLint 설정
이제, 서버 파일을 작성하기 전에, 자바스크립트 문법과 코드 스타일을 검토 시켜주는 ESLint 라는 도구를 설치하고 적용하는 방법을 알아보겠습니다. (초심자에겐 이 검사를 적용하고 나면 자바스크립트 작성이 까다롭게 느껴질 수도 있으니, 이 과정을 생략을 해도 됩니다.)
우선, eslint 를 글로벌로 설치하세요.
$ yarn global add eslint
$ eslint –v
v4.8.0
(만약에 eslint –v 를 실행하였을때 오류가 발생한다면 npm install –g eslint 를 해보세요)
설치가 다 되었다면, 현재 프로젝트에 적용을 해보겠습니다.
$ yarn add eslint
$ eslint --init
? How would you like to configure ESLint? Use a popular style guide
? Which style guide do you want to follow? Airbnb
? Do you use React? No
? What format do you want your config file to be in? JavaScript
이제, VSCode 로 프로젝트 디렉토리를 열으세요. 그리고, VSCode 의 ESLint 확장 프로그램을 아직 설치하지 않았다면, VSCode 좌측의 마켓플레이스 아이콘을 눌러 ESLint 를 검색해서 설치하세요.
확장프로그램이 제대로 설치되었다면, 프로젝트 디렉토리에 src 라는 디렉토리를 만들고, 그 안에 index.js 를 생성하여 다음 코드를 입력하세요.
src/index.js
const hello = 'hello';
ESLint 를 적용하고 나면, 위 코드는 문법적으로는 오류는 없지만 이렇게 빨간 밑줄이 그어지며, VSCode 의 문제 탭 쪽에서 오류메시지가 나타납니다.
그 이유는, 단순 문법검사 뿐 만 아니라, 더 나은 코드를 위해 코딩 스타일도 점검을 해주는데요, 여기서 밑줄이 그어진 이유는 hello 를 선언해놓고 쓰지 않았고, 또 파일의 마지막에 새 줄이 없어서 에러를 띄운 것입니다.
하단 탭이 보여지지 않는다면 VSCode 의 상단메뉴에서 보기 문제 메뉴를 눌러서 열 수 있습니다.
ESLint 커스터마이징
지금은 ESLint 의 설정이 조금 엄격하게 잡혀있습니다. console.log 같은 코드도 방지를 하게 해서 경고를 띄우죠. 혹은, 객체를 만들 땐, 마지막 키의 뒷부분에도 쉼표가 들어가야합니다. { a: ‘1’, b: ‘2’, } 와 같은 형식처럼 말이죠.
ESLint 의 규칙중 몇가지를 변경하는 방법을 알아보겠습니다. 프로젝트의 디렉토리 내부의 .eslintrc.js 파일을 열어서 다음과 같이 수정하세요:
.eslintrc.js
module.exports = {
"extends": "airbnb-base",
"rules": {
"no-unused-vars": 1,
"comma-dangle": 0,
"eol-last": 0,
"no-console": 0
}
};
rules 객체 내부에 코드 검사 규칙의 이름, 그리고 그 뒤에는 숫자를 넣으면 됩니다. 여기서 숫자는, 0: 아무것도 안함 1: 경고 2: 오류를 의미합니다.
ESLint 를 사용하는것은 필수사항은 아닙니다. 이를 사용 하는 이유는, 더욱 원활한 디버깅과, 좀 더 깨끗한 코드를 작성하기 위함입니다. 문법 설정은, 여러분의 취향 / 협업을 할 때 코딩컨벤션에 따라 설정하시면 됩니다. (예: 코드에서 세미콜론 사용/미사용, 쌍따옴표/따옴표, 들여쓰기 크기 등..)