์ „์ฒด ๊ธ€ 60

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ํ•ด๋ณด๊ณ  ๊นจ๋‹ซ๊ธฐ..

์˜ค๋Š˜์€ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ณ ๋ฏผํ•˜๊ณ  ๊ตฌํ˜„ํ•ด๋ณด๋˜ ์ค‘ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋Š๊ปด์กŒ๋˜ ํ”„๋กœ์„ธ์Šค์— ๊ด€ํ•ด ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ERD  ํ˜„์žฌ ERD์—์„œ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๊ณต์—ฐ ํ…Œ์ด๋ธ”์— ์ƒ์œ„์— ๋ฐฐ์น˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์—ฐ ํ…Œ์ด๋ธ” ์•ˆ์— ์ปฌ๋Ÿผ์œผ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋”ฐ๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ์ด์œ ๋Š” ๊ณต์—ฐ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ๊ทธ๋ฃนํ™” ์‹œ์ผœ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ณต์—ฐ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ๋ณ€ํ™”๋‚˜ ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์„ ํ•„์š”๊ฐ€ ์—†๋‹ค๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.๊ฒฐ๊ตญ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ญ๋น„๊ฐ€ ์ƒ๊ธด ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 1. ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ์„ ์œ„ํ•œ ์ถ”๊ฐ€ API 2. ์กฐํšŒ ์‹œ Join์„ ํ•œ๋ฒˆ ๋” ํ•ด์•ผํ•œ๋‹ค.3. ๋ช…์‹œ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ๋ณต์žกํ•ด์กŒ๋‹ค.  ๋งˆ๋ฌด๋ฆฌ ์‹ค์ œ ๊ฐœ๋ฐœ ์ „๊นŒ์ง€ ํšจ์œจ์ ์ธ ์„ค๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ง์ ‘ ํ•ด๋ณด๋‹ˆ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€..

Web 2024.07.06

NestJS Interceptor

์˜ค๋Š˜์€ NestJs Interceptor์— ๋Œ€ํ•˜์—ฌ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. Request LifeCycle1. Incoming request2. Globally bound middleware, Module bound middleware3. Global guards, Controller guards, Route guards4. Global interceptors (pre-controller), Controller interceptors (pre-controller), Route interceptors (pre-controller)5. Global pipes, Controller pipes, Route pipes, Route parameter pipes6. Controller (method handler)7. Serv..

Web 2024.07.05

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ERD ์ˆ˜์ •(3), API ๋ช…์„ธ์„œ ์ˆ˜์ •

์˜ค๋Š˜์€ ERD์™€ API ๋ช…์„ธ์„œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์„ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ERD1. ์ž”์—ฌ ์ขŒ์„ -> ํŒ๋งค ์ขŒ์„ ๋ณ€๊ฒฝ - ์ž”์—ฌ ์ขŒ์„์œผ๋กœ ๋‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์„ ์‹œ ์ขŒ์„์„ ํฌํ•จํ•˜๋Š” ํ…Œ์ด๋ธ” ๊ณต์—ฐ ์ผ์ •์ด ์ถ”๊ฐ€๋œ๋‹ค๋ฉด ์ž”์—ฌ ์ขŒ์„์„ ์ด ๊ฐœ์ˆ˜๋งŒํผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ ํ•ด์ค˜์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ๋Š” 3๊ฐœ๋งŒ ์ถ”๊ฐ€ํ–ˆ์œผ๋‚˜ ๋งŒ์•ฝ 100๊ฐœ ์ •๋„์˜ ์ขŒ์„ ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค๋ฉด ๋งค๋ฒˆ ์ผ์ •์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๊ฝค ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ ์ถ”๊ฐ€ ํ•ด์ค˜์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ํŒ๋งค ์ขŒ์„์œผ๋กœ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ํŒ๋งค๊ฐ€ ๋˜์—ˆ์„ ๋•Œ๋งŒ ํ…Œ์ด๋ธ”์ด ์ถ”๊ฐ€๋˜๋„๋ก ERD ์„ค๊ณ„๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ๋งค๋ฒˆ ์ขŒ์„ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์—†์–ด์ง€๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2. ํ‹ฐ์ผ“์ด ๊ฐ–๊ณ  ์žˆ๋˜ ์ค‘๋ณต๋œ ์ปฌ๋Ÿผ ์ œ๊ฑฐ - ์ด๊ฒƒ์€ ์„ ํƒ์ ์ธ..

Web 2024.07.04

DTO ๊ฐœ๋… ์žก๊ธฐ + ๊ณต์—ฐ ์˜ˆ๋งค ์‚ฌ์ดํŠธ ํ”„๋กœ์ ํŠธ - ERD ์ˆ˜์ •

