You Can Become A
๋ฆ๊ฒ ์์ํด๋ ๋๊ตฌ๋ ์ง ๋ ธ๋ ฅํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ด์ !
TypeScript
๐ ํ์ ์คํฌ๋ฆฝํธ Enum ํ์ ์ ๋ณตํ๊ธฐ
๊ณ ๊ธ ํ์ Enum enum์ C, Java์ ๊ฐ์ ์ธ์ด๋ฅผ ๋ค๋ค๋ดค์ผ๋ฉด ํ๋ฒ์ฏค ๋ค์ด๋ณด๋ ํํ๊ฒ ์ฐ์ด๋ ํ์ ์ผ๋ก ํน์ ๊ฐ(์์)๋ค์ ์งํฉ์ ์๋ฏธํ๋ค. ํ์ ์คํฌ๋ฆฝํธ์ ํํ ํ์ ์ด ํน์ ํ์ ์ด๋ ๊ฐ์ ๊ณ ์ ํ๋ ๋ฐฐ์ด์ด๋ผ๋ฉด, Enum์ ํน์ ๊ฐ์ ๊ณ ์ ํ๋ ๋๋ค๋ฅธ ๋ ๋ฆฝ๋ ์๋ฃํ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. enum Color { Red, Green, Blue, } // enum ํ์ let c: Color; // enum ํ์ ๋ณ์ ์ ์ธ c = Color.Green; // enum ํ์ ๋ณ์์ enum ๊ฐ ํ ๋น c = 'Hello'; // Error - enum ํ์ ๋ณ์์๋ ๋ฐ๋์ ์ค์ ๋ enum ๊ฐ (Red, Green, Blue)๋ง ์ฌ์ ์์ let d: Color.Red; // enum ๊ฐ์ ํ์ ์์ฒด๋ก๋ ์ฌ์ฉํ ์๊ฐ ..
๐ ํ์ ์ถ๋ก / ํ์ ํธํ / ํ์ ๋จ์ธ / ํ์ ๊ฐ๋ ๐ฏ ์ด์ ๋ฆฌ
ํ์ ์ถ๋ก (Inference) ํ์ ์ถ๋ก ์ด๋, ๊ฐ๋ฐ์๊ฐ ๊ตณ์ด ๋ณ์ ์ ์ธํ ๋ ํ์ ์ ์ฐ์ง์์๋ ์ปดํ์ผ์ด ์ค์ค๋ก ํ๋จํด์ ํ์ ์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ ๋งํ๋ค. ์๋ฅผ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ํ์ ์ ์๋ตํ์ฑ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ๋์ ๋๋ ๊ฐ์ ์๋ฃํํ๋ฅผ ๋ณด๊ณ ์ปดํ์ผ๋ฌ๊ฐ num ๋ณ์๋ number ํ์ ์ธ๊ฑธ ์ถ๋ก ํด์ ์๋์ผ๋ก ๋ฃ๊ฒ ๋๋ ์๋ฆฌ์ด๋ค. let num = 12; num = 'Hello type!'; // Error - TS2322: Type '"Hello type!"' is not assignable to type 'number'. ์์ ๊ฐ์ด num์ ๋ํ ํ์ ์ ๋ฐ๋ก ์ง์ ํ์ง ์๋๋ผ๋ ์ผ๋จ num ๋ณ์๋ number๋ก ๊ฐ์ฃผ๋๋ ๊ฑธ ํ์ธ ํ ์ ์๋ค. ํ์ ์ถ๋ก ์ ํจ์์ ๋ฆฌํด ํ์ ์๋ ์๊ธดํ๊ฒ ์ฐ์ผ ์ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ..
๐ ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค ยท ๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ ๐ฏ ์ด์ ๋ฆฌ
ํ์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด ์งํฅ(OOP) ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด๋ผ, ๊ฐ์ฒด ์งํฅ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ง์ ์ ๋ก ์ฌํญ์ด ์์๋ค. ๊ทธ๋ฌ๋ค ES6์ผ๋ก๋ ์๋ ค์ง ECMAScript 2015๋ฅผ ์์์ผ๋ก ํด๋์ค ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋๋ฉด์ JavaScript ํ๋ก๊ทธ๋๋จธ๋ค์ ์ด๋ฐ ๊ฐ์ฒด-์งํฅ์ ํด๋์ค-๊ธฐ๋ฐ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐํค์ ๊ทธ๋๋ก ์ด์ ํ์ ์คํฌ๋ฆฝํธ์์๋ ๋์ฑ ๋ ๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ๋ค์ ๋ ๋์ด ๋ชจ์, ๋ณด๋ค ์๋ฐ(JAVA) ์ค๋ฝ๊ฒ ํด๋์ค๋ฅผ ๊ตฌ์ฑ ํ ์ ์๋ค. ์ด๋ฒ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ์งํฅ ๊ฐ์์์๋ ์๋ฐ(JAVA) ํน์ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ ๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ์ ๋ฏธ๋ฆฌ ์ตํ๋๋ ๊ฒ์ ๊ฐ๋ ฅํ๊ฒ ์ถ์ฒํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ํด๋์ค ๋ฌธ๋ฒ์ ๋ค์ ํฌ์คํ ์ ์ฐธ๊ณ ํ๊ธธ..
๐ ํ์ ์คํฌ๋ฆฝํธ ์ธํฐํ์ด์ค ํ์ฉ ๐ฏ ์ด์ ๋ฆฌ
ํ์ ์คํฌ๋ฆฝํธ Interface ์ธํฐํ์ด์ค๋ ์๋ฐ(JAVA)๋ฅผ ๋ฐฐ์ด ๋ถ๋ค์ ๋งค์ฐ ์ต์ํ๋ฉด์๋ ๋ฐ๊ฐ์ด ๋จ์ด์ผ ๊ฒ์ด๋ค. ๋ค๋ง ์๋ฐ์์์ ์ธํฐํ์ด์ค๋ ์ถ์ ๋ฉ์๋์ ์์๋ง์ ์ ์ํ ํด๋์ค๋ฅผ ์์ฃผ๋ก ๋ค๋ฃจ์ง๋ง, ํ์ ์คํฌ๋ฆฝํธ(TypeScript)์ ์ธํฐํ์ด์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฃผ๋ก ๋ค๋ฃฌ๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์๋ค. ํ์ ์คํฌ๋ฆฝํธ์ ์ธํฐํ์ด์ค๋ ๋๊ฐ์ ์์คํ ์ฌ์ด์ ์ํธ ๊ฐ์ ์ ์ํ ์ฝ์ ํน์ ๊ท์น์ ํฌ๊ดํ์ฌ ์๋ฏธํ๋ค. ํน์ ๊ฐ์ฒด์ ๊ป๋ฐ๊ธฐ ๋๋ ์ค๊ณ๋๋ผ๊ณ ํ ์ ์๋ค. ์ฆ, ํ๋ก๊ทธ๋๋ฐ์์ ํด๋์ค ๋๋ ํจ์์ 'ํ' ์ ์ ์ํ๋ ๊ฒ์ฒ๋ผ, ํ์ ์ 'ํ'๋ก์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์ธํฐํ์ด์ค ์ธ ๊ฒ์ด๋ค. ์ฌ๋ฌ ํจ์๊ฐ ํน์ ํ ์๊ทธ๋์ฒ๋ฅผ ๋์ผํ๊ฒ ๊ฐ์ ธ์ผ ํ ๊ฒฝ์ฐ ๋๋ ์ฌ๋ฌ ํด๋์ค๊ฐ ๋์ผํ ๋ช ์ธ๋ฅผ ์ ์ํด์ผํ๋ ๊ฒฝ์ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํด์ ์ ์ํ ..
๐ ํ์ ์คํฌ๋ฆฝํธ ํจ์ ํ์ ๋ค๋ฃจ๊ธฐ ๐ฏ ์ด์ ๋ฆฌ
ํ์ ์คํฌ๋ฆฝํธ ํจ์ ํํ ํ์ ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ๋จธ๋ฆฌ ์ํ ์ ๋๋ก ์ฌ๋ฌ๊ฐ์ง์ด๋ค. ๋ด๊ฐ ์ฐ๊ธฐ ํธํ ํจ์ ์ ์ธ ๋ฐฉ์์ ์ด์ฉํ๋ฉด ๋๊ฒ ์ง๋ง, ๋จ์ด ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฝ๋๋ฅผ ๋ณด๊ธฐ ์ํด์๋ ์ด๋ค ํ์ ์คํฌ๋ฆฝํธ ํจ์ ํํ์์ด ์๋์ง ์ ํ์๊ฐ ์๋ค. ์ผ๋ฐ์ ์ธ ํจ์ ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ํํํ๋๋ฐ ํฌ๊ฒ 3๊ฐ์ง ํํ์์ด ์๋ค. ์ฌ๊ธฐ์ ๊ทธ๋ฅ ๋งค๊ฐ๋ณ์์ ๋ฆฌํด๊ฐ๋ง ํ์ ๋ง ์ง์ ํด์ฃผ๋ฉด ๋๋ ๊ทธ๋ ๊ฒ ๋ํดํ์ง๋ ์๋ค. ํจ์ ์ ์ธ์ //* ํจ์ ์ ์ธ์ function myFunc1(x: number, y: number): number { return x + y; } ํจ์ ํํ์ //* ํจ์ ํํ์ let myFunc2 = function (x: number, y: number): number { return x +..
๐ ํ์ ์คํฌ๋ฆฝํธ ํ์ ์ ์ธ & ์ข ๋ฅ ๐ฏ ์ด์ ๋ฆฌ
ํ์ - Boolean ๋จ์ํ ์ฐธ(true) / ๊ฑฐ์ง(false) ๊ฐ let isBoolean: boolean; isBoolean = true; let isDone: boolean = false; ํ์ - Number ์ ์ ํ์ ์ด๋ผ ํด์ C / JAVA ์ฒ๋ผ int, float, double ํ์ ์ ์๊ณ , Javascipt์ number ์๋ฃํ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค. 16์ง์, 10์ง์, 2์ง์, 8์ง์ ๋ฆฌํฐ๋ด๋ ์ง์ํ๋ค. let num: number; let integer: number = 6; let float: number = 3.14; let hex: number = 0xf00d; // 61453 let binary: number = 0b1010; // 10 let octal: number = 0o7..
๐ ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ - tsconfig ์ต์ ์ด์ ๋ฆฌ
ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ ์ค์ tsconfig.json์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ ์ํค๋ ์ปดํ์ผ ์ค์ ์ ํ๊บผ๋ฒ์ ์ ์ ํด๋๋ ํ์ผ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผ ํ๋๋ฐ ํ์ํ ๋ฃจํธ ํ์ผ, ์ปดํ์ผ๋ฌ ์ต์ ๋ฑ์ ์์ธํ ์ค์ ํ ์ ์๋ค. ๋ณดํต tsconfig.json ํ์ผ์ TypeScript ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ(Root Directory)์ ์์น๋๋ค. ๊ทธ๋์ tsconfig.json ํ์ผ์ด ํ๋ก์ ํธ์ ์๋ค๋ฉด vscode๋ ์ฐ๋ฆฌ๊ฐ ํ์ ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ ์ธ์ํ๊ฒ ๋๋ ๊ฒ์ด๋ค. tsconfig์์ ์ต์ ๋ค์ ๋ฏธ๋ฆฌ ์ ์ํด ๋์ผ๋ฉด, ๋์ด์ ์ปดํ์ผ ํ ๋ ๋ช ๋ น์ด์ ์ผ์ผํ ๋์ ํ์ผ์ด๋ ์ต์ ์ ์ง์ ํ์ง ์์๋ ๋๋ค. ๊ทธ๋์ tsc ๋ ts-node ๋ช ๋ น์ด๋ฅผ ๊ทธ๋ฅ ์คํํ๊ฒ ๋๋ฉด, ํ์ฌ ํด๋์ ์๋ ts..
๐ TypeScript ์๊ฐ & ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
ํ์ ์คํฌ๋ฆฝํธ ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ ์ธ์ด๋ก์ ์์ ๋๊ฐ ๋์ ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ๊ณ ์์ฐ์ฑ์ด ๋์ ๋์ , ํ์์ด ์ ํด์ ธ ์์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ(๋ฒ๊ทธ)๊ฐ ๋ฐํ์ ์ค์ ๋ฐ์ํ๋ค๊ฑฐ๋, ๋๋ ํ์๊ฐ์ ์ฝ๋๋ฅผ ํตํ ์์ฌ์ํต์ ์ด๋ ค์์ด ์๊ธด๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฅผ๋ค์ด ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ ๋๊ฐ ์ฝ๋์ ๋ํด์ ์ด๋ ํ ์ค๋ฅ ์์ด ์ค์ค๋ก ํ๋จํด ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋ฒ๋ฆฐ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ต๋ํ ๊ฐ๋ฐ์์ ์ค์์ ๋ํด์ ์ค๋ฅ๋ฅผ ์์ ํ๊ณ ์คํํ๋๋ก ์ ๋ํ์ฌ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ด๋ค. ์ด๋ ์์ฐ์ฑ์ ํ๋๋ผ๋ ์ฅ์ ์ด ์์ง๋ง ์๋์น ์๋ ๋ฒ๊ทธ๋ฅผ ๋ง๊ตฌ ๋ด๋ฟ๋๋ค๋ ์์ฃผ ํฐ ๋จ์ ์ด ์๊ธฐ๊ฒ ๋๋ค. C#๊ณผ Java ๊ฐ์ ์ฒด๊ณ์ ์ด๊ณ ์ ์ ๋ ์ธ์ด๋ค์์ ์ฌ์ฉํ๋ ๊ฐํ ํ์ ์์คํ ์ ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ฝ๋ ํ์ง ๋ฑ์ ์ ๊ณตํ ์ ์๊ณ ๋ฐํ..