• ABOUT
  • POSTS
  • GUESTBOOK

ยฉ 2025 BlueCool12 All rights reserved.

2026.01.19ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๐Ÿž NestJS ์ฆ๋ถ„ ๋นŒ๋“œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ดํ•ด์™€ ์บ์‹œ ์ด์Šˆ ์ •๋ฆฌ

1. ๋ฌธ์ œ ์ƒํ™ฉ

NestJS ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์ค‘ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  dist ํด๋” ๋‚ด์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๊ฐฑ์‹ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด dist ํด๋” ์ž์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ๊ฒช์—ˆ๋‹ค. nest start --watch ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ์ค‘์ž„์—๋„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜์ง€ ์•Š์•„ ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ํด๋”๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ๋ฐœ์ƒํ–ˆ๋‹ค.


2. ์›์ธ ๋ถ„์„

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ์›์ธ์€ TypeScript์˜ ์ฆ๋ถ„ ๋นŒ๋“œ(Incremental Build) ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ธ tsconfig.tsbuildinfo ํŒŒ์ผ์— ์žˆ์—ˆ๋‹ค.

์ฆ๋ถ„ ๋นŒ๋“œ๋ž€?
๋ชจ๋“  ํŒŒ์ผ์„ ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ปดํŒŒ์ผํ•˜๋Š” ๋Œ€์‹  ๋งˆ์ง€๋ง‰ ๋นŒ๋“œ ์ดํ›„ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ๊ณจ๋ผ๋‚ด์–ด ์ปดํŒŒ์ผํ•จ์œผ๋กœ์จ ๋นŒ๋“œ ์†๋„๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๋†’์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

TypeScript๋Š” ๋นŒ๋“œ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ์™€ ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„ ์ •๋ณด๋ฅผ tsconfig.tsbuildinfo ํŒŒ์ผ์— ๊ธฐ๋กํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ธŒ๋žœ์น˜ ์ „ํ™˜, ์ˆ˜๋™ ํด๋” ์‚ญ์ œ ํ˜น์€ ๋นŒ๋“œ ์ค‘ ๋น„์ •์ƒ ์ข…๋ฃŒ ๋“ฑ์˜ ์ด์œ ๋กœ ์‹ค์ œ ํŒŒ์ผ ์ƒํƒœ์™€ ์ด ์บ์‹œ ํŒŒ์ผ์˜ ์ •๋ณด๊ฐ€ ์–ด๊ธ‹๋‚˜๊ฒŒ ๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋ฏธ ๋ชจ๋“  ํŒŒ์ผ์ด ์ตœ์‹  ์ƒํƒœ๋ผ๊ณ  ์ฐฉ๊ฐํ•˜์—ฌ ๋นŒ๋“œ ๊ณผ์ •์„ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ๋œ๋‹ค.


3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•


๋ฐฉ๋ฒ• 1 - ์บ์‹œ ํŒŒ์ผ ๊ฐ•์ œ ์‚ญ์ œ
๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ „ ํ•ญ์ƒ ์บ์‹œ๋ฅผ ์ง€์šฐ๋„๋ก package.json ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

"script": {
"prebuild": "rimraf dist tsconfig.tsbuildinfo",
"build": "nest build",
"start:dev": "nest start --watch"
}

OS์— ์ƒ๊ด€์—†์ด ์‚ญ์ œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด rimraf ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜์˜€๋‹ค.


๋ฐฉ๋ฒ• 2 - NestJS CLI ์„ค์ • ํ™œ์šฉ
nest-cli.json ์„ค์ •์„ ํ†ตํ•ด ๋นŒ๋“œ ์‹œ๋งˆ๋‹ค ์ถœ๋ ฅ ๊ฒฝ๋กœ(dist)๋ฅผ ์ž๋™์œผ๋กœ ๋น„์šฐ๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

{
"compilerOptions": {
"deleteOutputPath": true
}
}



๋ฐฉ๋ฒ• 3 - ์ฆ๋ถ„ ๋นŒ๋“œ ๋น„ํ™œ์„ฑํ™”
ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์•„์ง ํฌ์ง€ ์•Š์•„ ๋นŒ๋“œ ์†๋„ ์ฐจ์ด๊ฐ€ ๋ฏธ๋ฏธํ•˜๋‹ค๋ฉด tsconfig.json ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์•„์˜ˆ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

{
"compilerOptions": {
"incremental": false
}
}


ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์ด๊ณ  ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹จ๊ณ„๋ผ๋Š” ์ ์„ ๊ณ ๋ คํ•˜์—ฌ 3๋ฒˆ ๋ฐฉ๋ฒ•(์ฆ๋ถ„ ๋นŒ๋“œ ๋น„ํ™œ์„ฑํ™”)๋ฅผ ์„ ํƒํ•˜์˜€๋‹ค.

์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ๋Š” ํŒŒ์ผ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด๋‚˜ ๋ฆฌํŒฉํ† ๋ง์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋ฏ€๋กœ ์ด๋•Œ ๋นŒ๋“œ ์†๋„๋ฅผ ๋ช‡ ์ดˆ ์•„๋ผ๋Š” ๊ฒƒ๋ณด๋‹ค ์บ์‹œ ๊ผฌ์ž„์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ ๋””๋ฒ„๊น… ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ƒ์‚ฐ์ ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค.

์ถ”ํ›„ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ์ฒด๊ฐ๋  ์ •๋„๋กœ ๋А๋ ค์ง„๋‹ค๋ฉด ๋‹ค์‹œ ์ฆ๋ถ„ ๋นŒ๋“œ๋ฅผ ๋„์ž…ํ•˜๋˜ ๊ทธ๋•Œ๋Š” prebuild ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ํ™˜๊ฒฝ์„ ๋งค๋ฒˆ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ‘ํ–‰ํ•˜์—ฌ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•  ๊ณ„ํš์ด๋‹ค.


๋” ๋น ๋ฅธ ๋นŒ๋“œ๋ฅผ ์›ํ•œ๋‹ค๋ฉด?
๋งŒ์•ฝ ์ฆ๋ถ„ ๋นŒ๋“œ๋ฅผ ๋„๋ฉด์„œ๋„ ์†๋„๋ฅผ ๋†“์น˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด NestJS 9๋ถ€ํ„ฐ ๊ณต์‹ ์ง€์›ํ•˜๋Š” SWC(Speedy Web Compiler) ๋„์ž…์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋‹ค. Rust ๊ธฐ๋ฐ˜์œผ๋กœ tsc๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋ฉด์„œ๋„ ์บ์‹œ ๊ด€๋ฆฌ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์„ ํ™•๋ฅ ์ด ์ค„์–ด๋“ ๋‹ค.


์ด์ „ ๊ธ€
๐Ÿž ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ Long ํƒ€์ž… ID (feat. NestJS)
๋‹ค์Œ ๊ธ€
๋‹ค์Œ ๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค ( ฮ‡ . ฮ‡)
์žฅ์‹์šฉ ๋กœ๊ณ