์˜ค๋Š˜์€Nest.js ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ์— ๊ด€ํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์–ด ERD๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.  DTO๋ž€ ? ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๊ฐ„ ๋˜๋Š” ๊ณ„์ธต ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์ด๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ชจ๋ธ๊ณผ๋Š” ๋ณ„๋„๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜, ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ๋‹จ์ˆœํ™” ๋“ฑ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ํ•œ๋ฒˆ์— ์ „๋‹ฌํ•˜๋ฏ€๋กœ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DTO๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์–ป๋Š” ์žฅ์ ์ฒซ ๋ฒˆ์งธ, Dto๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ๊ต‰์žฅํžˆ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. Service ๋ ˆ์ด์–ด ์—์„œ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ, Entity๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ฒ„๋ฆฌ๋ฉด Service ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ฒŒ ..

Web 2024.07.02

๋ชจ์˜๋ฉด์ ‘ + ํ”ผ๋“œ๋ฐฑ (JWT ํ† ํฐ)

์˜ค๋Š˜์€ ์บ ํ”„์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๋ชจ์˜๋ฉด์ ‘์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‰์†Œ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ + ๋ฏธ๋ฆฌ ์ œ๊ณต๋œ ์˜ˆ์ƒ ์งˆ๋ฌธ ๋•๋ถ„์— ๋‹ต๋ณ€์€ ์ž˜ ํ–ˆ์œผ๋‚˜ ๋ช‡ ๊ฐ€์ง€ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์–ด ์˜ค๋Š˜์˜ TIL๋กœ ์ ์–ด๋‘ก๋‹ˆ๋‹ค.  1. ๋งํ•˜๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•˜๋‹ค. - ์•„๋Š” ๋‚ด์šฉ์ด์—ˆ์ง€๋งŒ ๋‹ต๋ณ€ํ•˜๋Š” ๊ณผ์ •์—์„œ ํ•„์š” ์ด์ƒ์œผ๋กœ ๊ธธ๊ฒŒ ์„ค๋ช…ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ค‘๊ฐ„์ค‘๊ฐ„ ๋œธ์„ ๋“ค์ด๋Š” ์‹œ๊ฐ„์ด๋‚˜, ๋ถ€๊ฐ€ ์„ค๋ช…์ด ์ค‘๊ฐ„์— ๋“ค์–ด๊ฐ€๋ฉฐ ์ƒ๋Œ€๋กœ ํ•˜์—ฌ๊ธˆ ์ด ์‚ฌ๋žŒ์ด ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์žˆ๋Š” ๊ฑด๊ฐ€ ? ํ•˜๋Š” ์˜๋ฌธ์„ ๋“ค ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.- ์†”๋ฃจ์…˜์œผ๋กœ ๊ธ€๋กœ ๋จผ์ € ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋†“๊ณ  ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ, ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ ํ•œ๋‘ ๊ฐœ๋ฅผ ๋งํ•˜๋Š” ์—ฐ์Šต๊ณผ ๋ถ€๊ฐ€ ์„ค๋ช…์€ ๋งˆ์ง€๋ง‰์— ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ง๋ถ™์ผ ๊ฒƒ์„ ๊ถŒ์œ ํ•ด ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. 2. JWT ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  + ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ๋ฃŒ์— ๋Œ€ํ•˜์—ฌ - ์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ..

Web 2024.07.01

2024 Epson Innovation challenge ์ฐธ์—ฌ ํ›„๊ธฐ

์˜ค๋Š˜์€2024 Epson API ๊ณต๋ชจ์ „์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณต๋ชจ์ „์€ Epson ์ฝ”๋ฆฌ์•„ + ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ์—์„œ ํ•จ๊ป˜ ์ง„ํ–‰ํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๋ณธ์„  ๋ฐœํ‘œ ์ „, ํ”ผ์นญ ์‹œ๊ฐ„์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.  ํ”„๋กœ์ ํŠธ - PaideiaEpson Connect API๋ฅผ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณต๋ชจ์ „์ด์˜€์Šต๋‹ˆ๋‹ค. ์ €ํฌ ํŒ€์—์„œ๋Š” GPT ์—”์ง„์„ ํ™œ์šฉํ•œ ๊ฐœ์ธ ๋งž์ถคํ˜• ๊ต์œก ์ž๋ฃŒ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.์ €๋Š” ํ”„๋กœ์ ํŠธ์—์„œ DB ์„ค๊ณ„๋ฅผ ๋งก์•„ ์ƒ์„ฑ๋œ ๊ต์œก ์ž๋ฃŒ๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ERD์ดˆ๊ธฐ์— ๊ณ„ํšํ•œ ERD์ž…๋‹ˆ๋‹ค.์ถ”์ฒœ ํ•™์Šต, ์˜ค๋Š˜์˜ ํ•™์Šต, ์ฆ๊ฒจ์ฐพ๊ธฐํ•œ ํ•™์Šต, ์˜ค๋‹ต๋…ธํŠธ ๋“ฑ ์ดˆ๊ธฐ ๊ธฐํš์— ๋งž์ถฐ ๊ตฌ์„ฑํ–ˆ๋Š”๋ฐ ์ œ์ถœ ๊ธฐํ•œ์— ๋งž์ถฐ ๊ธฐ๋Šฅ์ด ์ถ•์†Œ๋˜๋ฉด์„œ ๋‹ค์‹œ ERD๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž‘์„ฑํ•œ ERD์ž…๋‹ˆ๋‹ค. ERD๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„ํ•œ ..

