-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Choi Da-in edited this page Jan 14, 2024
·
32 revisions
Welcome to the tdd-challenge wiki!
- μ΄μΈλͺ
- λΉ¨κ°, μ΄λ‘, κ·Έλ¦¬κ³ λ¦¬ν©ν λ§. 무μμ΄λ λ¨Όμ μμνκ³ , μνμ°©μ€λ₯Ό κ±°μΉλ©° κ°μ ν΄λκ°λ κ³Όμ μ΄ μ΄λ©΄μ λ§μ£ΌμΉ μ μλ λ§μ λ¬Έμ μ ν΄κ²°κ³Όμ κ³Ό λΉμ·νμ§ μμκΉ νλ μκ°μ΄ λ λ€.
- μ λ€ν
- TDDλ₯Ό λ΄κ° μ΅νλκ°? λΌκ³ νλ©΄ μλ κ² κ°μλλ°, μ± μμ TDD μλ ¨λ²μ μκ°ν΄μ€μ λ°λΌν΄λ³΄κ³ μΆλ€λ μκ°μ΄ λ€μμ΅λλ€. μ΄μ κΉμ§ 1) κ°λ¨νκ³ μ¬μ΄ λ¬Έμ λ‘ μλ νλ μ°μ΅μ νλ€λ©΄ 2) μμ μ΄ν리μΌμ΄μ νλλ₯Ό TDDλ‘ μμ±ν΄λ³΄λ κ² λ μ¬λ°μ κ² κ°μμ! 2) κ³Όμ μ κ±°μ³μΌ TDDκ° μ μ’μ μ§ μλΏμ κ² κ°λ€λ μκ°μ΄ λ€μμ΅λλ€.
- μ΅λ€μΈ
- νκ΅μ΄ν μΈν°λ·°μμ μλμ κ°μ λ§μ΄ λμλλ° μΆ©κ²©μ΄μλ€.
λ΄κ° μμ§ κΈ°μ μ΄ λΆμ‘±ν΄μ ν μ€νΈλ₯Ό μμ±νμ§ λͺ»νλ κ²μΌ λΏ λͺ¨λ κ²μ ν μ€νΈν μ μλ€λ κ²μ 곡λΆν κ²μ΄ λ§μμ λκΌλ€.
μ΅κ·Όμ λ§λΈλΈλ‘νΈ(Mandelbrot) λΈλΌμ°μ λ₯Ό νλ‘κ·Έλλ°νλλ°, ν½μ νλμ λν΄μλ ν μ€νΈλ₯Ό μμ±ν μ μλ€κ³ μκ°νμ΅λλ€. μ΄μ λ κ·Έλ° ν μ€νΈλ₯Ό μμ±ν μ μλ€λ κ²μ κΉ¨λ¬μμΌλ©° (μλ΅)
- νκ΅μ΄ν μΈν°λ·°μμ μλμ κ°μ λ§μ΄ λμλλ° μΆ©κ²©μ΄μλ€.
- νμ§μ
- ν μ€νΈμ½λ μμ΄ κ°λ°μ νλ©° λκΌλ λ¬Έμ λ€μ΄ TDDλ₯Ό ν΅ν΄ μ΄λμ λ ν΄κ²° λ μ μμ κ² κ°λ€λ νμ μ μ¬μ΄μ£Όλ λλ ννΈμμ΅λλ€. μ²μ μ±λ¦°μ§λ₯Ό ν λ ν μ€νΈμ½λμ μΉν΄μ§κΈ° μν΄ νλ κ³Όμ λ€μ΄ μ΄ μ± μ κ³Όμ μ λ λͺ°μ νκ² λ§λ€μ΄ μ£Όκ³ μλ€λ μκ°λ λ€μμ΅λλ€.
- μ΄μΈλͺ
- TDDλ μ‘°μ’ ν΄λκ°λ κ³Όμ μ΄λ€!
- μ λ€ν
- OOPλ₯Ό 곡λΆνλ λλμ΄μλ€μ.. 리ν©ν λ§ κ³Όμ μμ λ¬λΌμ§ μΈν°νμ΄μ€λ₯Ό λ°μν΄μ μ΄λ»κ² ν μ€νΈ μ½λλ₯Ό μμ ν΄λκ°λμ§ μμλ³Ό μ μμμ΅λλ€!
- μμ μ½λκ° μλ°λΌμ μ΄ν΄κ° μ΄λ ΅λ€μ γ γ μλ°μ€ν¬λ¦½νΈλ‘ μμ μ½λλ₯Ό κ°μ΄ ꡬνν΄λ³΄λ©΄μ 곡λΆν΄λ³΄λ 건 μ΄λ¨κΉμ!
- μ΅λ€μΈ
- μΌκ°μΈ‘λ μ λ΅μ΄λΌλ μ΅μνμ§λ§ μΆμμ μ΄μλ λ°©μμ λͺ μν΄μ£Όμ΄μ, μμΌλ‘ μμμ μΌλ‘ μ¬μ©ν μ μμ κ² κ°λ€.
- 11μ₯ κΉμ§μ μμ μμ μμ κ΄κ³μ ν΄λμ€λ₯Ό λ§λ€μλ€κ° μ κ±°λλ κ³Όμ μμ, μν€ν μ² μ£Όλ κ°λ°(architecture-driven develop)κ³Ό μ λ°λλΌλ λ§μ μ€κ°νλ€. ν μ€νΈλ₯Ό μμ±νκ³ ν΅κ³Όμν€λ κ³Όμ μμ μν€ν μ²λ μμ°μ€λ½κ² λ°λΌμ€λ κ²μ΄ μΈμμ μ΄λ€.
- μΌνΈ λ°±μ κΈλ°μ§ ν¬μΈνΈλ€μ΄ λ무 μ¬λ―Έμλ€.π€£
νμΌλ‘ λμκ°μ, "μΌνΈκ° μ€κ³ μ΄μ©κ΅¬ νλ κ²μ λͺ¨μ‘°λ¦¬ μ€μνμ§ μλ€κ³ νλ€."κ³ μ ν μ§ λͺ¨λ₯΄κ² λ€. λ©μΆ°λΌ.
- νμ§μ
- μμκ° μλ°λΌ μ‘°κΈ μ΄μνμ§λ§ μ μμ μ½λλ₯Ό μμ°¨μ μΌλ‘ λ°λΌνλ©΄μ TDDμ λν κ°μ΄ μ‘νκ°μ΅λλ€.
- μ΄μΈλͺ
- μ μκ° μμ±ν λ©νν¬κ° μ΄ν΄νκΈ° μ΄λ €μ λ€. TDDλ₯Ό μν κΈ°λ₯μ μλ κ² κ°μμ§λ§ μλ‘μ΄ ν¨λ¬λ€μμ μ΅ν λλμ΄μλ€.
- μλ¬Έμ μΈμ΄μ μ°λ¦¬κ° ꡬννλ μΈμ΄μ μ°¨μ΄λ‘ μΈν μΆκ°μ μΈ κ³΅λΆκ° λ νμν κ² κ°λ€.
- ν μ€νΈ μ½λλ₯Ό λ§μΉκ³ κ·Έκ² λμκ°λ©΄ TDDλ μ±κ³΅νκ±ΈκΉ? π€
- νμ§μ
- 14μ₯: 리ν©ν λ§ κ³Όμ μ ν μ€νΈμ½λλ₯Ό ν΅ν΄ μ€μλ₯Ό λ°κ²¬νκ³ , κ·Έκ²μ λ°λ‘ κ³ μΉλ κ²μ΄ μλλΌ κ΄λ ¨λ λ λ€λ₯Έ ν μ€νΈμ½λλ₯Ό μΆκ°νμ¬ κ·Έκ²μ to do listμ²λΌ νμ©ν κ³Όμ μ΄ μΈμκΉμλ€.
- 15μ₯: μμ μ νλμ© ν΄κ²°νλ κ³Όμ μμ μ°μ μΌλ°νλ₯Ό μν€κ³ μ»΄νμΌλ¬μ μλ¬λ©μμ§μ λ°λΌ μ μ§μ μΌλ‘ μ 체 μμμ μμ ν΄ λκ°λ λ°©μμ΄ λμλλ°, μ΄μ μ₯μ λ΄μ©κ³ λλΆμ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©μμ΄ μ¬λ¬κ°μ§λΌλ κ²μ 체κ°νλ€.
- 16μ₯: κ·Έλμμ μ μκ° TDDλ₯Ό μ§ννλ κ³Όμ μ μ§μ€ν΄μ λ°λΌνμλλ°, μ΄ μ₯μμλ κ²½μ μ μΌλ‘ TDDλ₯Ό μ§ννκ³ μλμ§μ μ λλ‘ μ§νλκ³ μλμ§μ λν΄ μκ°ν΄λ³Ό μ μλ λ΄μ©μ λ€λ£¨μλ€.
- 17μ₯: κ·Έλμ ν΄μλ κ³Όμ λ€μ΄ μμ½λμ΄μμλλ° μ μκ° κ° μ₯μμ μ΄λ€ μλ―Έλ₯Ό μ λ¬νκ³ μνλμ§, λ λ°°μ°κ³ λ λμ³€λμ§ μκ°ν μ μμλ€. λ TDDμ λΆμ°λ¬Όλ‘ λμ¨ ν μ€νΈμ½λκ° μ±λ₯κ³Ό μ¬μ©μ±ν μ€νΈ λ± μ μ§λ³΄μ κ·Έ μ΄μμ κΈ°λ₯κΉμ§ ν΄μ€κ²μ΄λΌκ³ μμνμ§λ§λΌλ λ§μ΄ κ°μ₯ μλΏμλ€.
- μ΅λ€μΈ
- 12μ₯: λ€μ€ ν΅ν μ°μ°μ ꡬνν λ λλ 머리μ μ μκ° μ²μ λ§ν μ°Έμ‘° ν΅ν λ°©λ²μ λ μ¬λ Έλλ°, μ΄κ² μ΄λ €μ΄ λ°©μμ΄λΌλ©° μλ‘μ΄ λ°©λ²μ μ μν κ²μ΄ μΈμκΉμ μ±ν°μλ€.
- 13μ₯: μ μ΅νλ€. μ¬λ¬ ν΄λμ€ κ°μ²΄λ€μ λν΄ λμΌν μ°μ°μ ꡬνν λ, κ° ν΄λμ€λ³λ‘ λμνλ μ½λλ₯Ό μμ±νλ λμ , λ€νμ±μ μ¬μ©νμ¬ κ° ν΄λμ€ λ΄λΆμ μΌλ‘ ꡬνμ λ§μΆ°μ£Όμ΄ μ½λλ₯Ό μ€μΈ λΆλΆμ΄ μ μ΅νλ€. μ€λ¬΄μμ μΆ©λΆν μ μ©ν΄λ³Ό μ μμ κ² κ°λ€. κ·Έλ¦¬κ³ μμ¦ IDEμμλ ν¨μλ€ νΈλνΉμ΄ μ λμ΄μ μ ν λλΌμ§ λͺ»νλλ°, ν€μλ λ§€κ° λ³μλ₯Ό μ§μνλ μΈμ΄(python λ±)κ° μλ μμΉ λ§€κ° λ³μλ₯Ό μ¬μ©νλ μΈμ΄λ κ·Έ μλλ₯Ό μ λ¬νκΈ° μ΄λ €μΈ μ μλ€λ κ²μ μμΌ λκΌλ€.
- 14μ₯: ν΅νμ λν νμ¨μ μ μ₯νλ κ°μ²΄λ₯Ό νμ€νΈ ν λ, JUnit ν μ€νΈ μ½λμμ κ°μ²΄μ νλ‘νΌν° κ° λμΌμ±μ νμΈν΄μ£Όμ§ μμ equalsλ₯Ό λ³λλ‘ κ΅¬ννλλ°, Viteλ Jestμμλ toMatchObjectλ±μ μ 곡νμ¬ μ½κ² μμ±κ°λ₯ν κ² κ°λ€. νμ¨μ κ΄ν ν΄μν μ΄λΈμ ꡬννλ λΆλΆμ΄ μ κΈ°νλ€.
- 15μ₯: Composite Pattern μ΄λΌλ λ§μ΄ λμλ€. κ°λ°μμλ μμ£Ό λ£λ λ§μΈλ° Composite, Factory λ± μμ£Ό μ¬μ©λλ λμμΈ ν¨ν΄μ μμ보μμΌ ν λ― νλ€.
- 16μ₯: λ¬Έμλ‘μ ν μ€νΈμ½λμ μ€μμ±μ κ΄ν λ΄μ©μ΄ λμλ€. ν μ€νΈμ½λλ κΈ°λ₯μ λΉ μ§μμ΄ ν μ€νΈνκ³ κ²μ¦ν΄μΌνμ§λ§, λλΆμ΄ ν μ€νΈμ½λλ₯Ό ν΅ν΄ λ€λ₯Έ κ°λ°μλ€μ΄ μ½λμ λν΄ μ μ΄ν΄ν μ μλλ‘ μμ±λμ΄μΌνλ€. μμ μ ν΄λμ€κ° λ§μμ§κ³ κ° ν΄λμ€μ λμΌν λ©μλκ° κ΅¬νλκ³ μλλ° μ± μ μ½λλ§λ΄μλ κ·Έ νλ¦μ μ΄ν΄νκΈ° μ΄λ €μ΄ κ² κ°λ€. μ€ν°λμμ μ§μ μμ±ν΄λ³΄μμΌκ² λ€.
- 17μ₯: μ§κΈκΉμ§ μ§νν Money μμ μ νκ³ μ΄λ€. Moneyμμ μμ μμ§ μμ±λμ§ μμ λΆλΆλ μ 리νλλ°, μΆκ°λ‘ μ§νν΄λ³΄λ κ²λ μ’μ κ² κ°λ€. JUnitμ μ€ν λ‘κ·Έλ₯Ό ν΅ν΄ ν μ€νΈμ½λλ₯Ό μμ±νλλ° κ±Έλ¦° μκ°μ λΆμν λΆλΆλ μ¬λ―Έμμλ€. ν μ€νΈμ½λμ μ€μ μ½λμ λΉμ¨μ΄ μ μ¬ν μ λ μ¬λ―Έμλ κ²°κ³ΌμΈ κ² κ°λ€. μ°λ¦¬κ° Typescriptλ‘ λ²μν μ΅μ’ μ½λμμλ ν΅κ³λ₯Ό λ΄λ³΄λ©΄ μ’μ κ² κ°λ€.
ν μ€νΈ 컀λ²λ¦¬μ§λ₯Ό ν₯μμν€λ λλ€λ₯Έ λ°©λ²μ ν μ€νΈμ μλ κ·Έλλ‘ λλ©΄μ νλ‘κ·Έλ¨μ λ‘μ§μ λ¨μννλ κ²μ΄λ€.