<aside>
</aside>
μλ
νμΈμ! μ¬λ¬λΆμ μ¦κ±°μ΄ μ½λ© μ¬μ μ ν¨κ»ν κ°μ΄λμ
λλ€. νμ΄μ¬μ μ²μ λ°°μΈ λ, μ°λ¦¬λ λ³μμ κ°μ νμΈνκ±°λ μ½λμ νΉμ λΆλΆμ΄ μ€νλλμ§ λ³΄κΈ° μν΄ print() ν¨μλ₯Ό μ λ§ λ§μ΄ μ¬μ©νμ£ . λ§μΉ μ΄λμ΄ κΈΈμ λ°νλ μμ λ±μ²λΌμ! π¦
νμ§λ§ μ¬λ¬λΆμ΄ λ ν¬κ³ 볡μ‘ν νλ‘κ·Έλ¨μ λ§λ€κΈ° μμνλ©΄, μ΄ print() μμ λ±λ§μΌλ‘λ κΈΈμ μ°ΎκΈ° μ΄λ €μμ§λλ€. μ΄λ² μ±ν°μμλ μ μ°λ¦¬κ° print()λ₯Ό λμ΄μ 'λ‘κΉ
(Logging)'μ΄λΌλ ν¨μ¬ λ κ°λ ₯ν ν€λλΌμ΄νΈλ₯Ό μ¬μ©ν΄μΌ νλμ§, κ·Έ μ΄μ λ₯Ό μ½κ³ λͺ
ννκ² μλ €λ릴 κ±°μμ.
μ΄λ² μ±ν°λ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ κ±°μμ!
print() ν¨μλ₯Ό μ¬μ©νλ κ²μ λͺ
νν νκ³λ₯Ό μ€λͺ
ν μ μμ΅λλ€.logging λͺ¨λκ³Ό loguruμ μ°¨μ΄μ μ μ΄ν΄ν©λλ€.loguruλ₯Ό ν΅ν΄ μΌλ§λ λ©μ§κ³ νΈλ¦¬νκ² λ‘κΉ
μ ν μ μλμ§ κΈ°λκ°μ κ°κ² λ©λλ€.μ΄λ² μ±ν°λ κ°λ
μ μ΄ν΄νλ μκ°μ΄λΌ 볡μ‘ν νλ‘μ νΈ κ΅¬μ‘°λ μ½λλ μμ΄μ. print()μ νκ³λ₯Ό 보μ¬μ£Όλ κ°λ¨ν μμ νμΌ νλλ§ μ΄ν΄λ³Ό κ±°μμ.
νλ‘μ νΈ κ΅¬μ‘°
.
βββ why_not_print.py
why_not_print.py μ 체 μ½λ
import datetime
def process_data(data):
# κ°λ° μ€ λ°μ΄ν° νμΈμ μν printλ¬Έ
print(f"Debug: λ°μ΄ν° μ²λ¦¬ μμ... μ
λ ₯κ°: {data}")
if not isinstance(data, int) or data < 0:
# μλ¬ μν©μ μ리기 μν printλ¬Έ
print(f"Error: μ ν¨νμ§ μμ λ°μ΄ν°μ
λλ€: {data}")
return None
result = data * 2
# μ€μν μ±κ³΅ λ©μμ§λ₯Ό μν printλ¬Έ
now = datetime.datetime.now()
print(f"Success: {now} - λ°μ΄ν° μ²λ¦¬ μ±κ³΅! κ²°κ³Ό: {result}")
return result
# ν¨μ μ€ν
process_data(10)
process_data(-5)
process_data("hello")
μ°λ¦¬μκ² λ무λ μΉμν print()! νμ§λ§ μ€μ μλΉμ€λ₯Ό λ§λ€ λλ μ¬λ¬ κ°μ§ λ¬Έμ μ μ λλ¬λ΄κΈ° μμν΄μ. λ§μΉ μ₯λκ° μΉΌλ‘λ μ§μ§ μ ν¬λ₯Ό ν μ μλ κ²κ³Ό κ°μ£ . print()μ νκ³λ₯Ό νλμ© μ΄ν΄λ³ΌκΉμ?