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