URL 단축기 만들기 - 2. 프로젝트 셋업

URL 단축기 2022년 12월 5일

이번에는 백엔드 프로젝트 셋업 방법을 다뤄볼 거에요.

일단 모노레포를 세팅해 봅시다.

$ mkdir url-shortener
$ cd url-shortener
$ git init
$ yarn init -2 -w -y

vscode에서 pnp를 지원하기 위한 패키지와 필요한 플러그인을 설치해 줍시다.

$ yarn add --dev prettier typescript
$ yarn plugin import typescript
$ yarn plugin workspace-tools
$ yarn dlx @yarnpkg/sdks vscode

이제 nestjs 프로젝트를 세팅해 봅시다.

먼저 nestjs cli를 설치해 주세요

npm i -g @nestjs/cli

이제 프로젝트를 생성해 봅시다.

$ cd packages
$ nest new backend
$ cd backend
$ rm -rf .git

backend의 .gitignore을 복사해서 .prettierignore로 이름을 바꿔주세요!
(prettier이 불필요한 파일까지 포맷팅하지 않게 하기)

package.json에서 start:dev 스크립트를 dev 스크립트로 바꾸고 --preserveWatchOutput을 추가해 주세요.

"dev": "nest start --watch --preserveWatchOutput",

그리고 루트 폴더에 .prettierignore을 추가해 주세요.

.yarn

.pnp.*

package.json에 dev, test 스크립트를 추가해 주세요.
(test 스크립트는 아직 테스트코드는 한번도 안써봐서 쓸지 모르겠어요)
뭐 이렇게 된 김에 TDD를 시도해 볼게요...?

{
  "name": "url-shortener",
  "packageManager": "yarn@3.3.0",
  "private": true,
  "workspaces": [
    "packages/*"
  ],
  "devDependencies": {
    "prettier": "^2.8.0",
    "typescript": "^4.9.3"
  },
  "scripts": {
    "dev": "yarn workspaces foreach -pi run dev",
    "test": "yarn workspaces foreach -i run test"
  }
}

이제 패키지 설치 후 프로젝트를 실행해 봅시다.

$ yarn
$ yarn dev
➤ YN0000: [8:45:18 PM] Starting compilation in watch mode...
➤ YN0000: 
➤ YN0000: [8:45:20 PM] Found 0 errors. Watching for file changes.
➤ YN0000: 
➤ YN0000: [Nest] 84968  - 12/05/2022, 8:45:21 PM     LOG [NestFactory] Starting Nest application...
➤ YN0000: [Nest] 84968  - 12/05/2022, 8:45:21 PM     LOG [InstanceLoader] AppModule dependencies initialized +25ms
➤ YN0000: [Nest] 84968  - 12/05/2022, 8:45:21 PM     LOG [RoutesResolver] AppController {/}: +5ms
➤ YN0000: [Nest] 84968  - 12/05/2022, 8:45:21 PM     LOG [RouterExplorer] Mapped {/, GET} route +2ms
➤ YN0000: [Nest] 84968  - 12/05/2022, 8:45:21 PM     LOG [NestApplication] Nest application successfully started +2ms

뭐 이러면 백엔드 세팅은 끝난거겠죠...?

소스코드는 여기에!

GitHub - paringparing/url-shortener: something
something. Contribute to paringparing/url-shortener development by creating an account on GitHub.

다음엔 데이터베이스 모델?을 만들어 볼게요!

사실 edgedb라는 프로젝트를 알게 되고나서 한번도 안써봐서 edgedb를 선택하게 되었네요!

잘못된 부분이 있다면 알려주시면 감사할것 같아요!

태그

파링

바보