Web 2024.06.30

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ERD, API ๋ช…์„ธ์„œ

์˜ค๋Š˜์€์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ๋œ ํ”„๋กœ์ ํŠธ์— ์•ž์„œ API ๋ช…์„ธ์„œ์™€ ERD๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.  API ๋ช…์„ธ์„œํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ํ•„์ˆ˜์  ๊ธฐ๋Šฅ๋“ค๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.  - auth : ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ - user : ๊ฐœ์ธ ์ •๋ณด ์กฐํšŒ - show : ๊ณต์—ฐ ์ƒ์„ฑ, ๊ณต์—ฐ ๊ฒ€์ƒ‰, ๊ณต์—ฐ ์ƒ์„ธ ์กฐํšŒ- ticket : ๋žœ๋ค ์˜ˆ๋งคํ•˜๊ธฐ, ์˜ˆ๋งค ํ™•์ธ, ์˜ˆ๋งค ์ทจ์†Œ, ์ „์ฒด ์ขŒ์„ ์˜ˆ๋งค ์ •๋ณด ํ™•์ธ, ์ขŒ์„ ์ง€์ • ์˜ˆ๋งค  ์ขŒ์„๋งˆ๋‹ค ๋“ฑ๊ธ‰์ด ์žˆ๊ณ  ๊ฐ€๊ฒฉ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์„์„ ์ง€์ •ํ•˜์—ฌ ์˜ˆ๋งค, ์˜ˆ๋งค ์ทจ์†Œ, ์ „์ฒด ์ขŒ์„ ์˜ˆ๋งค ์ •๋ณด ํ™•์ธ API๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.  req, res ์ž‘์„ฑ์—์„œ ERD์˜ ํ•„์š”์„ฑ์„ ๋Š๊ปด ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋งค์™€ ๊ด€๋ จ๋œ API URL๊ณผ method๊ฐ€ RESTful ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€, ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„..

Web 2024.06.28

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๊ณ ๊ธ‰ ํƒ€์ž… ์ •๋ฆฌ

TypeScript๋Š” JavaScript์— ์ •์  ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. TypeScript์—๋Š” ๊ธฐ๋ณธ ํƒ€์ž… ์™ธ์—๋„ ๊ณ ๊ธ‰ ํƒ€์ž…์ด ์กด์žฌํ•˜์—ฌ ๋ณต์žกํ•œ ํƒ€์ž… ์ •์˜์™€ ๋” ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์ฒดํฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.  ์˜ค๋Š˜์€ TypeScript์˜ ๊ณ ๊ธ‰ ํƒ€์ž…๋“ค์„ ์ •๋ฆฌํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.   1. ์œ ๋‹ˆ์˜จ ํƒ€์ž… (Union Types)์—ฌ๋Ÿฌ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.typescriptlet value: string | number;value = "Hello";value = 123; 2. ์ธํ„ฐ์„น์…˜ ํƒ€์ž… (Intersection Types)์—ฌ๋Ÿฌ ํƒ€์ž…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.interface Person { name: string;}interf..

Web 2024.06.28

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์ปดํŒŒ์ผ

์˜ค๋Š˜์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๊ณผ์ •์ธ ์ปดํŒŒ์ผ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.  ์ปดํŒŒ์ผ์ด๋ž€ ? ์ผ๋ฐ˜์ ์œผ๋กœ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŠน์ • ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด '์ปดํŒŒ์ผ' ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ์š”,๋ธŒ๋ผ์šฐ์ €๋Š” ์•„์ง๊นŒ์ง€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•˜์ง€๋งŒ ๋ฐฐํฌ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.  ์ปดํŒŒ์ผ๋Ÿฌ๋ž€ ? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ '์ปดํŒŒ์ผ๋Ÿฌ'๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ -> ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ)'์ปดํŒŒ์ผ๋Ÿฌ'๋Š” ์ฝ”๋“œ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐœ๊ฒฌํ•˜๊ธฐ๋„ ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์ตœ์ ํ™”๋ฅผ ๋„์™€ ์ „๋ฐ˜์ ์ธ ์–ดํ”Œ๋ฆฌ..

Web 2024.06.27

๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด

์˜ค๋Š˜์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์  ํƒ€์ž… ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ œ๊ฒŒ๋Š” ์ƒ์†Œํ•œ ๊ฐœ๋…์ธ ๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. 1. ๋™์  ํƒ€์ž… ์–ธ์–ด ( ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด ) ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์‹คํ–‰ ์‹œ๊ฐ„(runtime)์— ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํƒ€์ž…์„ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ , ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹น ํ•  ๋•Œ ๊ทธ ๊ฐ’์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.  ํŠน์ง• 1. ์œ ์—ฐ์„ฑ : ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ณ ์ •๋˜์ง€ ์•Š๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. 2. ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ : ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ํƒ€์ž…์„ ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ์„œ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง‘๋‹ˆ๋‹ค. 3. ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ์ฒดํฌ : ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์‹ค..

Web 2024.06.26