ํ’€์Šคํƒ ์›น๐ŸŒ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ ๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป
โž• ์ธ๊ณต์ง€๋Šฅ ๊ด€์‹ฌ ๐Ÿค–


Categories


Recent views

  • 1
  • 2
  • 3
  • 4
  • 5

Subbrain ๊ฐœ๋ฐœ๊ธฐ - Typescript

  1. ๊ฐœ์š”
    • ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ
    • ํšŒ๊ณ 

      Subbrain ๊ฐœ๋ฐœ๊ธฐ - Typescript

      ๊ฐœ์š”

      ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋Š” ์ •์  ํƒ€์ž… ์ฒดํฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹ ์–ธ์–ด์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํƒ€์ž… ๋ถˆ์ผ์น˜ ๋“ฑ์— ์˜ํ•œ ๋ฒ„๊ทธ๋ฅผ ์ค„์ด๊ณ  ํƒ€์ž… ์ •์˜๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ •์˜๋ฅผ ํ™•์‹คํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.

      ์ฃผ๋กœ ๋“œ๋กœ์›Œ์™€ ์นดํ…Œ๊ณ ๋ฆฌ ๊ตฌ์กฐ ์—ฌ๋‹ซ๊ธฐ, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€ ์ƒ์„ฑ, ๊ฒ€์ƒ‰ ์ฐฝ์— ํƒœ๊ทธ ์ƒ์„ฑ, ๋“œ๋กœ์›Œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ ๋“ฑ์˜ ๋™์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ–ˆ๋‹ค.

      ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด โ€œ๊ทธ๋‚˜๋งˆโ€ ์ฒด๊ณ„์ ์ด๊ณ  ๋ฒ„๊ทธ๊ฐ€ ์ ์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค.

      ๊ฒ€์ƒ‰๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์€ ์ด๊ณณ์ด ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€์—์„œ ์„ค๋ช…ํ•œ๋‹ค.

      ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ

      Typescript config

      โœ tsconfig.json
      {
        "compilerOptions": {
          "target": "es2021",
          "moduleResolution": "node",
          "noImplicitAny": true,
          "removeComments": true,
          "preserveConstEnums": true,
          "esModuleInterop": true,
          "resolveJsonModule": true,
          "sourceMap": true,
          "strict": true,
          "rootDir": "scripts",
          "outDir": "assets/scripts",
          "typeRoots": ["node_modules/@types", "scripts/types"]
        },
        "include": ["scripts/**/*"],
        "exclude": ["node_modules", "**/*.spec.ts"]
      }
      
      • ๊ธฐ๋ณธ๊ฐ’์—์„œ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง„ ์ ์€ ์—†์œผ๋ฉฐ, JSON ์ฒ˜๋ฆฌ์™€ ๊ฒฐ๊ณผ๋ฌผ ์„ค์ •์„ Jekyll ํด๋” ๊ตฌ์กฐ์˜ assets ํด๋”๋กœ ์˜ฎ๊ธฐ๋„๋ก ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์— ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๋‹ค.

      ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๊ตฌ์กฐ

      ๐Ÿงพ๏ธ Typescript ํŒŒ์ผ ๊ตฌ์กฐ

      200

      • ์‚ฌ์šฉ ์šฉ๋„๋ณ„๋กœ ํด๋”๋ฅผ ๋‚˜๋ˆ„์–ด ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ ์—ญํ• ์„ ํ•  index.ts๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, components ํด๋”์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
        ์˜ˆ์™ธ์ ์œผ๋กœ
      • types ํด๋”๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…๋“ค์— ๋Œ€ํ•œ ์ •์˜
      • utils ํด๋”๋Š” ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

      ํšŒ๊ณ 

      ์ƒ์„ฑ๋œ JS ์ฝ”๋“œ์™€ TS ์ฝ”๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” Sourcemap ํŒŒ์ผ๋“ค์ด ๋ณด๊ธฐ ์‹ซ์—ˆ์ง€๋งŒ, ๋•๋ถ„์— ์ดˆ๊ธฐ์— ์ด๋ฅผ ํ†ตํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋””๋ฒ„๊น…์„ ์‰ฝ๊ฒŒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

      • ํ•˜์ง€๋งŒ Webpack์ด ๋ฒˆ๋“ค๋งํ•˜๋ฉด์„œ ๋””๋ฒ„๊น…์ด ์–ด๋ ต๊ฒŒ ๋˜์–ด, ๋‚˜์ค‘์— Webpack์„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋นŒ๋“œ ํ™˜๊ฒฝ์œผ๋กœ ๋‚˜๋ˆŒ ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

      ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ์ •ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

      ํ‰์†Œ์— Reactํ•˜๊ณ ๋งŒ ์“ฐ๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์—‰๋ง์ด๋‹ค.

      ์ •์  ์‚ฌ์ดํŠธ์— ๋™์ ์ธ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ๋งŽ๋“ค๋‹ค ๋ณด๋‹ˆ ๋น„๋Œ€ํ•ด์ ธ ์„ฑ๋Šฅ์ด ์กฐ๊ธˆ ๋‚˜๋น ์ง„ ๊ฒƒ ๊ฐ™๋‹ค.