Webpack + Babel + TypeScript ์„ค์ • ๊ฐ€์ด๋“œ

2025. 9. 16. 22:37ยท๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)
728x90

์˜ค๋Š˜์€ Vanilia JS ๋ฅผ ํ™œ์šฉํ•œ SPA ํ”„๋กœ์ ํŠธ์—์„œ Babel + TypeScript + Webpack ์„ ์„ค์ •ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

Babel์ด๋ž€?

 

https://babeljs.io/

 

Babel

Current Sponsors We're a small group of volunteers that spend their free time maintaining this project, funded by the community. If Babel has benefited you in your work, becoming a contributor or sponsoring might just be a great way to give back!

babeljs.io

 

๊ณต์‹๋ฌธ์„œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†Œ๊ฐœ๊ฐ€ ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค. 

Babel is a JavaScript compiler

Babel is a toolchain that is mainly used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript in current and older browsers or environments. Here are the main things Babel can do for you:

  • Transform syntax
  • Polyfill features that are missing in your target environment (through a third-party polyfill such as core-js)
  • Source code transformations (codemods)
  • And more! (check out these videos for inspiration)
// Babel Input: ES2015 arrow function
[1, 2, 3].map(n => n + 1);

// Babel Output: ES5 equivalent
[1, 2, 3].map(function(n) {
  return n + 1;
});

 

 

์ตœ์‹  JavaScript/TypeScript ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋‚˜ Node.js ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ(ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ)์ด๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ๋ฒ• ๋ณ€ํ™˜๊ณผ ๊ด€๋ จํ•œ ์—ญํ• ์„ ๋งก์Šต๋‹ˆ๋‹ค.

  • ์ตœ์‹  ECMAScript ๋ฌธ๋ฒ•(ES2020+)์„ ํ•˜์œ„ ํ˜ธํ™˜ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝ
  • ๋ˆ„๋ฝ๋œ ํด๋ฆฌํ•„ ๊ธฐ๋Šฅ
  • ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜ ์ œ๊ฑฐ ( Babel์€ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค ) 
  • React JSX → JS ์ฝ”๋“œ ๋ณ€ํ™˜
  • ๊ทธ ์™ธ์˜ ๋งŽ์€ ๊ฒƒ๋“ค -> https://babeljs.io/videos ์ฐธ๊ณ 

 


Webpack 

 

JS, TS, CSS, ์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ(Module Bundler)์ž…๋‹ˆ๋‹ค.

 

ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ์•ฑ์€ ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ ๊ฐœ์˜ JS/TS ํŒŒ์ผ, CSS, ์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง์ ‘ ๋ชจ๋“  ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๋„ˆ๋ฌด ๋งŽ์•„์ง€๊ณ , ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ Webpack์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด์„œ ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„(Dependency Graph) ๋ฅผ ๋งŒ๋“ค๊ณ , ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ(Tree-shaking)์™€ ํ•จ๊ป˜ ์ตœ์ข… ๋ฒˆ๋“ค ํŒŒ์ผ(bundle.js)๋กœ ๋ฌถ์–ด ์ฃผ์–ด ํšจ์œจ์ ์ธ ๋กœ๋”ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

 

  • ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง (Module Bundling) : ์—ฌ๋Ÿฌ ๊ฐœ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋ฒˆ๋“ค๋กœ ๋ฌถ์Œ
  • ๋กœ๋” ์ ์šฉ : Babel, TypeScript ๊ฐ™์€ Loader๋ฅผ ํ†ตํ•ด ES6 -> ES5 ๋ณ€ํ™˜ ์ ์šฉ, TS -> JS ๋ณ€ํ™˜ ์ ์šฉ
  • ์ž์› ๊ด€๋ฆฌ (CSS, ์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ) : ํšจ์œจ์ ์ธ  CSS  ์™€ ์ด๋ฏธ์ง€/ํฐํŠธ ๊ด€๋ฆฌ  
    • css-loader, style-loader → CSS ๊ด€๋ฆฌ
    • asset/resource, file-loader → ์ด๋ฏธ์ง€/ํฐํŠธ ๊ด€๋ฆฌ
  • ์ตœ์ ํ™”(Tree Shaking, Code Splitting) :  ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ๊ฐœ๋ฐœ ์„œ๋ฒ„(HMR) : webpack-dev-server ๋ฅผ ํ™œ์šฉํ•˜์—ฌ  HMR(Hot Module Replacement) ์ ์šฉ

 

HMR(Hot Module Replacement)

https://webpack.kr/guides/hot-module-replacement/

 

Hot Module Replacement | ์›นํŒฉ

