μ΅μνλ₯Ό ν΅ν΄ νλ‘λμ μ μν΄ JavaScript μ½λλ₯Ό μ΅μ ννλ λ°©λ²μ μμ보μΈμ. μΉμ¬μ΄νΈ μ±λ₯μ κ°μ νκ³ λ‘λ μκ°μ μ€μ΄λ©° μ μΈκ³ μ¬μ©μμ κ²½νμ ν₯μμν΅λλ€.
JavaScript μ½λ μ΅μν: κΈλ‘λ² λμμ μν νλ‘λμ λΉλ μ΅μ ν μ λ΅
μ€λλ μ λμ§νΈ νκ²½μμ μΉμ¬μ΄νΈ μ±λ₯μ λ§€μ° μ€μν©λλ€. λ‘λ© μλκ° λλ¦° μΉμ¬μ΄νΈλ μ¬μ©μ κ²½ν μ ν, μ΄νλ₯ μ¦κ°, κΆκ·Ήμ μΌλ‘ λΉμ¦λμ€μ λΆμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€. νλ μΉ κ°λ°μ μ΄μμΈ JavaScriptλ μΉμ¬μ΄νΈ μ±λ₯μ μ€μν μν μ νλ κ²½μ°κ° λ§μ΅λλ€. μ΄ κΈ°μ¬μμλ JavaScript μ½λ μ΅μνμ νμμ μΈ κ΄νμ μμΈν μ΄ν΄λ³΄κ³ κΈλ‘λ² λμμ μν΄ νλ‘λμ λΉλλ₯Ό μ΅μ ννκΈ° μν μ λ΅κ³Ό λꡬλ₯Ό μ΄ν΄λ΄ λλ€.
JavaScript μ½λ μ΅μνλ 무μμ λκΉ?
JavaScript μ½λ μ΅μνλ κΈ°λ₯μ λ³κ²½νμ§ μκ³ JavaScript μ½λμμ λΆνμν λ¬Έμλ₯Ό μ κ±°νλ κ³Όμ μ λλ€. μ΄λ¬ν λΆνμν λ¬Έμμλ λ€μμ΄ ν¬ν¨λ©λλ€.
- 곡백(곡백, ν, μ€ λ°κΏ)
- μ£Όμ
- κΈ΄ λ³μ μ΄λ¦
μ΄λ¬ν μμλ₯Ό μ κ±°νλ©΄ JavaScript νμΌμ ν¬κΈ°κ° ν¬κ² μ€μ΄λ€μ΄ λ€μ΄λ‘λ μκ°μ΄ λΉ¨λΌμ§κ³ μΉμ¬μ΄νΈ μ±λ₯μ΄ ν₯μλ©λλ€.
μ΅μνκ° κΈλ‘λ² λμμ μ€μν μ΄μ λ 무μμ λκΉ?
μ΅μνλ νΉν κΈλ‘λ² λμμ μλΉμ€λ₯Ό μ 곡ν λ λͺ κ°μ§ μ€μν μ΄μ μ μ 곡ν©λλ€.
λμν μλΉ κ°μ
νμΌ ν¬κΈ°κ° μμμλ‘ λμν μλΉκ° μ€μ΄λ€λ©°, μ΄λ λ°μ΄ν° μκΈμ κ° μ νμ μ΄κ±°λ λΉμΌ μ¬μ©μμκ² νΉν μ€μν©λλ€. μ΄λ μΈν°λ· μλκ° λ리거λ λ°μ΄ν° λΉμ©μ΄ λμ μ§μμμ μ€μν©λλ€. μλ₯Ό λ€μ΄ λλ¨μμμ λλ μν리카μ μΌλΆ μ§μμμλ λͺ¨λ°μΌ λ°μ΄ν°κ° λΆλ―Έ λλ μ λ½λ³΄λ€ ν¨μ¬ λΉμ μ μμ΅λλ€.
λ λΉ λ₯Έ νμ΄μ§ λ‘λ μκ°
νμ΄μ§ λ‘λ μκ°μ΄ λΉ¨λΌμ§λ©΄ μμΉμ κ΄κ³μμ΄ μ¬μ©μ κ²½νμ΄ ν₯μλ©λλ€. μ°κ΅¬μ λ°λ₯΄λ©΄ μΉμ¬μ΄νΈ λ‘λ© μκ°μ΄ λ무 μ€λ 걸리면 μ¬μ©μκ° μΉμ¬μ΄νΈλ₯Ό ν¬κΈ°ν κ°λ₯μ±μ΄ λ λμ΅λλ€. μ΅μνλ λ‘λ© μκ°μ μ§μ μ μΌλ‘ κ°μ νμ¬ μ¬μ©μμ μ°Έμ¬λ₯Ό μ μ§ν©λλ€. μ λ½μ νΈμ€ν λ μΉμ¬μ΄νΈμ μ μνλ λΈλΌμ§μ μ¬μ©μλ₯Ό μκ°ν΄ 보μμμ€. μ΅μνλ JavaScriptλ μ§λ¦¬μ 거리μ κ΄κ³μμ΄ λ λΉ λ₯΄κ³ μνν κ²½νμ 보μ₯ν©λλ€.
ν₯μλ SEO
Googleκ³Ό κ°μ κ²μ μμ§μ νμ΄μ§ λ‘λ μλλ₯Ό μμ μμλ‘ κ°μ£Όν©λλ€. λ‘λ© μλκ° λΉ λ₯Έ μΉμ¬μ΄νΈλ κ²μ κ²°κ³Όμμ λ λμ μμλ₯Ό μ°¨μ§ν κ°λ₯μ±μ΄ λμμ Έ κ°μμ±κ³Ό μ κΈ°μ μΈ νΈλν½μ΄ μ¦κ°ν©λλ€. μ΄λ μ¨λΌμΈ μ‘΄μ¬κ°μ ν₯μμν€λ €λ λͺ¨λ μΉμ¬μ΄νΈμ 보νΈμ μΌλ‘ μ€μν μμμ λλ€. Googleμ μκ³ λ¦¬μ¦μ λμ κ³ κ°μ μμΉμ κ΄κ³μμ΄ λ‘λ© μλκ° λλ¦° μ¬μ΄νΈμ νλν°λ₯Ό λΆκ³Όν©λλ€.
ν₯μλ λͺ¨λ°μΌ μ±λ₯
μ μΈκ³μ μΌλ‘ λͺ¨λ°μΌ μ₯μΉ μ¬μ©μ΄ μ¦κ°ν¨μ λ°λΌ λͺ¨λ°μΌ μ±λ₯ μ΅μ νκ° νμμ μ λλ€. μ΅μνλ λͺ¨λ°μΌ μ₯μΉμ λΆνλ₯Ό μ€μ¬ μ€ν¬λ‘€μ΄ λΆλλ¬μμ§κ³ μνΈ μμ©μ΄ λΉ¨λΌμ§λ©° λ°°ν°λ¦¬ μλΉκ° μ€μ΄λλλ€. μΈλμ κ°μ΄ λͺ¨λ°μΌ μΈν°λ· μ¬μ©μ΄ μ§λ°°μ μΈ κ΅κ°μμλ κΈμ μ μΈ λͺ¨λ°μΌ νκ²½μ μ 곡νλ λ° μ΅μνκ° μ€μν©λλ€.
JavaScript μ΅μνλ₯Ό μν λꡬ λ° κΈ°μ
JavaScript μ½λλ₯Ό μ΅μννλ λ° μ¬μ©ν μ μλ μ¬λ¬ λꡬ λ° κΈ°μ μ΄ μμΌλ©°, κ°κ° κ³ μ ν κ°μ κ³Ό μ½μ μ΄ μμ΅λλ€.
Terser
Terserλ ES6+ μ½λλ₯Ό μν λ리 μ¬μ©λλ JavaScript νμ, λ§ΉκΈλ¬ λ° μμΆ λꡬ ν€νΈμ λλ€. λ리 μ¬μ©λλ©° ꡬμ±μ΄ κ°λ₯νμ¬ μ΅μ JavaScript νλ‘μ νΈμ μ ν©ν μ νμ λλ€.
Terser CLI μ¬μ© μ:
terser input.js -o output.min.js
μ΄ λͺ λ Ήμ `input.js`λ₯Ό μ΅μννκ³ μ΅μνλ μ½λλ₯Ό `output.min.js`λ‘ μΆλ ₯ν©λλ€.
Node.js νλ‘μ νΈμμ Terser μ¬μ© μ:
npm install terser
const { minify } = require("terser");
const fs = require("fs");
async function minifyCode() {
const code = fs.readFileSync("input.js", "utf8");
const result = await minify(code);
if (result.error) {
console.error("Error minifying code:", result.error);
} else {
fs.writeFileSync("output.min.js", result.code, "utf8");
console.log("Code minified successfully!");
}
}
minifyCode();
UglifyJS
UglifyJSλ λ λ€λ₯Έ μ ν립λ JavaScript νμ, μ΅μνκΈ°, μμΆκΈ° λ° λ·°ν°νμ΄μ΄ λꡬ ν€νΈμ λλ€. Terserλ§νΌ ES6+ κΈ°λ₯μ ν¬κ΄μ μΌλ‘ μ§μνμ§λ μμ§λ§, μ΄μ JavaScript μ½λλ² μ΄μ€μ λν μ€ν κ°λ₯ν μ΅μ μΌλ‘ λ¨μ μμ΅λλ€.
UglifyJS CLI μ¬μ© μ:
uglifyjs input.js -o output.min.js
Node.js νλ‘μ νΈμμ UglifyJS μ¬μ© μ:
npm install uglify-js
const UglifyJS = require("uglify-js");
const fs = require("fs");
const code = fs.readFileSync("input.js", "utf8");
const result = UglifyJS.minify(code);
if (result.error) {
console.error("Error minifying code:", result.error);
} else {
fs.writeFileSync("output.min.js", result.code, "utf8");
console.log("Code minified successfully!");
}
λ²λ€λ¬(Webpack, Rollup, Parcel)
Webpack, Rollup, Parcelκ³Ό κ°μ λ²λ€λ¬λ μ’ μ’ λΉλ νλ‘μΈμ€μ μ½κ² ν΅ν©ν μ μλ λ΄μ₯ μ΅μν κΈ°λ₯ λλ νλ¬κ·ΈμΈμ ν¬ν¨ν©λλ€. μ΄λ¬ν λꡬλ μ¬λ¬ JavaScript νμΌκ³Ό μ’ μμ±μ΄ μλ 볡μ‘ν νλ‘μ νΈμ νΉν μ μ©ν©λλ€.
Webpack
Webpackμ νλ°νΈ μλ μμ°μ λ³νν μ μλ κ°λ ₯ν λͺ¨λ λ²λ€λ¬μ λλ€. Webpackμμ μ΅μνλ₯Ό νμ±ννλ €λ©΄ `TerserWebpackPlugin` λλ `UglifyJsPlugin`κ³Ό κ°μ νλ¬κ·ΈμΈμ μ¬μ©ν μ μμ΅λλ€.
Webpack κ΅¬μ± μ:
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
// ... other webpack configurations
optimization: {
minimize: true,
minimizer: [new TerserPlugin()],
},
};
Rollup
Rollupμ μμ μ½λ μ‘°κ°μ λΌμ΄λΈλ¬λ¦¬ λλ μ ν리μΌμ΄μ κ³Ό κ°μ΄ λ ν¬κ³ 볡μ‘ν κ²μΌλ‘ μ»΄νμΌνλ JavaScriptμ© λͺ¨λ λ²λ€λ¬μ λλ€. μ¬μ©νμ§ μλ μ½λλ₯Ό μ κ±°νκ³ νμΌ ν¬κΈ°λ₯Ό λμ± μ€μ΄λ νΈλ¦¬ μμ΄νΉ κΈ°λ₯μΌλ‘ μ λͺ ν©λλ€.
Terserκ° μλ Rollup κ΅¬μ± μ:
import terser from '@rollup/plugin-terser';
export default {
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
format: 'iife'
},
plugins: [
terser()
]
};
Parcel
Parcelμ μ λ‘ κ΅¬μ± μΉ μ ν리μΌμ΄μ λ²λ€λ¬μ λλ€. μ΅μνλ₯Ό ν¬ν¨νμ¬ ν©λ¦¬μ μΈ κΈ°λ³Έκ°μΌλ‘ μμ°μ μλμΌλ‘ λ³ννκ³ λ²λ€λ§ν©λλ€.
Parcelμ μΌλ°μ μΌλ‘ λΉλ νλ‘μΈμ€ μ€μ μλμΌλ‘ μ΅μνλ₯Ό μ²λ¦¬ν©λλ€. μΌλ°μ μΌλ‘ νΉμ ꡬμ±μ΄ νμνμ§ μμ΅λλ€.
μ¨λΌμΈ μ΅μνκΈ°
JavaScript μ½λλ₯Ό λΉ λ₯΄κ³ μ½κ² μ΅μνν μ μλ λͺ κ°μ§ μ¨λΌμΈ μ΅μνκΈ°κ° μμ΅λλ€. μ΄λ¬ν λꡬλ μκ·λͺ¨ νλ‘μ νΈ λλ ν μ€νΈ λͺ©μ μΌλ‘ νΈλ¦¬ν©λλ€. μλ λ€μκ³Ό κ°μ΅λλ€.
JavaScript μ΅μνλ₯Ό μν λͺ¨λ² μ¬λ‘
ν¨κ³Όμ μΈ μ΅μνλ₯Ό 보μ₯νκ³ μ μ¬μ μΈ λ¬Έμ λ₯Ό λ°©μ§νλ €λ©΄ μ΄λ¬ν λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€.
λΉλ νλ‘μΈμ€μμ μ΅μν μλν
λͺ¨λ JavaScript μ½λκ° λ°°ν¬ μ μ μλμΌλ‘ μ΅μνλλλ‘ λΉλ νλ‘μΈμ€μ μ΅μνλ₯Ό ν΅ν©ν©λλ€. μ΄λ Webpack, Rollup λλ Gulpμ κ°μ λΉλ λꡬλ₯Ό μ¬μ©νμ¬ μνν μ μμ΅λλ€.
μμ€ λ§΅ μ¬μ©
μμ€ λ§΅μ μ¬μ©νλ©΄ μ΅μνλ μ½λλ₯Ό μλ μμ€ μ½λμ λ€μ λ§€ννμ¬ λλ²κΉ ν μ μμ΅λλ€. μ΄λ νλ‘λμ μμ μ€λ₯λ₯Ό μλ³νκ³ μμ νλ λ° λ§€μ° μ€μν©λλ€.
μμ€ λ§΅μ΄ μλ Webpack κ΅¬μ± μ:
module.exports = {
// ... other webpack configurations
devtool: 'source-map',
// ...
};
μ΅μνλ μ½λ μ² μ ν ν μ€νΈ
νμ μ΅μνλ μ½λλ₯Ό ν μ€νΈνμ¬ μ λλ‘ μλνλμ§ νμΈνμμμ€. μ΅μνλ μμμΉ λͺ»ν μ€λ₯λ₯Ό λ°μμν¬ μ μμΌλ―λ‘ μ² μ ν ν μ€νΈκ° νμμ μ λλ€.
Gzip μμΆ κ³ λ €
Gzip μμΆμ JavaScript νμΌμ ν¬κΈ°λ₯Ό λμ± μ€μ¬ μΉμ¬μ΄νΈ μ±λ₯μ λμ± ν₯μμν΅λλ€. λλΆλΆμ μΉ μλ²λ Gzip μμΆμ μ§μνλ©° μ΄λ₯Ό νμ±ννλ κ²μ΄ μ’μ΅λλ€.
μ½λ λλ νμ μ μ
μ΅μνλ νμΌ ν¬κΈ°λ₯Ό μ€μ΄μ§λ§ κ°λ ₯ν μ½λ λλ νλ₯Ό μ 곡νμ§ μμ΅λλ€. μ½λλ₯Ό 리λ²μ€ μμ§λμ΄λ§μΌλ‘λΆν° 보νΈν΄μΌ νλ κ²½μ° μ μ© λλ ν λꡬλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μ±λ₯ λͺ¨λν°λ§
μ±λ₯ λͺ¨λν°λ§ λꡬλ₯Ό μ¬μ©νμ¬ μΉμ¬μ΄νΈ μ±λ₯μ λν μ΅μνμ μν₯μ μΆμ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ μ¬μ μΈ λ¬Έμ λ₯Ό μλ³νκ³ μ΅μν μ λ΅μ μ΅μ νν μ μμ΅λλ€.
κ³ κΈ μ΅μν κΈ°μ
κΈ°λ³Έ μ΅μν μΈμλ νλ‘λμ μ μν΄ JavaScript μ½λλ₯Ό λμ± μ΅μ νν μ μλ λͺ κ°μ§ κ³ κΈ κΈ°μ μ΄ μμ΅λλ€.
νΈλ¦¬ μμ΄νΉ
νΈλ¦¬ μμ΄νΉμ JavaScript λ²λ€μμ μ¬μ©νμ§ μλ μ½λλ₯Ό μ κ±°νλ κΈ°μ μ λλ€. μ΄λ νΉν μ’ μμ±μ΄ λ§μ λκ·λͺ¨ νλ‘μ νΈμμ νμΌ ν¬κΈ°λ₯Ό ν¬κ² μ€μΌ μ μμ΅λλ€. Webpack λ° Rollupκ³Ό κ°μ λꡬλ νΈλ¦¬ μμ΄νΉμ μ§μν©λλ€.
μ½λ λΆν
μ½λ λΆν μλ JavaScript μ½λλ₯Ό νμμ λ°λΌ λ‘λλλ λ μμ μ²ν¬λ‘ λλλ μμ μ΄ ν¬ν¨λ©λλ€. μ΄λ κ² νλ©΄ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ΄ κ°μ λκ³ λ―Έλ¦¬ λ€μ΄λ‘λν΄μΌ νλ μ½λμ μμ΄ μ€μ΄λ€ μ μμ΅λλ€. Webpack λ° Parcelμ μ½λ λΆν μ νλ₯νκ² μ§μν©λλ€.
λ°λ μ½λ μ κ±°
λ°λ μ½λ μ κ±°λ μ€νλμ§ μλ μ½λλ₯Ό μλ³νκ³ μ κ±°νλ μμ μ λλ€. μ΄λ μ μ λΆμ λ° μλνλ λꡬλ₯Ό ν΅ν΄ μνν μ μμ΅λλ€.
μ΅μν μΈμ μ½λ μ€νμΌ
μ΅μνλ₯Ό μΌλμ λκ³ μ½λλ₯Ό μμ±νλ©΄ ν¨κ³Όλ₯Ό λμ± ν₯μμν¬ μ μμ΅λλ€. μλ₯Ό λ€μ΄ λ μ§§μ λ³μ μ΄λ¦μ μ¬μ©νκ³ λΆνμν μ½λ μ€λ³΅μ νΌνλ©΄ μ΅μνλ νμΌμ΄ λ μμμ§ μ μμ΅λλ€.
κ΅μ ν(i18n) λ° μ§μν(l10n) κ³ λ € μ¬ν
κ΅μ λμκ³Ό κ΄λ ¨λ κ²½μ° μ΅μν μ€μ i18n λ° l10n μΈ‘λ©΄μ κ³ λ €νλ κ²μ΄ μ€μν©λλ€. λ€λ₯Έ μΈμ΄ λλ μ§μκ³Ό κ΄λ ¨λ κΈ°λ₯μ΄ μ€μλ‘ μμλμ§ μλλ‘ μ£Όμνμμμ€.
- λ¬Έμμ΄ μΈλΆν: μ§μνμ μ¬μ©λλ λ¬Έμμ΄μ΄ μ λλ‘ μΈλΆνλκ³ JavaScript μ½λμ μ§μ νλ μ½λ©λμ§ μμλμ§ νμΈν©λλ€. μ΅μνλ μ΄λ¬ν μΈλΆνλ λ¬Έμμ΄μ΄ λ‘λλκ³ μ¬μ©λλ λ°©μμ μν₯μ λ―ΈμΉμ§ μμμΌ ν©λλ€.
- λ μ§ λ° μ«μ νμ: λ μ§ λ° μ«μ νμ λΌμ΄λΈλ¬λ¦¬κ° μ¬λ°λ₯΄κ² ꡬμ±λμλμ§, μ΅μνκ° μλ‘ λ€λ₯Έ λ‘μΌμΌμμ κΈ°λ₯μ κ°μνμ§ μλμ§ νμΈν©λλ€.
- λ¬Έμ μΈμ½λ©: λΉ λΌν΄ λ¬Έμ μ§ν©μ μ²λ¦¬ν λ νΉν λ¬Έμ μΈμ½λ©μ μ£Όμνμμμ€. μ΅μνκ° μ¬λ°λ₯Έ μΈμ½λ©μ μ μ§νμ¬ νμ λ¬Έμ λ₯Ό λ°©μ§νλμ§ νμΈν©λλ€. UTF-8μ μΌλ°μ μΌλ‘ μ νΈνλ μΈμ½λ©μ λλ€.
- λ‘μΌμΌ κ° ν μ€νΈ: μ΅μνλ μ½λλ₯Ό μλ‘ λ€λ₯Έ λ‘μΌμΌμμ μ² μ νκ² ν μ€νΈνμ¬ i18n/l10n κ΄λ ¨ μ μ¬μ λ¬Έμ λ₯Ό μλ³νκ³ ν΄κ²°ν©λλ€.
μ¬λ‘ μ°κ΅¬ λ° μ
μ΅μνκ° μΉμ¬μ΄νΈ μ±λ₯μ μ΄λ€ μν₯μ λ―ΈμΉ μ μλμ§μ λν μ€μ μ¬λ‘λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
μ¬λ‘ μ°κ΅¬ 1: μ μ μκ±°λ μΉμ¬μ΄νΈ
λΆλ―Έ, μ λ½ λ° μμμμ κ³ κ°μκ² μλΉμ€λ₯Ό μ 곡νλ μ μ μκ±°λ μΉμ¬μ΄νΈλ Webpack λ° Terserλ₯Ό μ¬μ©νμ¬ JavaScript μ΅μνλ₯Ό ꡬννμ΅λλ€. μ΅μν μ , μ£Όμ JavaScript λ²λ€μ ν¬κΈ°λ 1.2MBμμ΅λλ€. μ΅μν ν, λ²λ€ ν¬κΈ°λ 450KBλ‘ μ€μ΄λ€μ΄ 62% κ°μνμ΅λλ€. μ΄λ‘ μΈν΄ νΉν μΈν°λ· μλκ° λλ¦° μ§μμ μ¬μ©μμκ² νμ΄μ§ λ‘λ μκ°μ΄ ν¬κ² κ°μ λμμ΅λλ€. μ΅μν ꡬν ν μ νμ¨μ΄ 15% μ¦κ°νμ΅λλ€.
μ¬λ‘ μ°κ΅¬ 2: λ΄μ€ ν¬νΈ
μ λ½, μν리카 λ° λ¨λ―Έμ λ μλ₯Ό λμμΌλ‘ νλ λ΄μ€ ν¬νΈμ Rollup λ° νΈλ¦¬ μμ΄νΉμ μ¬μ©νμ¬ JavaScript μ½λλ₯Ό μ΅μ ννμ΅λλ€. μ΄κΈ° JavaScript λ²λ€μ ν¬κΈ°λ 800KBμμ΅λλ€. μ΅μ ν ν, λ²λ€ ν¬κΈ°λ 300KBλ‘ μ€μ΄λ€μ΄ 63% κ°μνμ΅λλ€. μΉμ¬μ΄νΈλ λν κ° νμ΄μ§μ νμν JavaScriptλ§ λ‘λνκΈ° μν΄ μ½λ λΆν μ ꡬννμ΅λλ€. κ·Έ κ²°κ³Ό μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ΄ λμ λκ² κ°μ λμκ³ μ΄νλ₯ μ΄ κ°μνμ΅λλ€.
μ: κ°λ¨ν JavaScript ν¨μ μ΅μ ν
λ€μ JavaScript ν¨μλ₯Ό κ³ λ €ν΄ λ³΄μμμ€.
// This function calculates the area of a rectangle
function calculateRectangleArea(width, height) {
var area = width * height;
return area;
}
μ΅μν ν μ΄ ν¨μλ λ€μκ³Ό κ°μ΄ μ€μΌ μ μμ΅λλ€.
function calculateRectangleArea(a,b){return a*b}
μ΅μνλ λ²μ μ λ μ½κΈ° μ½μ§λ§ μλ λ²μ κ³Ό λμΌνκ² μλνλ©° ν¬κΈ°κ° ν¨μ¬ μμ΅λλ€.
κ²°λ‘
JavaScript μ½λ μ΅μνλ μΉμ¬μ΄νΈ μ±λ₯μ μ΅μ ννκ³ κΈλ‘λ² λμμ λ λμ μ¬μ©μ κ²½νμ μ 곡νλ λ° νμμ μΈ κ΄νμ λλ€. λΆνμν λ¬Έμλ₯Ό μ κ±°νκ³ νμΌ ν¬κΈ°λ₯Ό μ€μμΌλ‘μ¨ μ΅μνλ νμ΄μ§ λ‘λ μκ°μ ν¬κ² κ°μ νκ³ λμν μλΉλ₯Ό μ€μ΄λ©° λͺ¨λ°μΌ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. μ¬λ°λ₯Έ λꡬ, κΈ°μ λ° λͺ¨λ² μ¬λ‘λ₯Ό νμ©νμ¬ μ¬μ©μμ μμΉμ κ΄κ³μμ΄ JavaScript μ½λκ° μλμ ν¨μ¨μ±μ μ΅μ νλλλ‘ ν μ μμ΅λλ€.
λΉλ νλ‘μΈμ€μμ μ΅μνλ₯Ό μλννκ³ , λλ²κΉ μ μν΄ μμ€ λ§΅μ μ¬μ©νκ³ , μ΅μνλ μ½λλ₯Ό μ² μ ν ν μ€νΈνκ³ , νΈλ¦¬ μμ΄νΉ λ° μ½λ λΆν κ³Ό κ°μ κ³ κΈ κΈ°μ μ κ³ λ €νμ¬ μΆκ° μ΅μ νλ₯Ό μννλ κ²μ μμ§ λ§μμμ€. μ±λ₯μ μ°μ μνκ³ JavaScript μ½λλ₯Ό μ΅μ ννλ©΄ μ μΈκ³ μ¬μ©μλ₯Ό μν΄ λ λΉ λ₯΄κ³ , λ λ°μμ±μ΄ λ°μ΄λκ³ , λ λ§€λ ₯μ μΈ μΉμ¬μ΄νΈλ₯Ό λ§λ€ μ μμ΅λλ€.