κ°λ°μμ βν μ€νΈβκ° μ§μ§λ‘ νΈν΄μ§λ μκ°λ€
κ°λ°μμ βν μ€νΈβκ° μ§μ§λ‘ νΈν΄μ§λ μκ°λ€ ν μ€νΈλ₯Ό μ νλκ³ μ? κ²°κ΅ βλ³κ²½β λλ¬Έμ ν©λλ€ κ°λ°μ λ§λ€κ³ λμ΄ μλλΌ, κ³μ λ°κΎΈλ...
κ°λ°μμ βν μ€νΈβκ° μ§μ§λ‘ νΈν΄μ§λ μκ°λ€
ν μ€νΈλ₯Ό μ νλκ³ μ? κ²°κ΅ βλ³κ²½β λλ¬Έμ ν©λλ€
κ°λ°μ λ§λ€κ³ λμ΄ μλλΌ, κ³μ λ°κΎΈλ μΌμ λλ€.
- μꡬμ¬νμ΄ λ°λλ€
- μ±λ₯ κ°μ μ νλ€
- 리ν©ν°λ§μ νλ€
- λΌμ΄λΈλ¬λ¦¬ λ²μ μ μ¬λ¦°λ€ μ΄λ ν μ€νΈκ° μμΌλ©΄ λ³κ²½μ λ λΆμμ λλ°ν©λλ€. λ°λλ‘ ν μ€νΈκ° μμΌλ©΄, λ³κ²½ νμ βμ μ λμβμ λΉ λ₯΄κ² νμΈν μ μμ΄μ. νΉν ν κ°λ°μμλ λ΄κ° κ³ μΉ λΆλΆμ΄ λ€λ₯Έ κΈ°λ₯μ λ§κ°λ¨λ Έλμ§λ₯Ό 빨리 μ‘μμ£Όλ μμ λ§ μν μ ν©λλ€.
κ°μ₯ μμ λ¨μλ‘ μμνκΈ°: λ¨μ ν μ€νΈ μμ
ν μ€νΈλ₯Ό κ±°μ°½νκ² μμν νμλ μμ΅λλ€. βλ¬Έμ κ° μμ£Ό μκΈ°λ λ‘μ§β νλλ§ κ³¨λΌλ³΄μΈμ. μλ₯Ό λ€μ΄, ν μΈ κΈμ‘ κ³μ°μ²λΌ μμ£Ό μμ λλ κ·μΉμ ν μ€νΈμ κΆν©μ΄ μ’μ΅λλ€.
μμ: ν μΈ κΈμ‘ κ³μ° ν¨μ + κ°λ¨ ν μ€νΈ (JavaScript)
// discount.js
export function calcPrice(original, rate) {
if (original < 0) throw new Error("original must be >= 0");
if (rate < 0 || rate > 1) throw new Error("rate must be between 0 and 1");
return Math.round(original * (1 - rate));
}
// discount.test.js (Jest μ€νμΌ μμ)
import { calcPrice } from "./discount.js";
test("10% ν μΈ μ μ©", () => {
expect(calcPrice(10000, 0.1)).toBe(9000);
});
test("0μμ κ·Έλλ‘", () => {
expect(calcPrice(0, 0.2)).toBe(0);
});
test("μλͺ»λ μ
λ ₯μ μλ¬", () => {
expect(() => calcPrice(-1, 0.1)).toThrow();
expect(() => calcPrice(10000, 2)).toThrow();
});
μ¬κΈ°μ ν΅μ¬μ μ£μ§ μΌμ΄μ€μ λλ€. μ μ μΌμ΄μ€λ§ νμΈνλ©΄ μ€μ μ₯μ λ₯Ό λ§κΈ° μ΄λ ΅κ³ , μ΄μν μ λ ₯μμ 무λμ§λ κ²½μ°κ° λ§κ±°λ μ.
βν μ€νΈκ° μ¬μ΄ μ½λβλ λ°λ‘ μμ΅λλ€
ν μ€νΈλ₯Ό μμ±νλ€ λ³΄λ©΄ μμ°μ€λ½κ² μ½λ νμ§μ΄ μ¬λΌκ°λλ€. μλνλ©΄ ν μ€νΈλ μ΄λ° μ½λλ₯Ό μ’μν΄μ.
-
μ λ ₯κ³Ό μΆλ ₯μ΄ λͺ νν ν¨μ
-
μΈλΆ μμ‘΄μ±(DB, λ€νΈμν¬)μ΄ λΆλ¦¬λ ꡬ쑰
-
μνκ° μ΅μνλ μ€κ³ λ°λλ‘ μλμ²λΌ ν ν¨μκ° λ€ ν΄λ²λ¦¬λ©΄ ν μ€νΈκ° μ΄λ €μμ§λλ€.
-
λ΄λΆμμ λ°λ‘ API νΈμΆ
-
λλ€κ°/μκ°μ μμ‘΄
-
μ μ μνλ₯Ό λ§κ΅¬ μμ
μμ ν: μκ° μμ‘΄ λ‘μ§μ βμ£Όμ βνλ©΄ νΈν΄μ§λλ€
μλ₯Ό λ€μ΄ βμ€λ λ μ§ κΈ°μ€β λ‘μ§μ΄ μλ€λ©΄, ν¨μ μμμ λ°λ‘ Date.now()λ₯Ό μ°κΈ°λ³΄λ€ κ°μ λ°μμ€κ² λ§λ€λ©΄ ν
μ€νΈκ° μ¬μμ Έμ. μμ ꡬ쑰 λ³κ²½ νλλ‘ ν
μ€νΈ λμ΄λκ° ν λ΄λ €κ°λλ€.
νμ€μ μΈ μ΄μ ν: ν μ€νΈλ βμ λΆβκ° μλλΌ βν΅μ¬βλΆν°
ν μ€νΈλ₯Ό λμ ν λ κ°μ₯ νν μ€ν¨λ μ²μλΆν° μλ²½νκ² νλ €λ κ²μ λλ€. μΆμ² νλ¦μ μ΄λ μ΅λλ€.
- μ₯μ κ° λ¬λ λ‘μ§λΆν° ν μ€νΈ μΆκ°
- μμ£Ό λ°λλ κ³μ°/μ μ± /κ²μ¦ λ‘μ§ μ»€λ²
- λ²κ·Έκ° λμ€λ©΄ βμ¬λ° λ°©μ§ ν μ€νΈβλ₯Ό νλμ© μκΈ° μ΄ λ°©μμ μλκ° λλ € 보μ΄μ§λ§, μ€μ λ‘λ ν μ 체μ μμ λΉμ©μ ν μ€μ¬μ€λλ€. ν μ€νΈλ ν λ²μ λλ΄λ νλ‘μ νΈκ° μλλΌ μμ΄λ μμ°μ΄λκΉμ.
λ§λ¬΄λ¦¬: ν μ€νΈλ κ°λ°μμ βμ¬λ¦¬μ μμ μ₯μΉβμ λλ€
ν μ€νΈλ₯Ό κ°μΆ νλ‘μ νΈλ μ½λκ° νΉλ³ν λ©μ Έ 보μ΄μ§ μμλ, μμ μ΄ νΈνκ³ λ°°ν¬κ° λ 무μμ΅λλ€. κ²°κ΅ κ°λ°μμ μ€μν 건 βν λ² μ λ§λλ κ²βλ³΄λ€ κ³μ μ λ°κΏ μ μλ κ²μ΄λλΌκ³ μ.
λ€μμ μκ°μ λ΄μ, μ§κΈ νλ‘μ νΈμμ κ°μ₯ μμ£Ό κΉ¨μ§λ ν¨μ νλλ§ κ³¨λΌ ν μ€νΈλ₯Ό λΆμ¬λ³΄μΈμ. κ·Έ μμ μμμ΄, μκ°λ³΄λ€ ν° μ°¨μ΄λ₯Ό λ§λ€μ΄μ€λλ€.
β¬οΈ μ΄ κΈμ΄ λμμ΄ λμ ¨λ€λ©΄, μλ κ΄κ³ λ₯Ό ν λ²λ§ ν΄λ¦ν΄μ£ΌμΈμ! μ μκ² ν° νμ΄ λ©λλ€ πββοΈ β¬οΈ