์›นํŒฉ์€ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋ชฉ์ ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก JavaScript ํŒŒ์ผ์„ ๋ฒˆ๋“ค๋กœ ๋ฌถ๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๋ฆฌ์†Œ์Šค๋‚˜ ์• ์…‹์„ ๋ณ€ํ™˜ํ•˜๊ณ  ๋ฒˆ๋“ค๋ง ๋˜๋Š” ํŒจํ‚ค์ง•ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

webpack.kr

 

Hot Module Replacement(๋˜๋Š” HMR)๋Š” webpack์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. 

Hot Module Replacement (HMR) ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์ค‘์— ๋ชจ๋“ˆ์„ ๊ต์ฒดํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š๊ณ , ๋ฐ”๋€ ๋ชจ๋“ˆ๋งŒ ๊ต์ฒดํ•ด์„œ UI์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

 

  // ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์„ค์ • (webpack-dev-server)
  devServer: {

    static: {
      directory: path.join(__dirname, 'dist'),
    },
    compress: true,
    port: 3000, 
    open: true, 
    hot: true, // HMR(Hot Module Replacement) ํ™œ์„ฑํ™”
    historyApiFallback: true,
  },

 

 

 

 

HMR with Stylesheets

 

 CSS ์˜์กด์„ฑ์ด ์—…๋ฐ์ดํŠธ๋  ๋•Œ <style>ํƒœ๊ทธ๋ฅผ ํŒจ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ module.hot.accept๋ฅผ ์‚ฌ์šฉ

=> ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด๋„ ์Šคํƒ€์ผ์ด ๋ฐ˜์˜

 

  const path = require('path');
  const HtmlWebpackPlugin = require('html-webpack-plugin');

  module.exports = {
    entry: {
      app: './src/index.js',
    },
    devtool: 'inline-source-map',
    devServer: {
      static: './dist',
      hot: true,
    },
   module: {
     rules: [
       {
         test: /\.css$/,
         use: ['style-loader', 'css-loader'],
       },
     ],
   },
    plugins: [
      new HtmlWebpackPlugin({
        title: 'Hot Module Replacement',
      }),
    ],
    output: {
      filename: '[name].bundle.js',
      path: path.resolve(__dirname, 'dist'),
      clean: true,
    },
  };



 


๐Ÿ“ฆ Webpack ์ดˆ๊ธฐ ์„ค์ • ๊ฐ€์ด๋“œ

1. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”

mkdir my-webpack-app
cd my-webpack-app
npm init -y
  • npm init -y → package.json ์ž๋™ ์ƒ์„ฑ

2. Webpack ์„ค์น˜

npm install --save-dev webpack webpack-cli
  • webpack → ๋ฒˆ๋“ค๋Ÿฌ
  • webpack-cli → CLI ๋ช…๋ น์–ด ์‹คํ–‰ ๋„๊ตฌ

3. ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

my-webpack-app/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ index.js   # ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ
โ”œโ”€โ”€ dist/
โ”‚   โ””โ”€โ”€ index.html # ์ตœ์ข… ๋นŒ๋“œ๋œ ํŒŒ์ผ์„ ๋กœ๋“œ
โ”œโ”€โ”€ package.json
  • src/ : ๊ฐœ๋ฐœ์šฉ ์†Œ์Šค ์ฝ”๋“œ
  • dist/ : ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋“ค์–ด๊ฐˆ ํด๋”

4. Webpack ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ

ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— webpack.config.js ์ƒ์„ฑ:

const path = require("path");

module.exports = {
  entry: "./src/index.js", // ์‹œ์ž‘์ 
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "bundle.js", // ๋ฒˆ๋“ค ํŒŒ์ผ ์ด๋ฆ„
  },
  mode: "development", // "development" | "production"
};

5. index.html ์ž‘์„ฑ

dist/index.html์— ๋ฒˆ๋“ค๋ง๋œ JS ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>My Webpack App</title>
</head>
<body>
  <div id="app"></div>
  <script src="bundle.js"></script>
</body>
</html>

6. ๋นŒ๋“œ ์‹คํ–‰

package.json์— script ์ถ”๊ฐ€:

"scripts": {
  "build": "webpack"
}

์‹คํ–‰:

npm run build
  • dist/bundle.js ํŒŒ์ผ ์ƒ์„ฑ๋จ
  • index.html์—์„œ ๋กœ๋“œ ๊ฐ€๋Šฅ

7. ๊ฐœ๋ฐœ ์„œ๋ฒ„ (์„ ํƒ)

ํŽธ๋ฆฌํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•ด webpack-dev-server๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

npm install --save-dev webpack-dev-server

webpack.config.js ์ˆ˜์ •:

devServer: {
  static: "./dist", // ์ •์  ํŒŒ์ผ ์ œ๊ณต ๊ฒฝ๋กœ
  open: true,       // ์ž๋™์œผ๋กœ ๋ธŒ๋ผ์šฐ์ € ์—ด๊ธฐ
  hot: true,        // HMR (Hot Module Replacement)
}

