Java
์ Spring
์ ์ฌ์ฉํ Javascript
๊ฐ๋ฐ์๋ผ๋ฉด ํ ๋ฒ์ฏค ๊ด์ฌ์๊ฒ ๋ดค์ ๋ฒํ ์๋ฒ ํ๋ ์ ์ํฌ์ผ ๊ฒ ๊ฐ๋ค. Express
๋ ๊ต์ฅํ ์ข์ ์๋ฒ ํ๋ ์์ํฌ์ด์ง๋ง ๋๋ฌด ์์ ๋ก์์ ๋ง๋ง๋ํด์ ๋ ์๋ ๊ธฐ๋ถ์ด์๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ฅผ ์ฐพ๋ค๊ฐ ์๊ฒ ๋์๊ณ ์์ฆ์ ๊ธฐ์
๋ค์์๋ ๋ง์ด ์ฌ์ฉํ๊ณ ๊ด์ฌ์๊ฒ ๋ณด๊ณ ์๋ ํ๋ ์์ํฌ์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ nest.js
๊ณต๋ถ๋ฅผ ์์ํ๋๋ฐ ํผ์์ ์ ๋ฆฌ๊ฐ ์ ์๋๋ ๊ฒ ๊ฐ์์ ๊ณต๋ถํ ๋ด์ฉ๋ค์ ์ ์ด๋ณด๋ ค๊ณ ํ๋ค. ์ค๋ฅ๊ฐ ์์ ์๋ ์๊ณ ๋ํผ์
์ด ์์ ์๋ ์์ง๋ง ์ต๋ํ ๊ณต์๋ฌธ์์ ์๊ฑฐํด์ ํฉํธ๋ง ์ ์ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
์ค๋์ ๊ณต์๋ฌธ์์ ์์๋๋ก ํ๋ก์ ํธ ์์ฑ์ ํ๊ณ ์คํ์์ผ ๋ณผ ์ ์๋๋ก ํ๋ค.
์ฐ์ nest.js
์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
Angular
ํ๋ ์์ํฌ ์ํคํ
์ฒ์ ๋ํด์ ์๊ฐ์ ๋ฐ์์ ์ ์๋์๋ค๊ณ ํ๋ค. API
๋ค์ด ๋
ธ์ถ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์ฑ์ ๋ง์ถฐ์ ์ปค์คํ
์ ํ ์ ์๋ค๊ณ ํ๋ค.๊ทธ๋ผ nest.js
ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์คํ์์ผ๋ณผ ์ ์๋๋ก ํ์.
nest.js
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฌ์ ์ ๋ค์ด๋ก๋ ํด์ค์ผ ํ ๊ฒ๋ค์ด ์๋ค.
ํ๊ฒฝ์ด ์ธํ
์ด ๋์์ผ๋ฉด ํฐ๋ฏธ๋์ ์ผ๊ณ nest
ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ๋นํ ๋๋ ํ ๋ฆฌ๋ก ์์น๋ฅผ ์ฎ๊ธด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
$ npm i -g @nestjs/cli // nestcli๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ชจ๋ ๋ค์ด
$ nest new project-name // nest ํ๋ก์ ํธ ์์ฑ
project-name ์ ์์ ์ด ์ํ๋ ํ๋ก์ ํธ ๋ช ์ ์ ๋ ฅํ ์ ์๋๋ก ํ๋ค.
๋ฐ๋ผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์์ ์ด ์ฌ์ฉํ๋ IDE
์ ์ํฌํธํด์ ์คํํ๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. (nest.js
๋ ๊ธฐ๋ณธ์ ์ผ๋ก Typescript
๋ก ์ธํ
๋์ด ์์ง๋ง ์์ Javascript
๋ก๋ ์ฝ๋ฉ์ด ๊ฐ๋ฅํ๋ค.)
node_modules
src
- app.controller.spec.ts
- app.controller.ts
- app.modules.ts
- app.service.ts
- main.ts
test
nest-cli.json
package-lock.json
package.json
tsconfig.build.json
tsconfig.json
.eslintrc.js
.gitignore
.prettierrc
README.md
์ฌ๊ธฐ์ controller
, modules
, service
๋ผ๋ ์ด๋ฆ์ด ๋ถ์ฌ์ง ํ์ผ๋ช
์ด ๋ณด์ด๋๋ฐ ์ค๋ช
ํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Express
์ ๋ผ์ฐํธ์ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉ์๋ก๋ถํฐ ๋ค์ด์จ ์์ฒญ์ ๋ถ๊ธฐ์์ผ์ ์๋น์ค์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค.Controller
์์ ๋ถ๊ธฐ ์ฒ๋ฆฌ ๋ ํ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ ์ ์๋๋ก ๋์์ค๋ค.spec
์ด๋ฆ์ด ๋ค์ด๊ฐ๋ ์ฝ๋๋ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ํ์ผ์ด๋ผ๊ณ ์๋ฉด ๋๋ค.๊ธ๋ก์จ๋ ์ดํด๊ฐ ์ ๋ ์ ์์ง๋ง ์ฝ๋๋ฅผ ์์ฑํด๊ฐ๋ฉด์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ดํด๊ฐ ์ข ๋ ์ฝ๊ฒ ๋ ์ ์๋ค.
๋จผ์ , ์ฝ๋ฉ์ ๋ค์ด๊ฐ๊ธฐ์ ์ ์๋ฒ๋ฅผ ์คํ์์ผ์ ์ ์๋ํ๋์ง ํ์ธํด๋ณผ ์ ์๋๋ก ํ๋ค.
์๋ฒ๋ฅผ ์คํ ์ํฌ ์ ์๋ ์คํฌ๋ฆฝํธ๋ 4๊ฐ์ง๊ฐ ์๋ค.
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
์ฌ๊ธฐ์ ๋๋ start:dev
๋ฅผ ์ด์ฉํด์ ์คํํด ๋ณผ ์์ ์ด๋ค. ๋ฐ๋ผ์ ํฐ๋ฏธ๋์ ์ผ์ ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ก ๋ค์ด๊ฐ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ ์ ์๋๋ก ํ๋ค.
npm run start:dev
์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ก๊ทธ๊ฐ ๋ฌ๋ค.
[2:41:27 PM] File change detected. Starting incremental compilation...
[2:41:27 PM] Found 0 errors. Watching for file changes.
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [NestFactory] Starting Nest application...
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [InstanceLoader] ConfigHostModule dependencies initialized +17ms
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [InstanceLoader] AppModule dependencies initialized +0ms
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [InstanceLoader] ConfigModule dependencies initialized +0ms
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [RoutesResolver] AppController {/}: +2ms
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [RouterExplorer] Mapped {/, GET} route +2ms
[Nest] 1335 - 12/13/2021, 2:41:27 PM LOG [NestApplication] Nest application successfully started +1ms
๊ทธ๋ฆฌ๊ณ ๋ํดํธ ํฌํธ๋ 3000๋ฒ์ธ๋ฐ ๋ฐ๋ก ์์ ํ์ง ์์์ผ๋ฉด http://localhost:3000 ์ผ๋ก ์ ์ํด๋ณด๋ฉด "Hello World!" ๋ฉ์์ง๊ฐ ๋ฐ ๊ฒ์ด๋ค. (์ ๋ ํฌํธ๋ฅผ 8080์ผ๋ก ์์ ํ์ต๋๋ค!)
์ฌ๊ธฐ๊น์ง ์๋ฃํ์ผ๋ฉด ์๋ฌด ๋ฌธ์ ์์ด nest
ํ๋ก์ ํธ๊ฐ ์์ฑ์ด ๋๋ค.
์ค๋์ nest
ํ๋ก์ ํธ ์์ฑ๊ณผ ์คํ๊น์ง ์์ฑ์ ํด๋ณด์๋๋ฐ, ๋ค์ ํฌ์คํ
์์๋ ๋ผ์ฐํฐ๋ฅผ ์์ฑํด๋ณด๊ณ ๋ก๊ทธ์ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด๋ฉด์ ์ฝ๋์ ์ต์ํด ์ง ์ ์๋ ์๊ฐ์ ๊ฐ์ง๋๋ก ํด๋ณด๊ฒ ๋ค.
๊ทธ๋ผ ์ด๋ง.. ์ด์ด..๐๐ปโโ๏ธ