Typescript๋?
1. ๊ฐ์
๋ง์ ๊ธฐ์ ๋ค์์ typescirpt์ ๋ํ ์ญ๋์ ๊ฐ์ง ๊ฐ๋ฐ์๋ค์ ํ์๋กํ๊ณ ์๋ค. javascript๊ณผ ์ด๋ฆ์ด ๋น์ทํ typescript๋ ๋ฌด์์ด๋ฉฐ? javascript์๋ ์ด๋ค ์ฐจ์ด์ ์ด ์๋์ง ์์๋ณด์. ๋ํ typescript๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ง๋ ํจ๊ป ์ดํด๋ณด์.
2. ํ์
์คํฌ๋ฆฝํธ(typescript)๋?
ํ์ ์คํฌ๋ฆฝํธ๋ ๋ง์ดํฌ๋ก์ํํธ์์ ๊ฐ๋ฐํ ์คํ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค. ๋ชจ๋ ๋ธ๋ผ์ฐ์ , ํธ์คํธ, ์ด์์ฒด์ ์์ ๋์ํ๋ค.
TypeScript is JavaScript with syntax for types. TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
์๋ ํ์ ์คํฌ๋ฆฝํธ ๊ณต์ ํํ์ด์ง์์ ์ค๋ช ํ๊ณ ์๋ ํ์ ์คํฌ๋ฆฝํธ์ ๋ํ ์ค๋ช ์ด๋ค. ์ด๋ฅผ ํ ๋๋ก ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ค๋ช ํ์๋ฉด ์๋์ ๊ฐ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ธฐ๋ฐ์ ๋ง๋ ๊ฐ๋ ฅํ ์ธ์ด์ด๋ค.
ํ์ ์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ํ ํ๊ฒฝ์์๋ ํจ์ฌ ์ข์ ๊ฒฝํ์ ์ ์ฌํ๋ค.
ํ์ ์ด ์๋ ๊ฐ๋ ฅํ ์ธ์ด์ด๋ค.
์ฌ๊ธฐ์ ๋งํ๋ ํ์ ์ด๋ ํ๋ก๊ทธ๋จ์์ ๋ค๋ฃฐ ์ ์๋ ๊ฐ์ ์ข ๋ฅ(string, boolean, int ๋ฑ)๋ฅผ ์๋ฏธํ๋ค.
3. ํ์
์คํฌ๋ฆฝํธ์ ํน์ง
์๋๋ ํ์ ์คํฌ๋ฆฝํธ ๊ณต์ ํํ์ด์ง์ ์๋ ํน์ง์ ๊ฐ์ ธ์จ ๊ฒ์ด๋ค.
JavaScript and More
TypeScript adds additional syntax to JavaScript to support a tighter integration with your editor. Catch errors early in your editor.
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ์ ์ถ๊ฐํ์ฌ vscode์ ๊ฐ์ ์๋ํฐ์์ ์ค๋ฅ๋ฅผ ์ก๋๋ฐ ๋์์ค๋ค.
A Result Yout Can Trust
TypeScript code converts to JavaScript, which runs anywhere JavaScript runs: In a browser, on Node.js or Deno and in your apps.
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ํ๊ฒฝ(๋ธ๋ผ์ฐ์ , ๋ ธ๋JS, Deno)์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ๋๋ค.
Safety at Scale
TypeScript understands JavaScript and uses type inference to give you great tooling without additional code.
ํ์ ์คํฌ๋ฆฝํธ๋ ์ถ๊ฐ๊ฐ์ ์ธ ์ฝ๋ ์์ฑ ์์ด ํ์ ์ ์ ํ์ ์ถ๋ก ํ ์ ์๋ค.
๋ฟ๋ง ์๋๋ผ ์๋์ ๊ฐ์ ๋ค์ํ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
์ปดํ์ผ ์ธ์ด, ์ ์ ํ์ ์ธ์ด: ํ์ ์คํฌ๋ฆฝํธ๋ ์ปดํ์ผ๋ฌ ๋๋ ๋ฐ๋ฒจ(Babel)์ ํตํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํ๋๋ค. ์ฝ๋ ์์ฑ ๋จ๊ณ์์ ํ์ ์ ์ฒดํฌํด ์ค๋ฅ๋ฅผ ํ์ธํ ์ ์๊ณ ๋ฏธ๋ฆฌ ํ์์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ์คํ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. ํ์ง๋ง ์ฝ๋ ์์ฑ ์ ๋งค๋ฒ ํ์ ์ ๊ฒฐ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฒ๊ฑฐ๋กญ๊ณ ์ฝ๋๋์ด ์ฆ๊ฐํ๋ฉด์ ์ปดํ์ผ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ํผ์ : ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ํ์ ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ์ ์ถ๊ฐํ ๊ฒ์ด๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ง์: ํ์ ์คํฌ๋ฆฝํธ๋ ES6์์ ์๋กญ๊ฒ ์ฌ์ฉ๋ ๋ฌธ๋ฒ์ ํฌํจํ๊ณ ์์ผ๋ฉฐ ํด๋์ค, ์ธํฐํ์ด์ค, ์์, ๋ชจ๋ ๋ฑ๊ณผ ๊ฐ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจํด์ ์ ๊ณตํ๋ค.
์ ์ง์ ์ ํ ๊ฐ๋ฅ: ๊ธฐ์กด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ค์ด์ง ํ๋ก์ ํธ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ด๋ ํน์ ๊ธฐ๋ฅ์๋ง ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ ํจ์ผ๋ก์จ ํ๋ก์ ํธ๋ฅผ ์ ์ง์ ์ผ๋ก ์ ํํ ์ ์๋ค.
4. Javascript vs Typescript
์์ผ๋ก typescript ํํธ์์ ๋ง์ ๋ด์ฉ์ typescript๋ฅผ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์๋ ํ๋์ ์์๋ฅผ ํตํด ๋ ์ธ์ด์ ์ฐจ์ด์ ์ ์ดํด๋ณด์.
a
์ b
๋ผ๋ ์ธ์๋ฅผ ๋ฐ์์ ๋ํ๋ ํจ์์ธ add function
๋ฅผ ๋ง๋ค์ด๋ณด์.
๋จผ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
const add = (a, b) => a + b;
์ธ์์ ์ฌ๋ฌ ํ์ ์ ๋ฃ์ด ํจ์๋ฅผ ์คํํด๋ณด์.
add(1, 2); // 3
add("2", 3); // "23"
add("Hello", "world"); // "Helloworld"
add(null, 3); // 3
add(true, false); // 1
์์ ๋ณด์ด๋ ๊ฒ๊ณผ ๊ฐ์ a
, b
์ ์ด๋ ํ ํ์
์ ์ธ์๋ฅผ ๋ฃ๊ณ ํจ์๋ฅผ ์คํํด๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ฒ์ ์์ add function
์ ๊ทธ๋๋ก ํ์
์คํฌ๋ฆฝํธ๋ก ์คํํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? a
, b
์ ์ด๋ ํ ํ์
๋ ์ ์ธํ์ง ์์ ์๋ํฐ๋ ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ณด์ฌ์ค ๊ฒ์ด๋ค.

