TDD λ‘ Database TDD μ§ννλ μμ . μ¬κΈ°μλ ν΄μ μ’ λ§μ΄ μΌλ€. Hibernate λΌλ O-R λ§€ν ν΄κ³Ό deployment DBλ μ€λΌν΄μ΄μ§λ§ λ‘컬 ν
μ€νΈλ₯Ό μν΄ HypersonicSql μ΄λΌλ λ
μμ μΌλ€κ³ νλ€. κ·Έλ¦¬κ³ test data λ₯Ό μν΄ DBUnit μ°κ³ , DB Schema μ λλ μ΄ν
μ μν΄ XDoclet μ Ant λ₯Ό μ‘°ν©νλ€.
μ¬κΈ° λμ¨ λ°©λ²μ λν΄ μ₯μ μΌλ‘ λμ¨κ²μΌλ‘λ λΉμ·ν μ΄νλ‘μΉλ‘ 500 μ¬κ° μ΄μ ν
μ€νΈμ μ€ν μκ° λ¨μΆ(Real DB ν
μ€νΈλ setup/teardown μ Clean up νκΈ° μν΄ λλ μκ°μ΄ κΈΈμ΄μ§λ€. μ΄ μκ°μ λ¨μΆμν€λ κ²λ νλμ κ³Όμ ), κ·Έλ¦¬κ³ ν
μ€νΈ μ§μν.
μ μ½μ¬νμΌλ‘λ Stored Procedure λ Trigger λ± Vendor-Specfic ν κΈ°μ λ€μ μ μ©νκΈ° μ΄λ ΅λ€λ μ (μ΄λ₯Ό μν΄μ λ‘컬 DB λν ν΄λΉ Vendorμ DBλ₯Ό μ€μΉν΄μΌ νλ―λ‘).
λ₯κ΅° μ΄μΌκΈ°λ‘λ Oracle μ κ²½μ° μ€μΉνκ³ λ± μ€ννλλ°λ§ κΈ°λ³Έ λ©λͺ¨λ¦¬ 200λ©κ° μ‘μλ¨Ήλλ€κ³ νλ€. -_-; λ‘컬 ν
μ€νΈλ₯Ό μν΄ HypersonicSqlλ₯Ό μΈλ§λ νκ΅°.; (In-memory DB μμΌλ‘ μ§μκ°λ₯. μΈμ€ν¨ ν κ²λ μμ΄ κ·Έλ₯ μ½μμμ λ°°μΉνμΌ νλ μ€νλ§ νλ©΄ λ¨. κ·Όλ°, JDBC λ₯Ό μλ²½ν μ§μνμ§ μλ κ²λ κ°μμ, μ½κ° μ λ§€. (ResultSet μ first(), last(), isLast() λ±μ λ©μλλ€μ΄ μ€νμ΄ μλ¨)
DeleteMe) - μ€λΌν΄μ κ²½μ° μΈμ€ν΄μ€λΉ κΈ°λ³ΈμΌλ‘ λ¨Ήλκ² λ³΄ν΅ 200 λ©κ° μ λ. μ¦ κΈ°λ³Έ μΈμ μκΈ°κ° λ§λ κ±Έ λ λμΈκ²½μ° λ³΄ν΅ 400 λ©κ° μ΄μμ λ¨Ήκ² λλλ° μ΄κ±΄ λ°λ μκΈ°κ³ κ°λ§ν λ
λλ©΄ 50 λ©κ° μ΄νλ‘ λ©λͺ¨λ¦¬κ° λ΄λ €κ°. λ¬Όλ‘ μλμ° νμμ μκΈ°μ. λλ¨Έμ§ νμ€νμ§ μμ. μ°κ²°μ΄ λ§μμ§λ©΄ λ©λͺ¨λ¦¬κ° λ€μ μ¬λΌκ°κ²μ. -λ°μ€μ©-
μ¬κΈ°μμμ TDD μ§ν λ°©λ²λ³΄λ€λ Reference μ μ¬μ© λꡬλ€μ λ λκΈΈμ΄ κ°λ€. XDoclet μ ant, O-R λ§€ν λꡬλ₯Ό μ λ° μμΌλ‘λ μΈ μ μꡬλ νλ κ²μ΄ μ κΈ°. κ·Έλ¦¬κ³ HSQLDB λΌλ κ°λ²Όμ΄ (160kb μ λλΌκ³ νλ€) DB λ‘ λ‘컬ν
μ€νΈ DB λ₯Ό ꡬμΆνλ€λ μ λ.
μ΄λ° μλνλ₯Ό μν΄ μ€λΉν κ²λ€μλ§ μ’ μ κ²½μ μ°κ³ , μ΅μν΄μ§λ€λ©΄ μ ν μ μμ§ μμκΉ μκ°.
μ΄λ° μλνλ₯Ό μν΄ μ€λΉν κ²λ€μλ§ μ’ μ κ²½μ μ°κ³ , μ΅μν΄μ§λ€λ©΄ μ ν μ μμ§ μμκΉ μκ°.

reference μͺ½μ μ΅κ·Όμ ν
μ€νΈμ DB κ΄λ ¨ μ΅μ κΈ°μ & λ¬Έμλ€μ λ€ λμ¨ λ― νλ€. μ΅μν΄μ§λ©΄ κ½€ μ μ©ν λ― νλ€. (hibernate λ κ½€ λ§μ΄ μ°μ΄λ λ― νλ€. Intellij μ΄κ±΄ Eclipse 건 νλ¬κ·ΈμΈλ€μ΄ λ€ μλκ±Έ 보면. XDoclet μμλ μ§μ)
- HypersonicSql
- Hibernate
- http://www.dallaway.com/acad/dbunit.html
- http://dbunit.sourceforge.net
- http://xdoclet.sourceforge.net
κ°λ§μ μ¬μ κ° μ겨μ νλ² λ°λΌν΄λ³΄κ² λμλλ°, Hibernate κ° μκ°λ³΄λ€ 볡μ‘ν λ
μμ΄λΌλ κ²μ μκ² λμλ€. (λ΄κ° O-R Mapping Tool μ λν κ²½νμ΄ μκΈ° λλ¬Έμ λλμ±) νλ²μ μ΅λνκΈ°μ μ¬μ΄ λ
μμ μλμκ΅°.;
--1002