๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

210306_TIL (Typescript, Dev Matching)

by joooing 2021. 3. 7.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


Typescript
์œ ํŠœ๋ธŒ ์˜์ƒ์œผ๋กœ ๋Œ€์ถฉ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ •๋„๋งŒ ์•Œ๊ณ ์žˆ์—ˆ๋Š”๋ฐ, Typescript๋กœ ์ด๋Ÿฐ์ €๋Ÿฐ ์ฝ”๋“œ๋“ค์„ ํ…Œ์ŠคํŠธํ•ด๋ดค๋‹ค. ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ Type์„ ์ง€์ •ํ•˜๋Š” Javascript์ด๊ธฐ๋„ ํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์ž…์ถœ๋ ฅ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ™•์‹คํžˆ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋•๋ถ„์— ์‹ค์ˆ˜๋“ค์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์—ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋ฉด ํ•จ์ˆ˜๋‚˜ ์ธ์ž๋“ค์ด ๋งŽ์•„์ ธ๋„ ์ž์ž˜ํ•œ ์‹ค์ˆ˜๋กœ ์ธํ•ด์„œ undefined๊ฐ€ ๋œจ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Dev Matching
์ˆœ์ˆ˜ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ๋งŒ ํ‰๊ฐ€๋ฅผ ํ•œ๋‹ค๊ณ ํ•ด์„œ ๋ณต์Šต๋„ ํ•  ๊ฒธ ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ์ฐธ๊ฐ€ํ•ด๋ดค๋‹ค. ์„ธ์‹œ๊ฐ„๋™์•ˆ ํŽ˜์ด์ง€์—์„œ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ œ์˜€๋Š”๋ฐ, ์•Œ์•„์„œ ์ž๋™์™„์„ฑ์„ ํ•ด์ฃผ๊ณ  ๋ฌธ๋ฒ•๋„ ๊ณ ์ณ์ฃผ๋˜ ์ต์Šคํ…์…˜ ํ•˜๋‚˜ ์—†์ด ์ˆœ์ˆ˜ HTML, CSS, Javscript๋งŒ ์‚ฌ์šฉํ•˜๋‹ˆ๊นŒ ์ƒ๊ฐ๋ณด๋‹ค ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด๋„ ํ—ท๊ฐˆ๋ ค์„œ ์—„์ฒญ ๊ฒ€์ƒ‰ํ•ด๋ดค๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์‹œ๊ฐ„์ด ์ƒ๊ฐ๋ณด๋‹ค ๋นจ๋ฆฌ๊ฐ€์„œ ๋งˆ์ง€๋ง‰์— ์„ธ์…˜์— api์š”์ฒญ์„ ์ €์žฅํ•˜๋Š” ๋ถ€๋ถ„์€ ํ•˜๋‹ค๋ง๊ณ  ์ œ์ถœํ•ด์•ผํ–ˆ๋‹ค. ์งง์€์‹œ๊ฐ„์ด์ง€๋งŒ ์งง๊ณ  ๊ตต๊ฒŒ ๋ณต์Šต + ๊ณต๋ถ€๋ฅผ ํ•œ๊ฒƒ๊ฐ™๋‹ค,, ์žŠ๊ธฐ์ „์— ์ƒˆ๋กœ ์•Œ๊ฒŒ๋œ๊ฒƒ๋“ค์€ ๊ธฐ๋กํ•ด๋‘ฌ์•ผ์ง€..!

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


Typescript - tsconfig.json ํŒŒ์ผ
1. compilerOptions : tsc ๋ช…๋ น ํ˜•์‹ ์˜ต์…˜
module : ์›น๋ธŒ๋ผ์šฐ์ €๋‚˜ Node.js ๋ฅผ ๊ตฌ๋ถ„ํ•ด ๋งž๋Š” ๋ชจ๋“ˆ๋ฐฉ์‹์œผ๋กœ ์ปดํŒŒ์ผ
moduleResolution : module๊ฐ’์— ๋”ฐ๋ผ ์„ค์ •
target : ํŠธ๋žœ์ŠคํŒŒ์ผํ•  ๋Œ€์ƒ Javascript ๋ฒ„์ „ ์„ค์ •
baseUrl : ํŠธ๋žœ์ŠคํŒŒ์ผ๋œ js ํŒŒ์ผ ์ €์žฅํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์„ค์ • (๋ณดํ†ต . ์œผ๋กœ ์„ค์ •)
outDir : baseUrl ์„ค์ •๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ–ˆ์„ ๋•Œ์˜ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ช…
paths : import๋ฌธ์—์„œ from๋ถ€๋ถ„์„ ํ•ด์„ํ•  ๋•Œ ์ฐพ์•„์•ผํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์„ค์ •
paths : import๋ฌธ์—์„œ from๋ถ€๋ถ„์„ ํ•ด์„ํ•  ๋•Œ ์ฐพ์•„์•ผํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์„ค์ •
sourceMap : .js.map ํŒŒ์ผ ์ƒ์„ฑ
downlevelIteration : generator์„ ์ •์ƒ์ž‘๋™์‹œํ‚ค๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ด์•ผํ•จ
nolmplicitAny : ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ€์ž…๋ช…์‹œ ์•ˆํ•˜๋ฉด ์•”๋ฌต์ ์œผ๋กœ any ํƒ€์ž…์„ ์„ค์ •ํ•œ๊ฑธ๋กœ ๊ฐ„์ฃผ

2. include : ๋Œ€์ƒ ํŒŒ์ผ ๋ชฉ๋ก

Typescript - Interface ์„ ์–ธ๋ฌธ

object ํƒ€์ž…์€ interface, class์˜ ์ƒ์œ„ ํƒ€์ž…์ด๋‹ค. object์—๋Š” ๋งˆ๊ตฌ์žก์ด๋กœ ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, interface๋Š” ํ•˜๋‚˜ํ•˜๋‚˜ ํƒ€์ž…์„ ์ง€์ •ํ•ด๋‘” ๊ฒƒ! ์–ด๋–ค ์†์„ฑ์ด ์žˆ์–ด์•ผํ•œ๋‹ค๋Š” ๊ทœ์•ฝ์— ๋ถˆ๊ณผํ•  ๋ฟ, ์ง„์งœ๋กœ ๋งŒ๋“ค์–ด์ฃผ์ง€๋Š” ์•Š๊ธฐ ๋•Œ๋ฌธ์— class ์•ˆ์— ๋ฐ˜๋“œ์‹œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ •์˜ํ•˜๊ณ ์žˆ๋Š” ์†์„ฑ์„ ๋ฉค๋ฒ„ ์†์„ฑ์œผ๋กœ ํฌํ•จํ•ด์•ผํ•œ๋‹ค. (= ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ๋จ)

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ Typescript ๋กœ ๊ฐ„๋‹จํ•œ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค์–ด๋ณด๊ธฐ
โœ”๏ธ MVC ํŒจํ„ด, ์ธ์ฆ ๋ณต์Šต
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€