Community

๐Ÿ—ž๏ธ ์ฃผ๊ฐ„ ๋‰ด์Šค๋ ˆํ„ฐ - ํ•ด์™ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ - 8์›” 1์ฃผ์ฐจ

๋งค์ฃผ ์›”์š”์ผ, ํ•ด์™ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ ์ค‘ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๋‚ด์šฉ๋“ค์„ ์„ ๋ณ„ํ•ด ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์—…๊ณ„ ํŠธ๋ Œ๋“œ๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์•„์š”. --- 1. React Server Components๋กœ ์ฝ”๋“œ 50,000์ค„ ์ด๋™ํ•˜๊ธฐ ์ „์— ์•Œ์•˜์œผ๋ฉด ์ข‹์•˜๋˜ ๋ชจ๋“  ๊ฒƒ ๋งํฌ: https://www.mux.com/blog/what-are-react-server-components#what-are-react-server-components-what-are-they-good-for ๋ฆฌ์•กํŠธ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ React Server Components(RSC)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ด์ „ํ•˜๋Š” ๊ณผ์ •๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. RSC๋Š” ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง๋˜์–ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ์—์„œ๋Š” ์‹ค์ œ RSC์˜ ๋„์ž… ๊ณผ์ •๊ณผ ์ด๋ฅผ ํ†ตํ•ด ์–ป์€ ์ด์ ๊ณผ ํ•จ๊ป˜, ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ์ฑ…์„ ์†”์งํ•˜๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 2. Type vs Interface: ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ? ๋งํฌ: https://www.totaltypescript.com/type-vs-interface-which-should-you-use ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ Type๊ณผ Interface์˜ ์ฐจ์ด์ ์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์žˆ์–ด์„œ Type๊ณผ Interface๋Š” ํƒ€์ž… ์ •์˜ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฒฐ์ • ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด์™€ ๊ฐ๊ฐ์˜ ํŠน์ง•์„ ์„ค๋ช…ํ•˜๋ฉฐ, ์–ด๋–ค ๊ฒฝ์šฐ์— ์–ด๋–ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. TypeScript ํŒ€์€ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” interface๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , type์€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๊ฐœ๋ฐœ์ž ๋“ค์€ ์ด๋ฅผ ๋ฐ˜๋Œ€ํ•˜๋ฉฐ, ์ธํ„ฐํŽ˜์ด์Šค์˜ ์„ ์–ธ ๋ณ‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ type์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋” ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์—ฌ์ „ํžˆ ๊ฐ์ฒด ์ƒ์†์— ๊ถŒ์žฅ๋˜์ง€๋งŒ, ์กฐ๊ธˆ ๋” ์œ ์—ฐํ•˜๊ณ  ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด type์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์ด์œ ๋กœ ์ € ์—ญ์‹œ type์„ ์„ ํ˜ธ ํ•ฉ๋‹ˆ๋‹ค. 3. Google Maps JavaScript API ์ตœ์ ํ™” ๋ฐฉ๋ฒ• ๋งํฌ: https://cloud.google.com/blog/products/maps-platform/more-control-loading-maps-javascript-api ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” Google Maps JavaScript API์˜ ์ตœ์ ํ™”์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Google Maps ํŒ€์€ API ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ตœ์‹  ๊ธฐ๋ฒ•๋“ค์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์™œ API๋ฅผ ํƒœ๊ทธ๋กœ ์ œ๊ณตํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Maps JavaScript API๊ฐ€ npm ์ด ์•„๋‹Œ ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ž…์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 4. ์›น ์ปดํฌ๋„ŒํŠธ(webcomponents)์˜ ์žฅ์ ์€ ํฐ๋ฐ, ์™œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„๊นŒ์š”?. ๋งํฌ: https://daverupert.com/2023/07/why-not-webcomponents/ ์›น ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ €์ž์˜ ๊ณ ๋ฏผ๊ณผ ์ƒ๊ฐ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” ์ด์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๋Š” ์›น ์ปดํฌ๋„ŒํŠธ์˜ ์žฅ์ ๊ณผ ํ•จ๊ป˜ ์™œ ๊ทธ๋ ‡๊ฒŒ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ๊ณ ์ฐฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 5. Chalk ๋งํฌ: https://chalk.ist/ ์Šฌ๋ผ์ด๋“œ, ๋ธ”๋กœ๊ทธ ๊ธ€ ๋“ฑ์— ํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜๋ฉด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. 6. MDN ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์ถœ์‹œ ๋งํฌ: https://developer.mozilla.org/en-US/blog/introducing-the-mdn-playground/ MDN์—์„œ HTML, CSS ๋ฐ JavaScript๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์ž์ฒด ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. CodeMirror์™€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์‚ฌ์˜ monaco ์—๋””ํ„ฐ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœ๋์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์œ ์‚ฌํ•œ ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ๊ฐ€ ์žˆ์ง€๋งŒ, MDN ๋ฌธ์„œ ๋‚ด ์˜ˆ์ œ๋“ค๊ณผ ์—ฐ๋™๋˜์–ด ๋ฐ”๋กœ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ณ , MDN ๋ฌธ์„œ๋“ค์„ ๋ฐ”๋กœ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์žฅ์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค