Node.js ์ง์์ ํ์ค, TypeScript ์ด๋ป๊ฒ ์ฐ๊ณ ๊ณ์ ๊ฐ์? ํ์ ์ฃผ์๋ง ๋ฌ๊ณ ๊ณ์ ๋ค๋ฉด ์ง์ง ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋๋๋ค. ๋ฌด์์ ์ข์ํ ์ง ๋ชฐ๋ผ์ ๋ค ์ค๋นํ์ต๋๋ค. ํ์ ์คํฌ๋ฆฝํธ A to Z๋ฅผ ์์๋ด ์๋ค :)
ES6+
Typescript
Deno
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ ๋ฒจ ์
!
์ฒ์ ์์ํ๋ ํ์
์คํฌ๋ฆฝํธ A to Z.
โTypeScript๋ฅผ ์ฌ์ฉํ๋ฉด JavaScript๋ก ๋ ํฌ๊ณ ๊ฐ๋ ฅํ ์์คํ
์ ๊ตฌ์ถํ ์ ์๋ค.โ
โ Ryan Dahl (Node.js ์ฐฝ์์)
ํฌ๊ณ ๊ฐ๋ ฅํ ์์คํ
์ด๋ ์ด๋ค ๊ฒ์ ์๋ฏธํ ๊น์? ์ ๋ โํฌ๊ณ โ = โํ์ผ์ด ๋ง์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐโ = โ๊ฐ๋ ฅํโ = โ๋ฐํ์/์ปดํ์ผ ๋จ๊ณ์์ ์๋ฌ๊ฐ ์๋โ
์ด๋ผ๋ ๋ป์ผ๋ก ์๊ฐ์ด ๋ฉ๋๋ค.
ํ์ ์คํฌ๋ฆฝํธ ํ์ต์ ๊ณ ๋ฏผํ๋ ๊ฐ๋ฐ์๋ผ๋ฉด, ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์ด๋ป๊ฒ ํฌ๊ณ ๊ฐ๋ ฅํด์ง ์ ์๋์ง ์์๊ฐ๋ด ์๋ค :)
ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ณด๋ค ํ๊ท ์ ์ผ๋ก ๋์ ์ฐ๋ด ์ถ์ธ๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค. ์ฌ์ค ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์ฐ๋ ๋น์ฉ์ ํฌ์ง ์์ต๋๋ค. ํ์ง๋ง, ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ถฉ ๋ฐฐ์ด๋ค๋ฉด ์คํ๋ ค ์ฝ๋ฉ ํผ๋ก๋๋ง ์ฌ๋ผ๊ฐ๊ณ ์ฅ์ ์ ๊ทน๋ํํ๊ธฐ ํ๋ญ๋๋ค. ๋ฐ๋ผ์, ์ข์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์๋ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฐํ๊ฒ ์ฌ์ฉํ๋ ๋ฒ์ ๋ํด ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
๋ง์ดํฌ๋ก์ํํธ์์ ๋ง๋ ์ธ์ด, ํ์ ์คํฌ๋ฆฝํธ๋ ๊ตฌ๊ธ์ด ๊ณต์์ ์ผ๋ก ์ฌ์ฉํ ์ด๋ ๋ฏธ์น๋ฏํ ์์น์ธ๋ฅผ ๋ณด์ด๋ฉฐ ์ด๋๋ง ์์๊ถ ์ธ์ด์ ์์นํ๊ณ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ด React, Vue, NestJS ๊ฐ๋ฐ์๋ผ๋ฉด ๋์ฑ์ด ๊ฐ๋ฐ์ ์ฑ์ฉ ๊ณต๊ณ ์์ ํ์ ์คํฌ๋ฆฝํธ ๊ฒฝํ์๋ฅผ ์ฐพ๋ ๊ธ์ด ๋ง์์ ์ ์ ์์ต๋๋ค. ์คํํธ์ ์ ์ทจ์งํ๋ , ๋๊ธฐ์ ์ ์ทจ์ง์ ํ๋ ์ง๊ธ ์์ ์์ Node.js ์ง์์ ๊ฐ๋ฐ์๋ผ๋ฉด ํ์ ์คํฌ๋ฆฝํธ๋ ํ์์ ๋๋ค.
๊ฐ๋ฐ ๋ ์ํ๊ณ ์ถ์ JavaScript ๊ฐ๋ฐ์๋ผ๋ฉด, TypeScript ํ์ต์ ๋์น์ง ๋ง์ธ์!
๐ก Node.js ๋ฐํ์์์ ๊ฐ๋ฐ์ ํ์๋ ๋ถ
๐ก TypeScript๋ฅผ ์ ์จ๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์
๐ก Deno๋ฅผ ๊ฒฝํํด๋ณด๊ณ ์ถ์ ๊ฐ๋ฐ์
1. ํ์ ์คํฌ๋ฆฝํธ์์ ์์ฃผ ์ฐ์ด๋ ES6+ ๋ฌธ๋ฒ
ํ์ ์คํฌ๋ฆฝํธ์๋ ์์ฃผ ์ฐ์ด๋ ES6+ ๋ฌธ๋ฒ์ ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ๋๋ค! (ํ์ ๊ณผ์ ์ด ์๋๋๋ค. ์ด๋ฏธ ES6์ ๋ํด ์ ์์ ๋ค๋ฉด ๊ฑด๋๋ฐ์ ๋ ๋ฉ๋๋ค.)
2. ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ์ด
์ฒ์ ๋ฐฐ์ฐ์๋ ๋ถ๋ค๋ ๋ฐ๋ผ์ค๊ธฐ ์ฝ๋๋ก ๊ธฐ์ด์ ์ธ ํ์ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์ตํ๋๋ค. (ํ์ ๊ณผ์ ์ด ์๋๋๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์จ๋ณด์ จ๋ค๋ฉด ๊ฑด๋๋ฐ์ ๋ ๋ฉ๋๋ค!)
3. ํ์ ์คํฌ๋ฆฝํธ ์ค๊ธ
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ์ดํด๋๊ฐ ์๋ ๋ถ๋ค์ด ๋ฐ๋ผ์ฌ ์ ์๋ ํ์ ์คํฌ๋ฆฝํธ ์ค๊ธ ๋ฌธ๋ฒ์ ๋ฐฐ์๋๋ค! (ํ์ ์คํฌ๋ฆฝํธ ์์ ์ ๊ทผ๊ฐ์ด ๋๋ ์น์ ์ด๋ฏ๋ก ๋ฃ๊ธฐ๋ฅผ ๊ฐ๋ ฅํ ๊ถํฉ๋๋ค.)
4. ํ์ ์คํฌ๋ฆฝํธ์ ์ ์ฉํ ์ก๊ธฐ์
ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๋์ฉ ์ฐ์ด๋, ์์๋๋ฉด ์ข์ ํ์ ๋ค์ ๋ํด ์๊ฐํฉ๋๋ค. (ํ์ ๊ณผ์ ์ด ์๋๋๋ค๋ง, ์์์ ๋์ ๊ฒ ์์ต๋๋ค. ์น์ ์์ฒด๊ฐ ์งง์ผ๋ ํธํ๊ฒ ๋ค์ผ์๊ธธ ์ถ์ฒ๋๋ฆฝ๋๋ค!)
5. ํ์ ์คํฌ๋ฆฝํธ ์์
์ง๋ฃจํ ์ด๋ก ์์ ์ด ๋๋ฌ๋ค๋ฉด, ์ด์ ๋ฐฐ์ด ํ์ ์คํฌ๋ฆฝํธ๋ก ์ฌ๋ฏธ์๊ฒ ํ์ฉํด๋ด ์๋ค! (๋ฐ๋์ ๋ค์ผ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์ด ๊ฐ์์์ ์ ์ผ ํต์ฌ์ ์ธ ๋ด์ฉ์ ๋๋ค.)
6. ํ์ ์คํฌ๋ฆฝํธ์ ๋ฐฑ์๋ with NestJS
NestJS์์ ์ต๋ํ ํจ์จ์ ์ผ๋ก ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด๋ด ์๋ค. (NestJS๋ ๋ฐฑ์๋ ํ๋ ์์ํฌ์ง๋ง, ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ถ๋ค์๊ฒ๋ ๋ฐ๋์ ๋์์ด ๋ ๊ฒ์ ๋๋ค.)
7. ํ์ ์คํฌ๋ฆฝํธ ๋ฐํ์, Deno
์๋ก์ด ๋ฐํ์ Deno! ๋ฌ๋ผ์ง ์ ์ ์์๋ด
์๋ค.
(Deno๋ฅผ ์๋ฒฝํ ๋ฐฐ์ฐ๊ธฐ๋ณด๋ค๋ ๋ฏธ๋ฆฌ ๊ฒฝํํด๋ณธ๋ค๋ ๋๋์ผ๋ก ๊ฐ๋ณ๊ฒ ๋ฃ๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค. Deno๋ ์์ฉํ๊ฐ ๋๋ ค๋ฉด ์กฐ๊ธ ๋ ์ต์ด์ผ ํฉ๋๋ค.)
Q. ๊ฐ์๊ฐ ๊ณ์ ์ ๋ฐ์ดํธ๋๋์?
ํ์ฌ TypeScript4์ ๊ธฐ์ค์ผ๋ก ์ดฌ์ ์ค์ด๋ฉฐ, TypeScript5 ๋ฌธ๋ฒ๋ ์ถ๊ฐ๋ก ์ดฌ์ํ ์์ ์ ๋๋ค. ์ดํ ์ถ๊ฐ์ ์ธ ๋ณ๋์ฌํญ์ด๋ ์ค์ํ ์ ๋ฐ์ดํธ๊ฐ ์๊ธฐ๋ฉด ๊ฐ์๋ฅผ ์ ๋ฐ์ดํธํ ์์ ์ ๋๋ค. (23๋ ํ๋ฐ๊ธฐ๊น์ง)
Q. ํ์ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์์ ๋ชฐ๋ผ๋ ๋๋์?
๋ค! ํ์ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ 1๋ถํฐ 10๊น์ง ๋ชจ๋ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ 1๋ ๋ชจ๋ฅด์ ๋ ๋ฉ๋๋ค. ๋ค๋ง ๊ธฐ์ด์ ์ธ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๊ผญ ์๊ณ ๊ณ์ ์ผ ํฉ๋๋ค. ES6+ ๋ฌธ๋ฒ์ ์ค์ํ ๋ถ๋ถ์ ์ง๊ณ ๋์ด๊ฐ์ง๋ง ๋ฏธ๋ฆฌ ์๊ณ ๊ณ์ ๋ค๋ฉด ๋์ฑ ์ข์ต๋๋ค.
Q. NestJS์ ๋ํด ๊น์ด ๋ค๋ฃจ๋์?
์ด ๊ฐ์๋ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์๊ธฐ ๋๋ฌธ์ NestJS ์น์ ์์ ๋ฐฑ์๋์ ์ค๋ช ๊ณผ ์ฝ๋ ํ์ง์ ๊ณ ๋ คํ ์ฝ๋ฉ์ ๋ฐ๋ก ํ์ง ์์ต๋๋ค. ์ค๋ก์ง NestJS์์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ์ธ ์ ์์์ง๋ง์ ๊ณ ๋ คํ ์น์ ์ ๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
Node.js ๋ฐํ์์์ ๊ฐ๋ฐ์ ํ์๋ ๋ถ
Deno๋ฅผ ๊ฒฝํํด๋ณด๊ณ ์ถ์ ๋ถ
TypeScript๋ฅผ ์ ์จ๋ณด๊ณ ์ถ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
๊ธฐ์ด์ ์ธ JavaScript ๋ฌธ๋ฒ
347
๋ช
์๊ฐ์
13
๊ฐ
์๊ฐํ
33
๊ฐ
๋ต๋ณ
5.0
์
๊ฐ์ ํ์
2
๊ฐ
๊ฐ์
์๋
ํ์ธ์! ์ ๊ฒฝํ์ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค.
yongsoocho578@gmail.com ์ผ๋ก ํผ๋๋ฐฑ๊ณผ ์๊ฒฌ์ ํ์์
๋๋ค.
์ ์ฒด
65๊ฐ โ (7์๊ฐ 15๋ถ)
Node.js ์ค์น
02:46
include / exclude
04:24
outDir / rootDir
06:26
target / lib
07:02
baseUrl / paths
07:10
extends
06:03
literal type / enum
06:56
interface
04:22
array
06:11
function
09:51
union / intersection
06:25
generic
06:01
utility type
08:30
class
07:00
decorator
10:39
โฉ22,000