λλ²κΉ (Debugging)μ κ°λ κ³Ό νμ©
λλ²κΉ μ΄λ?
λλ²κΉ μ μννΈμ¨μ΄μμ λ°μνλ λ²κ·Έ, μ€λ₯, νΉμ μμΉ μλ λμμ μ°Ύμλ΄κ³ μμ νλ κ³Όμ μ μλ―Έν©λλ€. μ΄λ κ°λ°μκ° μ½λμ μ νμ±μ κ²μ¦νκ³ νλ‘κ·Έλ¨μ΄ μλν λλ‘ μλνλλ‘ νλ λ° μ€μν μν μ ν©λλ€. λλ²κΉ μ μ½λλ₯Ό μ΄ν΄νκ³ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ΄ λλ κ°λ ₯ν λꡬμ κΈ°μ μ ν¬ν¨νκ³ μμ΅λλ€.
λλ²κΉ μ μν
1. μ€λ₯ ν΄κ²°
λλ²κΉ μ μ½λμμ λ°μν μ€λ₯λ₯Ό μ°Ύμλ΄κ³ μ΄λ₯Ό μμ νλ λ° μ¬μ©λ©λλ€. μ€λ₯ ν΄κ²°μ ν΅ν΄ μμ μ μ΄κ³ μ λ’°μ± μλ μννΈμ¨μ΄λ₯Ό λ§λ€ μ μμ΅λλ€.
2. μ½λ μ΄ν΄
λλ²κΉ μ μ½λμ λμμ λ¨κ³λ³λ‘ μ΄ν΄λ³΄κ³ μ΄ν΄νλ λ° λμμ μ€λλ€. κ°λ°μλ κ° μ½λ λΌμΈμμ λ³μμ κ°μ νμΈνκ³ μ€ν νλ¦μ μΆμ νμ¬ μ½λμ λμμ νμ ν μ μμ΅λλ€.
3. μ±λ₯ μ΅μ ν
λλ²κΉ λꡬλ₯Ό μ¬μ©νμ¬ μ½λμ μ€ν μκ°, μμ μ¬μ©λ λ±μ μΈ‘μ νκ³ μ±λ₯μ μ΅μ νν μ μμ΅λλ€. μ΄λ νλ‘κ·Έλ¨μ΄ ν¨μ¨μ μΌλ‘ λμνλλ‘ νλ λ° κΈ°μ¬ν©λλ€.
λλ²κΉ μ μ¬μ© μν©
1. λ²κ·Έ μμ
νλ‘κ·Έλ¨μ΄ μμμΉ λͺ»ν κ²°κ³Όλ₯Ό λ΄λκ±°λ μμΉ μλ λμμ ν λ, λλ²κΉ μ ν΅ν΄ ν΄λΉ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
2. νλ‘κ·Έλ¨ νλ¦ νμΈ
μ½λ μ€ν μ€μ μ΄λ€ κ²½λ‘λ‘ νλ¬κ°λμ§ νμΈνκ³ μΆμ λ, λλ²κΉ μ κ° λΌμΈλ³λ‘ μ½λλ₯Ό μ€ννλ©΄μ νλ¦μ λΆμν μ μλ λꡬλ₯Ό μ 곡ν©λλ€.
3. μ±λ₯ μ΅μ ν
μ½λμ μ€ν μκ°μ΄λ μμ μ¬μ©λμ΄ μ€μν κ²½μ°, λλ²κΉ μ ν΅ν΄ μ΄λ€ λΆλΆμμ μ±λ₯ λ¬Έμ κ° λ°μνλμ§ μ°Ύμλ΄κ³ μ΅μ νν μ μμ΅λλ€.
λλ²κΉ μ μ₯λ¨μ
μ₯μ
- λΉ λ₯Έ μ€λ₯ ν΄κ²°: νλ‘κ·Έλ¨μ μ€λ₯λ₯Ό λΉ λ₯΄κ² μ°Ύμλ΄κ³ μμ ν μ μμ΅λλ€.
- μ½λ μ΄ν΄ λμ: μ½λ μ€ν νλ¦μ μ΄ν΄λ³΄λ©΄μ μ½λλ₯Ό λ κΉμ΄ μ΄ν΄ν μ μμ΅λλ€.
- μ±λ₯ μ΅μ ν: μ½λμ μ€ν μ±λ₯μ μΈ‘μ νκ³ μ΅μ νν μ μμ΅λλ€.
λ¨μ
- μκ° μλͺ¨: λλ²κΉ μ μ½λλ₯Ό νλμ© μ€ννλ©΄μ μκ°μ΄ μμλκΈ° λλ¬Έμ κ°λ° μκ°μ΄ κΈΈμ΄μ§ μ μμ΅λλ€.
λλ²κΉ μ μ΄ν΄νλ μμ
λλ²κΉ μ μ΄ν΄λ₯Ό λκΈ° μν΄ JavaScript μΈμ΄λ₯Ό μ¬μ©ν κ°λ¨ν μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
function divide(a, b) {
if (b === 0) {
throw new Error("Division by zero is not allowed");
}
return a / b;
}
try {
let result = divide(10, 0);
console.log("Result:", result);
} catch (error) {
console.error("Error:", error.message);
}
μ΄ μμ μμ divide
ν¨μλ λ μλ₯Ό λλλ ν¨μμ
λλ€. κ·Έλ¬λ λ λ²μ§Έ μΈμ b
κ° 0μΌ λ μλ¬λ₯Ό λ°μμν΅λλ€. μ μ½λμμλ divide
ν¨μλ₯Ό νΈμΆνκ³ , μλ¬κ° λ°μν κ²½μ° μ μ ν λ©μμ§λ₯Ό μΆλ ₯ν©λλ€. λλ²κΉ
μ ν΅ν΄ μ΄ μ½λλ₯Ό μ€ννλ©΄μ μλ¬λ₯Ό μ°Ύμλ΄κ³ ν΄κ²°ν μ μμ΅λλ€.
μ°κ΄λ κΈ°μ
λλ²κΉ μ λ€μν μΈμ΄μ νκ²½μμ λ€μν κΈ°μ μ μ¬μ©ν©λλ€. λͺ κ°μ§ μ£Όμ κΈ°μ μ λ€μκ³Ό κ°μ΅λλ€.
- IDE(Debugging Integrated Development Environment): ν΅ν© κ°λ° νκ²½μ μ½λ νΈμ§κ³Ό λλ²κΉ λꡬλ₯Ό ν΅ν©νμ¬ μ 곡νλ λꡬμ λλ€.
- λ‘κΉ (Logging): λ‘κ·Έλ₯Ό μΆλ ₯νμ¬ μ½λμ νΉμ μ§μ μμ λ³μ κ°μ΄λ λ©μμ§λ₯Ό νμΈν μ μμ΅λλ€.
- ν μ€νΈ μ£Όλ κ°λ°(Test-Driven Development, TDD): ν μ€νΈ μ½λλ₯Ό μμ±νκ³ λλ²κΉ μ ν΅ν΄ ν μ€νΈλ₯Ό ν΅κ³Όνλλ‘ κ°λ°νλ λ°©λ²μ λλ€.
λλ²κΉ μ κ°λ°μμκ² μ½λλ₯Ό λ ν¨κ³Όμ μΌλ‘ μμ±νκ³ μ μ§λ³΄μν μ μλ κΈ°νλ₯Ό μ 곡ν©λλ€. νΉν 볡μ‘ν μννΈμ¨μ΄μμλ λλ²κΉ μ΄ νμμ μΈ λ¨κ³λ‘ μ리 μ‘κ³ μμ΅λλ€. μμΌλ‘ λλ²κΉ μ νμ©νμ¬ μ½λλ₯Ό λμ± μμ μ μ΄κ³ ν¨μ¨μ μΌλ‘ μμ±ν΄λ³΄μΈμ.
'IT' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Cascade: νλ‘κ·Έλλ°μμ κ°λ μ±κ³Ό ννλ ₯ ν₯μμ μν κΈ°λ² (0) | 2024.03.11 |
---|---|
Bastion μλ²: μμ ν λ€νΈμν¬ μ μμ μν ν΅μ¬ 보μ μμ (0) | 2024.03.07 |
Visual Studio Codeμ Run and Debug κΈ°λ₯ (0) | 2024.03.05 |
JavaScript Callstack: μ€ν 컨ν μ€νΈμ ν΅μ¬ (0) | 2024.03.05 |
Pinpoint: λΆμ° μμ€ν λͺ¨λν°λ§ λꡬ (0) | 2024.03.05 |
λκΈ