2009/01 9

[dW] JUnit과 TestNG 자세히 살펴보기

JUnit 테스트 픽스쳐는 특정 로직이 테스트 전후에 실행되도록 보장하는 하나의 약정이므로 손쉽게 재활용할 수 있다. JUnit 4 이전 버전에서는 setUp() 메소드에서 각 메소드마다 필요한 일들을 명시하면, 각 테스트 메소드가 실행되기 전에 각각 한번씩 실행이 되었다. 하지만 픽스쳐에 따른 상당한 오버헤드가 있었고 이 메소드를 한번만 하게 하려면 한번만 실행되도록 지정하는 방법이 번거로웠지만, JUnit 4에서는 모든 테스트에 대해 또는 전체 클래스에 대해 한 번 픽스쳐를 실행하거나, 아예 실행하지 않을 수 있도록 좀더 유연해 졌다. 클래스를 겨냥한 @BeforeClass, @AfterClass : 한 클래스에서 한번만 일어나도 되는 일들을 정의 메소드를 겨냥한 @Before, @After : 각 ..

[dW] 사람을 위한 자동화: 연속 테스팅

개발자라면 프로그램을 짤때마다 항상~ 고민되는 테스트를 어떻게 최대한 구멍없이 하여 멀쩡한 프로그램을 짤까~~가 늘~ 고민중의 하나이겠지요. Junit을 이용하여 단위테스트를 하긴 하지만, Database를 사용한다면 기본적인 CRUD 테스트 메소드 말고 내 눈에 안보이는 구멍난 부분을, 더 많은 기능을 복잡하게 하는 부분을 어떻게! 어떻게!! 테스트해야할까.. 고민에 빠져서 자료를 찾아보니... 사람을 위한 자동화: 연속 테스팅 (한글) 이 글에선 많이 유명한 Junit과 DbUnit을 쓰라는 간략적인 내용이 나와있고, 또 성능에 대한 고민은 JUnitPerf이라는 성능 테스트 도구를 이용하면 되는군요. JUnitPerf는 Junit과 함께 작동하는 프레임워크로 미리 정해진 시간 안에 테스트가 미쳐 다..

[dW] 초보자를 위한 유닉스 팁과 기교, Part 4

이 튜토리얼에선 본(Bourne) 셸 스크립트로 프로그래밍을 작성하여 처리하는 예제가 있습니다. 제가 모르는 것만 정리해 둡니다~ 더 자세한 내용은 링크를.. 이용해 주세요^^ 주석 : 셸에서 # 기호는 주석 행을 뜻한다. (쓸일이 없어서 몰랐군..) bc를 이용하여 진법 변환하기 bc는 임의의 정밀도를 제공하는 계산기 언어(arbitrary precision calculator language)로, 대다수 유닉스 배포판에서 제공한다. 출력 진법을 지정할 수 있으므로 10진법 이외에 다른 진법으로 결과를 출력할 때 유용하다. 인라인 입력 Here-document를 생성하려면 명령행에서 셸 연산자

[iBatis] iBatis에서 Log4j를 이용하여 쿼리를 로그로 남기려면?

iBatis에서 Log4j를 이용하여 쿼리를 로그로 남기려면~~ log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG 쿼리 출력 내용을 보면, 새줄 기호(\n)가 모두 사라져서 쿼리 문장을 보기 어려울 때는 http://www.sqlinform.com 에서 쿼리 문자열을 보기 좋게 정렬 할 수 있다. (한번 문장을 넣어보았는데~ 좋다~+_+) 또는 'sql formatter'로 검색하면 다양한 SQL 문자열 정리 도구 들을 볼 수 있다. iBatis in Action에서 발췌.

backend/iBatis 2009.01.20

[iBatis] 자동 생성 Key

이전에 포스팅했던 2008/08/29 - [나만의 작업/iBatis] - [iBATIS] 4. How to 내용에 있는 "Auto Generation Key" 부분에서 추가할 것이 있어서 좀 더 자세한 내용. iBatis in Action 에서 발췌. 거의 모든 데이터베이스는 새롭게 삽입되는 레코드마다 자동으로 기본 키를 생성해 주는 기능을 가지고 있는데, 삽입을 완료한 후 생성된 기본키를 알 필요가 있다면....? 자동 생성되는 기본키를 사용하도록 iBatis에서 요소의 특별한 자식 요소인 요소를 사용하여 생성된 키를 모델 객체로 가져올 수 있다. 이 접근법을 따르는 두가지 패턴이 있다. 1. 레코드를 삽입하고 데이터베이스가 키를 생성한 후에 생성된 키를 가져오는 것. 주의! ) 사용하는 드라이버가 마..

