Oddpoet's βetalog

詩를 쓰듯 코드를 써라

MockHTable : HBase Testing

HBase 기반 시스템을 개발하면서 제일 아쉬운게 HSQL과 같이 테스트 시에 사용할 수 있는 embeded DB였다. HSQL은 실제 DB와 거의 동일한 기능을 제공하면서 로컬 머신에서 빠르게 동작하기 때문에 Unit Test 작성하고 확인할 때 빠르게 피드백을 받을 수 있게 도와주는 좋은 툴이었다.

하지만 HBase는 unit test 수행후 rollback 한다던가 하는 전략이 불가능하기 때문에 매 테스트마다 테이블을 생성하고 삭제해야 했다. 시간이 지날수록, 로직에 대한 시나리오 테스트가 늘어날 수록 테스트 수행시간은 늘어날 수 밖에 없었다.

그러다가 이 문제의 해결책으로 찾은 것이 바로 MockHTable이다.

Vagrant Box 패키징과 공유

개발환경에서 필요한 인프라적인 요소들(db, hbase 등)을 쉽게 구축하고 공유하기 위해서 vagrant를 종종 사용하게 되는데, 자기가 만든 vagrant box를 패키징하고 다른 사람들에게 쉽게 공유하는 방법을 정리한다.

Pow와 Apache를 함께 실행하기

OSX에서 개발할 때 호스트 설정 없이 로컬에 구동 중인 서버에 접근하기 위해 pow를 애용하는데, pow를 설치하고 나면 pow가 localhost 접근을 하이재킹하기 때문에 로컬 호스트의 apache에 접근할 수 없게 된다. 이에 대한 해결책은 다음과 같다.

UnitTest에 Embeded HSQL 사용하기

현재 회사(SKP)의 웃기는 네트웍 정책 덕에 예전보다 unit test 뿐아니라 개발환경에서도 embeded DB를 더 자주 사용하고 있는 편인데, UnitTest 용으로 embeded DB로 HSQL을 사용할 때 SQL 호환성 이슈를 피하는 방법을 정리한다. (물론 Spring+MyBatis+MySQL 환경)