package.json ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€:

"scripts": {
  "start": "webpack serve --open"
}

8. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ (์„ ํƒ)

  • Babel (์ตœ์‹  JS ๋ณ€ํ™˜):
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: "babel-loader",
            options: { presets: ["@babel/preset-env"] }
          }
        }
      ]
    }
    
  • npm install --save-dev babel-loader @babel/core @babel/preset-env
  • CSS ๋กœ๋”:
    module: {
      rules: [
        { test: /\.css$/, use: ["style-loader", "css-loader"] }
      ]
    }
    
  • npm install --save-dev style-loader css-loader

์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๋ฉด Webpack ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ธํŒ… ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ฆ Babel + TS configuarion ๊ตฌ์„ฑ

 

์ด์ œ ๊ธฐ๋ณธ Webpack ์„ธํŒ…์— ์ด์–ด Babel + TS configuarion ์„ค์ •์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

Babel๊ณผ TypeScript๋ฅผ Webpack ํ™˜๊ฒฝ์— ํ†ตํ•ฉํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

  • ts-loader (TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ)
  • babel-loader + @babel/preset-typescript (Babel๋กœ TS → JS ๋ณ€ํ™˜)

์ตœ๊ทผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ๋Š” Babel ๊ธฐ๋ฐ˜ ์„ค์ •์„ ๋งŽ์ด ์”๋‹ˆ๋‹ค. (๋น ๋ฅด๊ณ  Babel ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„ ํ™œ์šฉ ๊ฐ€๋Šฅ)
์•„๋ž˜๋Š” Babel + TypeScript + Webpack ์„ค์ • ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

1. ์˜์กด์„ฑ ์„ค์น˜

npm install --save-dev \
  typescript \
  @babel/core \
  @babel/preset-env \
  @babel/preset-typescript \
  babel-loader \
  webpack webpack-cli webpack-dev-server
  • typescript → ํƒ€์ž… ๊ฒ€์‚ฌ
  • @babel/preset-env → ์ตœ์‹  JS๋ฅผ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
  • @babel/preset-typescript → TS ๊ตฌ๋ฌธ์„ JS๋กœ ๋ณ€ํ™˜
  • babel-loader → Babel์„ Webpack์—์„œ ์‚ฌ์šฉ

2. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

my-app/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ index.ts
โ”œโ”€โ”€ dist/
โ”‚   โ””โ”€โ”€ index.html
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ babel.config.js
โ”œโ”€โ”€ webpack.config.js
โ””โ”€โ”€ package.json

3. Babel ์„ค์ • (babel.config.js)

module.exports = {
  presets: [
    ["@babel/preset-env", { targets: "defaults" }], 
    "@babel/preset-typescript"
  ]
};

4. TypeScript ์„ค์ • (tsconfig.json)

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true      // Babel์ด ๋ณ€ํ™˜ํ•˜๋ฏ€๋กœ TS๋Š” ํŒŒ์ผ ์ถœ๋ ฅ ์•ˆ ํ•จ
  },
  "include": ["src"]
}

โš ๏ธ noEmit: true๋กœ ์„ค์ •ํ•ด์•ผ TypeScript๊ฐ€ JS ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋‚ด๋ณด๋‚ด์ง€ ์•Š๊ณ  ํƒ€์ž… ์ฒดํฌ๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


5. Webpack ์„ค์ • (webpack.config.js)

const path = require("path");

module.exports = {
  entry: "./src/index.ts",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "bundle.js",
  },
  resolve: {
    extensions: [".ts", ".js"], // import ์‹œ ํ™•์žฅ์ž ์ƒ๋žต ๊ฐ€๋Šฅ
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,    // .ts, .tsx ํŒŒ์ผ
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  devServer: {
    static: "./dist",
    open: true,
    hot: true,
  },
  mode: "development"
};

6. ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ (package.json)

"scripts": {
  "build": "webpack",
  "start": "webpack serve --open",
  "type-check": "tsc --noEmit"
}

7. ์ƒ˜ํ”Œ ์ฝ”๋“œ (src/index.ts)

function greet(name: string): string {
  return `Hello, ${name}!`;
}

console.log(greet("์„œ์—ฐ"));

โœ… ๋™์ž‘ ์›๋ฆฌ

  1. tsc --noEmit → ํƒ€์ž… ๊ฒ€์‚ฌ ์ „์šฉ
  2. babel-loader → .ts ํŒŒ์ผ์„ ์ฝ์–ด์™€ JS๋กœ ๋ณ€ํ™˜
  3. @babel/preset-env → ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
  4. ์ตœ์ข… ๋ฒˆ๋“ค์€ dist/bundle.js๋กœ ์ƒ์„ฑ