backend/iBatis 2009.01.18

[iBatis] 자바빈즈와 Map 타입의 결과

iBatis in Action책을 보다가 기억해 놓을 내용을 발췌해 놓는다. iBatis framework는 결과 매핑에 (Integer, Long 혹은 그 외의 원시 타입의 래퍼 클래스 이외에) Map 이나 자바빈즈 객체를 사용할 수 있다. 이 두가지 접근 방법의 장점과 단점 접근 방식 : 자바빈즈 장점 : 성능, 컴파일 시 강력한 타입 검사, 컴파일 시 이름 검사, IDE에서의 리팩토링 지원, 형변환이 줄어듬 단점 : 코드량의 증가(get/set) 접근 방식 : Map 장점 : 코드량의 감소 단점 : 느림, 컴파일 시 검사하지 않음, 약한 타입, 실행시 오류 발생이 잦음, 리팩토링 지원 없음.

backend/iBatis 2009.01.18

[영화/음악] 피아노의 숲

제목에 "피아노"가 들어가는 것만으로도 충분히 시선을 끄는 영화이기에 본 지는 꽤 되었지만, 이제야 포스팅을 합니다. 일본 애니메이션인 이 영화는 만화가 원작으로 주인공 카이와 전학을 온 슈헤이의 피아노를 통해 두 소년이 서로 대립이 아닌 서로에게 영향을 주며 발전해 나가는 내용입니다. 어렸을 때부터 음악가 집안에서 좋은 환경에서 피아노를 열심히 노력하여 치는 슈헤이와 집안 형편이 좋지 않지만 그저 피아노가 좋아서 독학한 소위 천재같은 카이가 함께 만들어 가는 피아노로 연결된 세상. 영화를 보는 내내 상상만 해도 좋은 숲속에서의 클래식 피아노 음악을 들으니 마치 왠지~모를 파라다이스에 온 것 같은 상상이 들더군요~ㅎㅎ(오바인가?ㅋㅋ) 카이처럼 피아노 위에 누워 낮잠잔다면 정말 파라다이스가 아닐까란 생각이..

Oracle instant client 설치(Mac OSX, Windows)

Oracle을 설치하지 않고, Oracle사에서 제공해주는 client이용하여 원격에 있는 Oracle 접속하기~ 1. Mac OSX에서 설치법 1) 다운로드 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/macsoft.html 여기서 간단히 Instant Client Package - Basic과 Instant Client Package - SQL*Plus을 받는다. 압축 받은 파일을 적당한 곳에 압축해제 한다. 난 두가지 폴더를 합쳐서 이름은 /usr/local/share/oracle 로 변경하였다. 2) 터미널에서 vi ~/.bash_profile 에서 # Oracle setting export ORACLE_HOME=..

backend/DataBase 2009.01.07

[여행] 새해 복 많이 받으세요~^_^

전 2008년 12월 31일~ 2009년 1월 1일을 영종도 왕산해수욕장 인근 펜션에서 보냈답니다. 너무 떠들썩한 시내는 싫고, 복잡한 곳을 피해 영종도로 떠나기 위해 김포공항 옆 마트에서 장을 보고 301번 버스를 타고 인천국제공항을 거쳐 영종도를 들어간 후, 을왕해수욕장을 지나, 종점인 왕산해수욕장에 도착하였습니다. 연말이라 그런지 버스를 탄 사람이 반반씩 을왕, 왕산에서 모두 내리더라구요. 우리 일행은 펜션에 도착하여, 풍선도 불고 파티(?)분위기를 조금 내고 허기진 배를 고기로 채우니 11시가 조금 넘어 휴식을 취한 후, 12시가 다가오자 이번 여행의 이벤트인 각자 선물하나씩을 준비해와서 그 자리에서 제비뽑기를 해서 선물을 뽑아 선물을 주고 증정사진을 찍는 것이었습니다. 누가 받을지도 모르는 선물..

여행 이야기 2009.01.05