April 2008

[dW리뷰]코드 품질 향상을 위해: 행위 주도 개발의 모험

원문기사: http://www.ibm.com/developerworks/kr/library/j-cq09187/

TDD(Test-Driven Development)와 비슷하지만 좀 더 직관적인 개념을 적용하기 위해 관점을 살짝 바꾼 BDD(Behavior-Driven Development)에 대한 글입니다. 루비에서는 rspec, 자바에서는 JBehave라는 프레임워크를 사용합니다.

이 튜토리얼에서는 JBehave를 사용해 자바 프로그래밍에서 BDD를 활용하는 방법을 설명하고 있습니다.


public void shouldReturnNullOnPeekWithoutPush() throws Exception{
Ensure.that(stStack.peek(), m.is(null));
}

JUnit 써보셨으면 위의 코드도 대충 감이 올 것이라 생각합니다만..

솔직히 저는 should를 test로, Ensure를 Assert로 바꾸면 그냥 똑같은 게 아닌가 싶은데요 ^^ deepblue군이 언급한 BDD 이야기를 보니 차이를 알듯 말듯 합니다. TDD는 구현된 클래스의 메소드에 대한 최소한의 테스트를 하는 것이고, BDD는 동작해야할 명세를 기준으로 테스트를 하는 것인가 봅니다.

그래도 여전히 좀 궁금한건 이미 JUnit으로도 testValidResultWithNoParameter 같은 식으로 기본적인 Use Case를 구현하여 테스트를 하고 있는데, (오히려 메소드 단위 테스트는 귀찮아서 잘 안해요-,.-) 굳이 이름 규칙 바꾸려고 JUnit 대신 JBehave를 써야할지는 잘 모르겠네요. 물론 정확한 의도를 전달하기 위한 이름이 중요하긴 합니다만, 오히려 TDD를 잘못 이해해서 그냥 BDD 스타일로 JUnit을 쓰고 있던건가 싶기도 하구요.

어쨌든 BDD 때문에 이클립스/Maven 등의 JUnit 지원을 포기하기엔 좀 아쉽네요.. Annotation 도입으로 테스트 메소드 명명이 자유로운 JUnit 4를 사용하면서 TDD/BDD를 혼용하여 적절한 네이밍을 하는게 제일 좋지 않을까 싶습니다. 적절한 조언 주시면 감사하겠습니다~

뭐 JUnit을 사용하든 JBehave를 사용하든 개념은 동일하게 적용할 수 있으니 TDD/BDD를 처음 접하신다면 튜토리얼의 내용이 도움이 될 것입니다.

dW Review

Comments (0)

Permalink

OSGi 관련 블로그 : NEIL’S POINT-FREE BLOG

NEIL’S POINT-FREE BLOG

OSGi 전문 컨설턴트로써 유용한 OSGi 관련 아티클을 많이 제공하고 있는 Neil Bartlett의 블로그입니다.최근 OSGi in Practice라는 책을 집필하기 시작하여 CCL로 배포하고 있습니다.

아직 2장 First Steps in OSGi 밖에 없고 공짜로 배포하고 있는 책이지만 지금까지 본 OSGi 번들 개발 튜토리얼 중에서는 가장 알기 쉽게 쓰여있는 것 같습니다. 책 편집도 웬만한 출판서적 못지 않구요.

3장 이후 원고가 올라오길 기대하면서 먼저 올라온 2장 참고하고 기존의 아티클인 Getting Started with OSGi 문서 참고하면 OSGi 이해와 번들 개발을 시작하는데 무리없을 듯 합니다.

CCL이라 시간 여유가 된다면 번역도 해보고 싶지만… 지금은 불가능하군요 흑~

추가)
이미 번역을 진행중인 분이 있으셨네요! 수고많으십니다 ^^
http://xguru.net/blog/443.html

Eclipse

Comments (0)

Permalink

[dW리뷰]이클립스의 OSGi 콘솔 살펴보기

원문기사: http://www.ibm.com/developerworks/kr/library/os-ecl-osgiconsole/

OSGi 번들을 개발할 때 종종 보게되는 OSGi 콘솔 사용법을 아주 간략히 정리한 내용입니다. 이클립스의 OSGi 구현인 equinox 기준의 설명이구요. 이 기사에서 OSGi 프레임워크가 하는 일을 간단하게 체험해 볼 수 있습니다. 번들 실행만 놓고 보자면 윈도우의 Services나 Linux의 /etc/init.d (sysvinit)와 비슷해보이죠?

다음은 이클립스 플러그인 개발자의 관점에서 보는 OSGi 번들에 대한 내용을 본문에서 발췌한 것입니다.

플러그인과 번들: 뭐가 다른가?

이클립스 개발자들이 서로 애플리케이션을 해킹하고 있는 지하실을 돌아다니다 보면, 플러그인번들 이라는 난해한 단어를 주고 받는 것을 들을 수 있을 것이다. 이 둘 사이에 차이가 있는가? 마케팅 부서장의 관점에서 보면 이 두 단어는 같다. 번들은 플러그인이고 플러그인은 번들이다. 우리는 두 개의 단어를 강요당하는 것처럼 보인다. 하지만 시골 촌놈의 관점에서 보면 차이가 있다. 정확하게, 이클립스 플러그인은 확장 레지스트리(예를 들어, 번들 루트에 plug-in.xml을 가지고 있다)를 가지고 있는 OSGi 번들이다. OSGi 번들은… 음… OSGi 번들이다.

Eclipse
dW Review

Comments (2)

Permalink

이소연 양의 무사귀환을 바랍니다~

선배라고 뭐 밥 한번 사준 적 없습니다만.. 고등학교-대학교 후배가 이렇게 중요한 임무를 맡아 뉴스에서 매일 보게 되다니 느낌이 색다르네요 ㅎㅎ 항상 씩씩한 모습만 봐서 별 걱정은 안되지만 임무 무사히 마치고 건강히 오길 바랍니다.

뭐 이런저런 말들은 많지만 지금의 우리나라가 할 수 있는 첫걸음이니 아쉬운 점이 있더라도 모두가 응원해주시길~

이번 일을 계기로 앞으로도 열심히 응원한다면 언젠간 직접 쏴올릴 날이 있겠죠.

General

Comments (1)

Permalink