์—ฌ๊ธฐ์„œ ์„ ํƒ์ง€๊ฐ€ ์žˆ๋Š”๋ฐ์š”.

  • ํƒ€์ž… ๊ฒ€์‚ฌ ์†๋„๋ฅผ ๋†’์ด๊ณ  ์‹ถ๋‹ค → fork-ts-checker-webpack-plugin ์ถ”๊ฐ€
  • React + TS + Babel ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค → @babel/preset-react ์ถ”๊ฐ€

 

 

'๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์›น ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ธฐ: Transition, Keyframes, rAF, WAAPI ๋น„๊ต์™€ ํ™œ์šฉ๋ฒ•  (0) 2025.09.24
Webpack Tree Shaking ๋™์ž‘ ์›๋ฆฌ  (0) 2025.09.17
MVC ๊ตฌ์กฐ - ์˜ต์ €๋ฒ„ ํŒจํ„ด ( Observer Pattern )  (0) 2025.09.08
[Javascript] ์ด๋ฒคํŠธ ์ „ํŒŒ & ์ด๋ฒคํŠธ ์œ„์ž„  (1) 2025.09.08
[CoderPad] ๋ฆฌ์•กํŠธ ๊ฐ€์ƒ ์Šคํฌ๋กค (Virtualized List)  (5) 2025.06.22
'๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์›น ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ธฐ: Transition, Keyframes, rAF, WAAPI ๋น„๊ต์™€ ํ™œ์šฉ๋ฒ•
  • Webpack Tree Shaking ๋™์ž‘ ์›๋ฆฌ
  • MVC ๊ตฌ์กฐ - ์˜ต์ €๋ฒ„ ํŒจํ„ด ( Observer Pattern )
  • [Javascript] ์ด๋ฒคํŠธ ์ „ํŒŒ & ์ด๋ฒคํŠธ ์œ„์ž„
์—ฐ์žŽ(lotus leaf)
์—ฐ์žŽ(lotus leaf)
  • ์—ฐ์žŽ(lotus leaf)
    lotus' s develog ๐Ÿƒ
    ์—ฐ์žŽ(lotus leaf)
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • โœ๏ธ ๊ฐœ๋ฐœํšŒ๊ณ ๋ก (5)
      • ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
      • ๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE) (19)
        • HTML (0)
        • CSS (0)
        • Javascript (0)
        • React (0)
        • Next.js (0)
        • webpack & babel (0)
      • ๐Ÿ’ป ๋ฐฑ์—”๋“œ(BE) (2)
        • Nest.js (0)
        • Express.js (0)
        • MySQL (1)
      • โš™๏ธ ์ธํ”„๋ผ(Devops) (2)
      • ๐Ÿค– AI (1)
      • ๐ŸŒ WEB (8)
      • ๐Ÿ’ป CS (16)
        • ์ž๋ฃŒ๊ตฌ์กฐ (0)
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
        • ์šด์˜์ฒด์ œ (0)
        • ์ธ๊ณต์ง€๋Šฅ (8)
        • ์›น ๋ณด์•ˆ (1)
        • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… (6)
      • ๐Ÿ–‹๏ธ DevLog (1)
      • ๐Ÿฆพ ๋กœ๋ณดํ‹ฑ์Šค (4)
      • ๐Ÿ“— ๋„ค์ด๋ฒ„๋ถ€์ŠคํŠธ์บ ํ”„ ์›น ๋ชจ๋ฐ”์ผ (0)
      • ๐ŸŽฎ Unity(C#) (10)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (4)
        • C (4)
        • C++ (0)
        • Java (0)
        • Python (0)
      • MSA (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์กฐํ•ฉ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ros workspace
    client-streaming
    C
    ์ฝ”๋”ํŒจ๋“œ
    Devops #๋Œ€๊ทœ๋ชจํŠธ๋ž˜ํ”ฝ์ฒ˜๋ฆฌ
    AWS
    c++
    C#
    ๋ฐฑ์ค€
    soft margin svm
    hard margin svm
    advaned detail
    ๋ฆฌ์•กํŠธ
    isaac automator
    ์ŠคํŒธ๋ฉ”์ผ๋ถ„๋ฅ˜๊ธฐ
    next.js12
    deploy-aws
    ํŒŒ์ผํŠธ๋ฆฌ
    ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต #๋„์ „ํ•™๊ธฐ์ œ
    turtlebot
    ๊ธฐ์ดˆ์•Œ๊ณ ๋ฆฌ์ฆ˜
    gaussian rbf svm
    c์–ธ์–ด
    nav2
    ros bridge
    auto-scaling
    ์ˆœ์—ด
    ์ŠคํŒธ๋ถ„๋ฅ˜๊ธฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
์—ฐ์žŽ(lotus leaf)
Webpack + Babel + TypeScript ์„ค์ • ๊ฐ€์ด๋“œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”