π TDD λ₯Ό νμ©ν΄λ³ΌκΉ?
μ΄λ²μ μ¬λ΄μμ μ¬μ©νκ³ μλ λ©μΌ ν νλ¦Ώ νλ‘μ νΈλ₯Ό μλ³Ό κΈ°νκ° μκ²Όμ΅λλ€.
μλ‘μ΄ λ©μΌ λ°°ν¬ λ°©μ μ μ©μ΄ νμνλλ°, μ΄λ₯Ό μν΄μλ κΈ°μ‘΄ νλ‘μΈμ€μ λν μ΄ν΄κ° νμνμ΅λλ€.
μλ‘κ² ν¬μ λ νλ‘μ νΈμ κΈ°λ₯μ μΆκ°νκ±°λ μμ νλ κ²μ μν₯λμ λ°λΌ μ½μ§ μμ μ μλ μμ μΈλ°,
μ΄λ²μ 맑μ μ λ¬΄κ° ν΄λΉ μλΉμ€ μ½λ μ λ°μ μΌλ‘ μμ μ΄ νμνλ μμ μ΄λΌ λμ± κ³ λ―Όμ΄ λ§μλ κ² κ°μ΅λλ€.
μμ μ μΈ μλΉμ€ κ°λ° λ° λ¦¬ν©ν λ§μ μν΄ TDD λ₯Ό μ κ·Ήμ μΌλ‘ νμ©ν΄λ³Ό μ μλ μ’μ κΈ°νλ‘ λ³΄μ¬ μ μ© λ° νκΈ°μ κ΄ν ν¬μ€νΈλ₯Ό μμ±ν΄λ΄€μ΅λλ€.
π‘ μ΄λ² ν¬μ€νΈμμ TDD ν¨λ¬λ€μμ λν μμΈν λ΄μ©μ λ€λ£¨μ§λ μμ΅λλ€.
π€ TDD λ?
κ°λ¨νκ² TDD μ λν΄μ μ΄ν΄λ³΄κ³ κ°κ² μ΅λλ€.
TDDλ ν
μ€νΈμ½λ μμ± → κΈ°λ₯ ꡬν → ν
μ€νΈ -> 리ν©ν λ§ → ν
μ€νΈ -> ...
μ λ°λ³΅λ μ¬μ΄ν΄λ‘ μ΄λ£¨μ΄μ§λλ€.
κ°κ°μ ν μ€νΈλ λ 립μ μ΄κ³ λΉ λ₯΄κ² μνλμ΄μΌνλ©° λ°λ³΅ κ°λ₯νκ³ μ체μ μΌλ‘ κ²μ¦μ΄ κ°λ₯ν΄μΌν©λλ€.
κ·Έλ¦¬κ³ κ°μ₯ μ€μν κ²μ ν μ€νΈλ₯Ό μ€μ μ½λλ₯Ό ꡬννκΈ° μ μ μμ±ν΄μΌ νλ€λ κ²μ λλ€.
ν΄λΉ νλ‘μ νΈμλ κΈ°μ‘΄μ ν μ€νΈ μ½λκ° μ‘΄μ¬νμ§ μμμ μ°μ κΈ°λ₯ κ°λ°μ νκΈ° μ μ κΈ°μ‘΄ κΈ°λ₯λ€μ λν ν μ€νΈλ₯Ό μΆκ°νλ κ²λΆν° μμνμ΅λλ€.
π§ͺ λ κ±°μ μ½λμ ν μ€νΈμ½λ μΆκ°νκΈ°
μ°μ νλμ μ΄μμλ² API_KEY λ₯Ό μ¬μ©νλ λ©μΌλ§ μλΉμ€μ΄κΈ° λλ¬Έμ ν μ€νΈ 격리μ μΌκ΄μ± 보μ₯μ μν API λͺ¨νΉμ΄ νμνμ΅λλ€.
μ΄λ₯Ό μν΄ κ°κ°μ ν
μ€νΈμμ νΈμΆνλ fetch
ν¨μλ₯Ό λͺ¨νΉνλ λμ msw
λ₯Ό λμ
ν΄μ λͺ¨νΉμ΄ νμν API νΈλ€λ¬λ₯Ό μΆκ°νλ λ°©ν₯μΌλ‘ μ§ννμ΅λλ€.
μ΄λ κ² νλ μ€λ³΅λ λͺ¨νΉ λ°μ΄ν°λ μ κ±°λκ³ , ν μ€νΈ λμ ν¨μμ μΆμνκ° μ¨μ ν 보μ₯λμ΄ ν μ€νΈμ½λ μμ±μ μ’ λ μ§μ€ν μ μμλ κ² κ°μ΅λλ€. π
β»οΈ 리ν©ν λ§νκΈ°
κΈ°μ‘΄ μ½λμ μλ‘μ΄ κΈ°λ₯μ μΆκ°νκΈ° μ μ μΌλΆ λͺ¨λμμ μ’ λ νμ₯μ± μλ κ΅¬μ‘°λ‘ λ³κ²½ν μ μμ κ² κ°μ λΆλΆλ€μ΄ 보μμ΅λλ€.
μλ‘μ΄ κΈ°λ₯μ μΆκ°νκΈ° μ μ 리ν©ν λ§μ μ§ννλλ°, ν μ€νΈμ½λκ° μλ μνμμ μ§ννλ νκ·λ²κ·Έμ λμν μ μλ€λ μμ κ°κ³Ό ν¨κ» μ½λ μμ μ΄ κ°λ₯νμ΅λλ€.
μ€μ λ‘ λ¦¬ν©ν λ§μ νλ€κ° κΈ°μ‘΄ μ½λλ₯Ό μλͺ» μμ ν΄μ ν μ€νΈκ° κΉ¨μ§λ κ²½μ°κ° μ’ μ’ μμλλ°, λ§μ½ ν μ€νΈκ° μμλ€λ©΄ λͺ¨λ₯΄κ³ μ§λμ³μ μ΄ν κ°λ°μ ν μ€νΈ λ¨κ³λ λ°°ν¬λ μ΄νμ λ°κ²¬ν λ€ μμ μ νλ λ³λͺ© λ° λ¦¬μ€ν¬κ° μ‘΄μ¬νμ κ² κ°μ΅λλ€.
β¨ μ κ· κΈ°λ₯ μΆκ°νκΈ°
μ κ· κΈ°λ₯μ μΆκ°ν λλ λ§μ°¬κ°μ§λ‘ ν μ€νΈ μ½λλ₯Ό λ¨Όμ μμ±νκ³ λͺ¨λμ ꡬννλλ°, κ·Έ κ²°κ³Ό μΈν°νμ΄μ€λ₯Ό μ΄λ»κ² ꡬννλκ² μ’μ μ§ κ³ λ―Όμ λ λ§μ΄ νκ² λ κ² κ°μ΅λλ€.
ν΄λ¦° μ½λ
μ μμλ ν
μ€νΈ μ½λλ₯Ό μ μνκΈ° μ΄λ €μ΄ ν¨μλ μ
μ·¨κ° λλ ν¨μ
λΌλ ꡬμ μ΄ μμ΅λλ€.
ν μ€νΈ μμ±μ΄ μ½λλ‘ λ μμ λ¨μλ‘ λͺ¨λννκ³ , λΆνμν μμ‘΄μ±μ μ κ±°νλ λ± μΆμνκ° μ λ κ΅¬μ‘°λ‘ κ³ λ―Όν΄λ³΄κ² λλ κ³κΈ°κ° λ κ² κ°μμ΅λλ€.
μ€μ λ‘ μ΄ λ°©μμΌλ‘ μ§ννλ κ°λ° ν E2E ν μ€νΈμμ λ³λ€λ₯Έ μ΄μκ° λ°κ²¬λμ§ μμμ΅λλ€.
λν ν
μ€νΈ μ½λ μμ²΄κ° ν¨μμ λν νλμ κΈ°λ₯λͺ
μΈμ
μ κ°μ μν μ νκΈ°μ PR μ 리뷰ν λλ, κ·Έλ¦¬κ³ μΆνμ λ€λ₯Έ κ°λ°μκ° μ΄ νλ‘μ νΈλ₯Ό μμ ν μΌμ΄ μκ²Όμ λμλ μ΄λ€ λͺ©μ μΌλ‘ μ΄ λͺ¨λμ΄ μΆκ°λ κ²μΈμ§ λͺ
ννκ² μ μ μμ΄μ μ μ§λ³΄μμ λμ± μ©μ΄ν κ²μ΄λΌλ μκ°μ΄ λ€μμ΅λλ€.
π¬ λλμ λ° λ§λ¬΄λ¦¬
TDD μ ν¨κ» νμ¬ μ΄μμ€μΈ μλΉμ€ 리ν©ν λ§ λ° κΈ°λ₯ κ°λ°μ μ§νν΄λ³Έ κ²°κ³Ό, νμ€ν μμ μ μΌλ‘ κ°λ°νλλ° λμμ΄ λ§μ΄ λ κ² κ°μ΅λλ€.
ν
μ€νΈ λλΆμ side-effect
κ±±μ μμ΄ κ³Όκ°ν λ³νκ° κ°λ₯νκ³ μμ
λμ€μ λμΉ edge-case
λ€λ μκ°κ²μ¦ν μ μμμ΅λλ€.
λ€λ§ λΆνμνκ² μ€λ³΅λ κΈ°λ₯μ κ²μ¦νλ ν μ€νΈλ₯Ό μΆκ°νμ§ μλλ‘ μ£Όμν νμκ° μλ κ² κ°μ΅λλ€.
ν
μ€νΈ μ½λλ κ²°κ΅μ μ½λ
μ΄κΈ° λλ¬Έμ, μ½λμ μ
μ·¨κ° λμ§ μλλ‘ μ κ²½μ¨μ£Όλ κ²μ΄ μ€μν κ² κ°μ΅λλ€.
'π¨βπ» web.dev > log' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ index λ 0λΆν° μμν κΉ? (0) | 2023.03.12 |
---|---|
Mixinμ μ¬μ©ν΄λ³΄λ©° λλμ λ€ (0) | 2022.07.02 |
λλ©μΈ κΈ°λ°μ FE λλ ν 리 ꡬ쑰 (0) | 2022.03.07 |
π¬ λκΈ