naver/fe-news ๋‰ด์Šค๋ ˆํ„ฐ ๋ทฐ์–ด (๋น„๊ณต์‹)

๋ชฉ์ฐจ
๋ชฉ์ฐจ

    2023-04

    ๋งํฌ & ์ฝ์„ ๊ฑฐ๋ฆฌ

    DEVIEW 2023

    ์ง€๋‚œ 2์›” ์‚ผ์„ฑ๋™ ์ฝ”์—‘์Šค ๊ทธ๋žœ๋“œ๋ณผ๋ฃธ์—์„œ ๊ฐœ์ตœ๋œ ๊ตญ๋‚ด ์ตœ๋Œ€ ๊ทœ๋ชจ ๊ฐœ๋ฐœ์ž ์ฝ˜ํผ๋Ÿฐ์Šค DEVIEW์˜ ์˜์ƒ์ด ์—…๋กœ๋“œ๋˜์—ˆ๋‹ค. FE ๊ธฐ์ˆ ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ๋ฐœํ‘œ ์ฃผ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 8๊ฐœ๋กœ DEVIEW ๊ณต์‹ ์‚ฌ์ดํŠธ์˜ Session ํŽ˜์ด์ง€์—์„œ๋„ filter๋ฅผ web์œผ๋กœ ์„ค์ •ํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    10 Web Development Trends in 2023

    ์˜ฌํ•ด์˜ ์›น ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? 2023๋…„์˜ ์›น ๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ์— ๋Œ€ํ•ด ์ •๋ฆฌ๋œ ์ž๋ฃŒ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ๋„ ์กด์žฌํ•œ๋‹ค.

    TL;DR

    • ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ: Next.js, Remix, Sveltekit, SolidStart
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ Œ๋”๋ง ํŒจํ„ด: SSR, SSG, ISR, Streaming SSR, On-demand ISR, CSR
    • ์—ฃ์ง€์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค: Cloudflare Workers, Deno Deploy, Vercel
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฅด๋„ค์ƒ์Šค:
      • ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: PlanetScale(MySql), Neon(PostgreSQL), Xata(PostgreSQL)
      • ํ”Œ๋žซํผํ™”: Fly.io, Railway
      • Firebase ๋Œ€์ฒด์žฌ: Supabase
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„: Deno, Cloudflare Workers, Bun
      • ์„œ๋ฒ„์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์˜ ํŒŒํŽธํ™” ์ง„ํ–‰ ์ค‘, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ WinterCG(Web-interpoerable Runtimes Community Group)
    • ๋ชจ๋…ธ๋ ˆํฌ: Turborepo, Nx, Rush, Lerna
    • SSR์˜ ๋ถ€์ƒ์— ๋”ฐ๋ฅธ CSS ๋ณ€ํ™”
      • Utility First CSS: Tailwind CSS, UnoCSS, CSS Modules
      • ์ œ๋กœ ๋Ÿฐํƒ€์ž„ CSS-in-JS: vanilla-extract, linaria, astroturf, compiled
    • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ E2E ํƒ€์ž… ์•ˆ์ „์„ฑ: tRPC, Zod, Prisma, TanStack Router
    • ๋นŒ๋“œ ๋„๊ตฌ: Vite, Esbuild, Turbopack, webpack
    • AI ์ฃผ๋„ ๊ฐœ๋ฐœ: copilot, chatGPT
    • ๊ธฐํƒ€: Tauri, Playwright, Wrap, Fig, CSS Container Queries, htmx

    SPA view transitions land in Chrome 111

    view transitions

    ์›น์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์ฒ˜๋Ÿผ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ณ , ๊ท€์ฐฎ์€ ์ž‘์—…์ด์—ˆ๋‹ค.

    view transitions API์€ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜ ํšจ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ํฌ๋กฌ์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์ธ 111 ๋ฒ„์ „๋ถ€ํ„ฐ ์ง€์›๋œ๋‹ค.

    Why Turborepo is migrating from Go to Rust

    Why Turborepo is migrating from Go to Rust

    Vercel์ด ๋ชจ๋…ธ๋ ˆํฌ ํˆด Turborepo๋ฅผ ๊ธฐ์กด์˜ Go ์–ธ์–ด์—์„œ Rust๋กœ ์˜ฎ๊ธฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค. Turbopack๊ณผ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ ๋“ฑ์˜ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

    Programmers Dev Survey 2023

    ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ”Œ๋žซํผ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ๊ตญ๋‚ด ๊ฐœ๋ฐœ์ž 4,034๋ช…์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ ์„ค๋ฌธ ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœํ‘œํ–ˆ๋‹ค.

    ์—ฐ๋ด‰, ์–ธ์–ด, ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ ๋“ฑ์˜ ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์„œ ๊ตญ๋‚ด ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ฒฝํ—˜๊ณผ ์ƒ๊ฐ์„ ์—ฟ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    Announcing TypeScript 5.0

    typescript 5.0์ด ๋ฆด๋ฆฌ์Šค ๋˜์—ˆ๋‹ค.

    Decorators, const Type Parameters ๋“ฑ์˜ ๋ฌธ๋ฒ•, ๊ธฐ๋Šฅ์  ์—…๋ฐ์ดํŠธ๋„ ์žˆ์—ˆ์ง€๋งŒ ๋”์šฑ ๋ˆˆ์—ฌ๊ฒจ๋ด์•ผ ํ•  ๊ฒƒ์€ ESM์œผ๋กœ์˜ ์ „ํ™˜์ด๋‹ค.

    TypeScriptโ€™s Migration to Modules ํฌ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ESM์œผ๋กœ ์ „ํ™˜ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด์„œ ๋ฐํžˆ๊ณ  ์žˆ๋‹ค.

    Introducing react.dev

    ์ง€๋‚œ 3์›” 16์ผ, ์ƒˆ๋กœ์šด React ์‚ฌ์ดํŠธ react.dev๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ๋‹ค. React๋Š” ์ด์ œ ๊ณง ๊ณต๊ฐœ 10๋…„('13๋…„ 5์›” 29์ผ ๊ณต๊ฐœ, [JSConfUS 2013] Tom Occhino and Jordan Walke: JS Apps at Facebook)์„ ๋งž์ดํ•˜๋ฉด์„œ ์˜ค๋Š˜๋‚  UI ๊ฐœ๋ฐœ์— ์žˆ์–ด React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋Œ€๋‹จํ•˜๋‹ค๋Š” ์ ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ƒˆ๋กญ๊ฒŒ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋‹จ์žฅํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

    ๊ธฐ์กด ๋ฌธ์„œ๋“ค์€ legacy.reactjs.org๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กญ๊ฒŒ ๊ฐœํŽธ๋œ ํ™ˆํŽ˜์ด์ง€๋Š” ๋‹ค์Œ 2๊ฐœ์˜ ๋ฉ”์ธ ์„น์…˜์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋‹ค.

    • Learn React: React๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ์ž๊ธฐ ์ฃผ๋„ํ˜• ๊ณผ์ •
    • API Reference: ๋ชจ๋“  React API์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ๊ณผ ์‚ฌ์šฉ ์˜ˆ์ œ๋ฅผ ์ œ๊ณต

    How to start a React Project in 2023

    FE-news ๊ตฌ๋…์ž๋ถ„๋“ค์ด๋ผ๋ฉด ์ง€๋‚œ 3์›” Replace Create React App recommendation with Vite์—์„œ ๊ณต์‹ ๋ฌธ์„œ์˜ ์ถ”์ฒœ ๋„๊ตฌ๋กœ CRA ๋Œ€์‹  Vite๋กœ ๋Œ€์ฒดํ•˜์ž๋Š” PR๊ณผ ๊ทธ์— ๋Œ€ํ•œ Dan Abramov์˜ ๋‹ต๋ณ€์„ ์†Œ๊ฐœํ•œ ์‚ฌ์‹ค์„ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

    ์ง€๊ธˆ ์†Œ๊ฐœํ•˜๋Š” ์ด ๊ธ€์€ ์œ„์˜ ๋‹ต๋ณ€ ์ดํ›„ ์ž‘์„ฑ๋œ react.dev์˜ Start a new React Project๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑ๋˜์—ˆ๋‹ค. Start a new React Project์—์„œ๋Š” Next.js, Remix, Gatsby, Expo๋ฅผ ์ถ”์ฒœํ•˜๋Š”๋ฐ, ์ž‘๊ฐ€๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋“ค์—์„œ ์ด ์ถ”์ฒœ ๋ชฉ๋ก์ด ์™„๋ฒฝํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์—ฌ์ง€์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ด์•ผ๊ธฐํ•˜๋ฉด์„œ, ์ดˆ๋ณด์ž๋“ค์—๊ฒŒ ์ข€ ๋” ๋‹ค์–‘ํ•œ ์„ ํƒ์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด Vite, Next.js, Astro๋ฅผ ์ถ”์ฒœํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์„ ๊ธฐ์ˆ ํ•˜๋ฉด์„œ ์ถ”์ฒœ๋œ ์ด์œ ์™€ ์ถ”์ฒœ๋˜์ง€ ๋ชปํ•œ ์ด์œ ๋“ค์„ ์งš์–ด๋ณธ๋‹ค.

    ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ๋„ ์กด์žฌํ•œ๋‹ค.

    ํŠœํ† ๋ฆฌ์–ผ

    Progressive Web Apps (PWA) for Beginners - Microsoft

    Microsoft์—์„œ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ PWA ๊ฐ•์˜๋ฅผ ๊ณต๊ฐœํ–ˆ๋‹ค. 4๊ฐœ ์ฑ•ํ„ฐ, 17๊ฐœ์˜ ๋น„๋””์˜ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๋น„๋””์˜ค๋‹น 10๋ถ„ ๋‚ด์™ธ์˜ ๊ธธ์ด๋ผ์„œ ๋ถ€๋‹ด ์—†์ด ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค.

    PWA: PWA๋Š” 'Progressive Web Apps'์˜ ์ค„์ธ ๋ง๋กœ, ๋ชจ๋ฐ”์ผ ์‚ฌ์ดํŠธ์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ ํ™ˆ ํ™”๋ฉด์— ์•„์ด์ฝ˜ ์ถ”๊ฐ€ ๋ฐ ํ‘ธ์‹œ ์•Œ๋ฆผ๋„ ๊ฐ€๋Šฅํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€์˜ ์ ‘์ด‰ ๊ธฐํšŒ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ๊ธฐ ์†๋„์™€ ํ‘œ์‹œ์˜ ํ–ฅ์ƒ, ์˜คํ”„๋ผ์ธ ์ง€์› ๋“ฑ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

    The complete guide to CSS media queries

    CSS Media Queries์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ณ ๊ธ‰ ๊ธฐ์ˆ ๊นŒ์ง€ ๋‹ค๋ฃฌ๋‹ค.

    CSS Media Queries: ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ๋กœ, ๋ฏธ๋””์–ด ์œ ํ˜•, ๋””๋ฐ”์ด์Šค ์„ค์ • ๋ฐ ์ •๋ณด ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ CSS ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋””๋ฐ”์ด์Šค์˜ ํฌ๊ธฐ๋‚˜ ๋ฐฉํ–ฅ ๋“ฑ์— ๋”ฐ๋ผ ์ตœ์ ํ™”๋œ ๋””์ž์ธ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

    FP and OOP are close siblings

    ์ด ๊ธ€์€ FP์™€ OOP๊ฐ€ ์กฐํ™”๋กญ๊ฒŒ ๊ฐ™์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์–˜๊ธฐํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋‘˜์€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋ฉฐ, ๋‘ ์„ธ๊ณ„์˜ ํŠน์ • ํŒจํ„ด์— ๋Œ€ํ•œ ์ถ”๋ก ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€๋ฅผ ๋ฐฐ์šฐ๋ฉด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ง„์ •์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๋งํ•œ๋‹ค.

    OOP์™€ FP๋Š” ๋ชจ๋‘ ์ธ๊ฐ„ ์„ธ๊ณ„์˜ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ํ‘œํ˜„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋ฉฐ, Function Currying์„ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ณ  ์žˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์š”์•ฝํ•˜์ž๋ฉด, ์ด ๊ธ€์€ "OOP ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ FP"๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

    Speeding up the JavaScript ecosystem - npm scripts

    npm script๋Š” ๋†’์€ ๋นˆ๋„๋กœ ๋ชจ๋“  ๊ณณ์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ, ์ตœ์ ํ™”๊ฐ€ ์ž˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ ๋•Œ์— ๋”ฐ๋ผ 400ms์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” 0 ~ 22ms๋กœ ์–ด๋–ป๊ฒŒ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

    [์ฐธ๊ณ ] ์ด ๊ธ€์€ "Speeding up the JavaScript ecosystem"์˜ 4๋ฒˆ์งธ ์‹œ๋ฆฌ์ฆˆ ๊ธ€๋กœ, ์ด์ „์˜ ๋‹ค๋ฅธ ์‹œ๋ฆฌ์ฆˆ์˜ ๊ธ€๋“ค๋„ ๊ฐ™์ด ์ฐธ๊ณ ํ•ด ๋ณด๋ฉด ์ข‹๋‹ค.

    ์ฝ”๋“œ์™€ ๋„๊ตฌ

    JSVerbalExpressions

    ์ •๊ทœ ํ‘œํ˜„์‹์€ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ๊ฐ€๋…์„ฑ์ด ํ•ญ์ƒ ์•„์‰ฝ๋‹ค. JSVerbalExpressions์€ ์ •๊ทœ ํ‘œํ˜„์‹์„ ๋” ๋†’์€ ๊ฐ€๋…์„ฑ์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋„์™€์ค€๋‹ค.

    ๋น„์Šทํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ magic-regexp๋„ ์‚ดํŽด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.

    const tester = VerEx()
      .startOfLine()
      .then('http')
      .maybe('s')
      .then('://')
      .maybe('www.')
      .anythingBut(' ')
      .endOfLine();
    // ๐Ÿ‘†๐Ÿป ์œ„ ์ฝ”๋“œ๋Š” /^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$/ ์ •๊ทœ์‹์„ ํ‘œํ˜„ํ•œ๋‹ค.
    
    if (tester.test('https://www.naver.com')) {
      alert('url ํ…Œ์ŠคํŠธ ํ†ต๊ณผ');
    }
    

    Framework7

    ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ๊ณผ ์œ ์‚ฌํ•œ ๋ชจ์Šต๊ณผ ๊ฒฝํ—˜์„ ์›น ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ์œ ๋ช… ์บ๋กœ์…€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ swiper ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

    ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ๋ฐ๋ชจ์—์„œ ํ›‘์–ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ์œ ์‚ฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ stackflow๋„ ์‚ดํŽด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค.

    Turbowatch

    Nodemon๊ณผ ์œ ์‚ฌํ•œ ๋„๊ตฌ๋กœ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์„ ๋น ๋ฅด๊ฒŒ ๊ฐ์ง€ํ•˜๊ณ , ์ž‘์—…๋“ค์— ๋Œ€ํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    chatGPT JS2TS

    Chat GPT๋ฅผ ํ™œ์šฉํ•ด JavaScript ์ฝ”๋“œ๋ฅผ TypeScript๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ๋„๊ตฌ๋กœ, ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธฐ์กด JavaScript ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•ด ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.