์์ ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ a
, b
์ ํ์
์ ์ ํด์ค์ผ ํ๋ค.
const add = (a: number, b: number) => a + b;
์์ ์ฝ๋์ฒ๋ผ ๊ฐ๊ฐ์ ์ธ์์ number
๋ผ๋ ํ์
์ ์ง์ ํด์ฃผ์๋ค. ์ด๋ ๊ฒ ์ธ์์ ํ์
์ ์ ํด๋๋ฉด number
ํ์
์ด ์๋ ๋ค๋ฅธ ํ์
์ ์ธ์๋ก ๋ฃ์ด ์คํ์ ํ๊ฒ ๋๋ค๋ฉด ํ์
์คํฌ๋ฆฝํธ๋ ๋ค์ ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ณด์ฌ์ค ๊ฒ์ด๋ค.
add(true, 4);

์ด๋ ๋ฏ ๊ฐ๋ฐ์๋ค์ ์ฝ๋๊ฐ ์ปดํ์ผ์ด ๋๊ธฐ ์ ํ์ ์คํฌ๋ฆฝํธ์์ ์๋ฌ๋ฅผ ๋ณด์ฌ์ฃผ์ด ์ฝ๋์ ๋ฌธ์ ๋ฅผ ์๋ ค์ฃผ์ด ์๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ๋์์ค๋ค.
typescript palyground์์ ์ฌ๋ฌ ํ์
์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋น๊ตํ ์ ์๋ค. ์๋๋ ์์ add function
๋ฅผ ํ์
์คํฌ๋ฆฝํธ palyground์์ ์์ฑํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋น๊ตํ ์ฌ์ง์ด๋ค.

5. Conclusion
์์ง ํ์ ์คํฌ๋ฆฝํธ์ ๋ํด ์ต์ํ์ง ์๋ค. ๋ฆฌ์กํธ์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ํจ๊ป ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ๋ฅผ ๊พธ์คํ ํ์ฌ ์์ผ๋ก ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊พธ์คํ ์ฌ์ฉํ ์ ์๋๋ก ํ์. ํนํ ๋ฆฌ์กํธ์์ ์ฌ์ฉํ๋ ํ์ ์คํฌ๋ฆฝํธ์ ๋ํด์ ๋ง์ด ๋ฐฐ์ฐ์.๐
์ฐธ๊ณ
ํ์ ์คํฌ๋ฆฝํธ ๊ณต์ ํํ์ด์ง ํ์ฉ๋๊ฐ ๋์์ง๋ ์น ํ๋ก ํธ์๋ ์ธ์ด, ํ์ ์คํฌ๋ฆฝํธ(TypeScript)
๐ 2022-07-25
Last updated