E D R , A S I H C RSS

Tddd Article


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 λ©”κ°€ μ΄ν•˜λ‘œ λ©”λͺ¨λ¦¬κ°€ 내렀감. λ¬Όλ‘  μœˆλ„μš° ν•˜μ—μ„œ μ–˜κΈ°μž„. λ‚˜λ¨Έμ§„ ν™•μ‹€ν•˜μ§€ μ•ŠμŒ. 연결이 λ§Žμ•„μ§€λ©΄ λ©”λͺ¨λ¦¬κ°€ λ‹€μ‹œ μ˜¬λΌκ°ˆκ²ƒμž„. -λ°•μ€μš©-
κ·Έλ ‡λ‹€ 해도 μ˜€λΌν΄μ„ ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•œ Local DB 둜 λŒλ¦¬κΈ°μ—” λ©μΉ˜κ°€ 크겠죠? --1002
κ·Έλž˜μ„œ 였라클이 ν¬λ‹€λŠ” 말씀이 μ•„λ‹ˆμ‹€κΉŒ? λ‚˜λ„ 찍어봐야겠넀 --NeoCoin


μ—¬κΈ°μ—μ„œμ˜ TDD μ§„ν–‰ λ°©λ²•λ³΄λ‹€λŠ” Reference 와 μ‚¬μš© 도ꡬ듀에 더 눈길이 κ°„λ‹€. XDoclet 와 ant, O-R λ§€ν•‘ 도ꡬλ₯Ό μ €λŸ° μ‹μœΌλ‘œλ„ μ“Έ 수 μžˆκ΅¬λ‚˜ ν•˜λŠ” 것이 μ‹ κΈ°. 그리고 HSQLDB λΌλŠ” κ°€λ²Όμš΄ (160kb 정도라고 ν•œλ‹€) DB 둜 λ‘œμ»¬ν…ŒμŠ€νŠΈ DB λ₯Ό κ΅¬μΆ•ν•œλ‹€λŠ” 점도.
초반 μžλ™ν™”λ₯Ό μœ„ν•΄ μ€λΉ„ν•  κ²ƒλ“€μ—λ§Œ μ€ μ‹ κ²½μ„ μ“°κ³ , μ΅μˆ™ν•΄μ§„λ‹€λ©΄ 잘 ν•  수 μžˆμ§€ μ•Šμ„κΉŒ 생각.

Xper:XperSeminarλ₯Ό λ³΄λ‹ˆ 일단 μ…‹νŒ…μ΄ 되고 μ΅μˆ™ν•΄μ§€λ©΄ TDD 리듬이 덜 ννŠΈλŸ¬μ§€λŠ” 방법 κ°™μ•˜λ‹€. (μž¬μš°μ”¨λž‘ 응주씨가 μ›λž˜ μž˜ν•˜μ‹œκ³  κ²Œλ‹€κ°€ μ—°μŠ΅λ„ 많이 ν•˜μ…”μ„œμ΄κ² μ§€λ§Œ;) password μΆ”κ°€λ˜κ³  ν…ŒμŠ€νŠΈ λŒλ¦¬λŠ” 리듬이 쒋아보인닀. 단, ν…ŒμŠ€νŠΈ λŒμ•„κ°€λŠ” 속도가 μ—­μ‹œ Real DB μ΄λ©΄μ„œ Hibernate κΉŒμ§€ 같이 λŒμ•„κ°€μ„œ μ•½κ°„ λŠλ €λ³΄μ΄λŠ”λ°, 이건 해보고 κ²°μ • μ€ ν•΄μ•Όκ² κ΅°.

reference μͺ½μ€ 졜근의 ν…ŒμŠ€νŠΈμ™€ DB κ΄€λ ¨ μ΅œμ‹ κΈ°μˆ  & λ¬Έμ„œλ“€μ€ λ‹€ λ‚˜μ˜¨ λ“― ν•˜λ‹€. μ΅μˆ™ν•΄μ§€λ©΄ κ½€ μœ μš©ν•  λ“― ν•˜λ‹€. (hibernate λŠ” κ½€ 많이 μ“°μ΄λŠ” λ“― ν•˜λ‹€. Intellij 이건 Eclipse 건 ν”ŒλŸ¬κ·ΈμΈλ“€μ΄ λ‹€ μžˆλŠ”κ±Έ 보면. XDoclet μ—μ„œλ„ 지원)
그리고 http://www.agiledata.org 에 μžˆλŠ” 에세이듀 κ΄€λ ¨.


κ°„λ§Œμ— μ—¬μœ κ°€ μƒκ²¨μ„œ ν•œλ²ˆ λ”°λΌν•΄λ³΄κ²Œ λ˜μ—ˆλŠ”λ°, Hibernate κ°€ 생각보닀 λ³΅μž‘ν•œ λ…€μ„μ΄λΌλŠ” 것을 μ•Œκ²Œ λ˜μ—ˆλ‹€. (λ‚΄κ°€ O-R Mapping Tool 에 λŒ€ν•œ κ²½ν—˜μ΄ μ—†κΈ° λ•Œλ¬Έμ— λ”λ”μš±) ν•œλ²ˆμ— μŠ΅λ“ν•˜κΈ°μ— μ‰¬μš΄ 녀석은 μ•„λ‹ˆμ˜€κ΅°.;

--1002
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:10
Processing time 0.0157 sec