목록프로그래밍 (299)
Dharma
'테스트 주도 개발' 책에서 또 관심을 끌었던 부분입니다. 마치는 글을 마틴 파울러가 장식을 했군요. 그 부분도 올려봅니다. 테스트 주도 개발에 대해 설명하기 어려운 것 중 하나는 TDD를 하면 돌입하게 되는 정신상태다. C3 프로젝트에서 랄프 베티(Ralph Beattie)와 함께 했던 세션을 기억한다. 우리는 복잡한 지불 조건을 구현해야만 했다. 랄프는 그걸 여러 개의 테스트 케이스로 쪼갰고, 우리는 그것들이 작동하도록 하나씩 접근했다. 꾸준히 서두르지 않으면서 진행했다. 서두르지 않았기 때문에 느린 것처럼 보였지만, 얼마나 많은 일을 했는지 뒤돌아 보면 , 작업시의 느긋한 느낌에도 불구하고 진행 속도는 매우 빨랐다. 우리가 가진 화려한 도구들에도 불구하고, 프로그래밍은 여전히 어렵다. 동시에 여러 ..
테스트 주도 개발 책을 읽으면서 그 책에서 제일 괜찮다고 생각하는 부분중에 한 부분입니다. TDD 개념을 가장 쉽게 접근할 수 있도록 만든 예제인데 무단으로 퍼서 소개할까 합니다. - 사실 본 책 안에 있는 내용은 좀 난해한 편이고 , 이 예제가 더 이해하기 쉽습니다. - 부록 B . 피보나치 이 책의 검토자 중 한 명의 질문에 대한 답으로 나는 피보나치 수열을 테스트 주도로 개발해 올렸다. 몇 명의 검토자들이 이 예를 보고 TDD가 어떻게 작동하는지 이해하는 데 큰 도움이 되었다고 했다. 하지만 이 책에 사용된 예제를 피보나치 예제로 바꾸기에는 피보나치 예제가 너무 짧고, 다양한 TDD 기술을 충분히 보여주지도 못한다. 이 책의 주 예제를 읽은 후에도 여전히 번쩍이는 깨달음을 얻지 못했다면 여기를 잠깐..
회사에서 스마트폰 프로그램을 제작하는 일을 하게 되서 환경 세팅을 하고 있었습니다. 환경은 '블랙잭' 이 될 듯해서요. ROUND 1 http://blog.nworkers.net/183 이분의 블로그를 참고 삼아서 개발 환경을 '블랙잭'에 맞게 세팅을 했습니다. 여기도 알바하시는 분이 잘 찾아오셔서 그대로 설치를 딱 하는 순간.. 언제나 그렇듯이 프로젝트가 생성이 안됩니다. -0- Error 는 1033 폴더 밑의 default.html 이 호출이 안된다는 것입니다. 정확한 위치는 아래 입니다. C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCWizards\SmartDeviceAppWiz\MFC\Application\html\1033\default.html..
그냥 컴파일 하면 에러가 발생합니다. > g++ -o test test.cpp -lcppunit > ./libcppunit.so: undefined reference to `dlclose' > ./libcppunit.so: undefined reference to `dlopen' > ./libcppunit.so: undefined reference to `dlsym' > collect2: ld returned 1 exit status > make: *** [test] Error 1 이런 에러 인데 , 기존의 윈도우 체제랑은 달라서 조금 당황합니다. 침착하게 -ldl 옵션을 link 옴션에서 추가해 주시면 무리 없이 컴파일 됩니다.
Fixture 는 Test Case 들을 모아놓구 한꺼번에 실행 시킬때 편리하게 쓸 수 있는 클래스 입니다. 여러 XUnit 프레임 워크를 찾아보시면 Fixture 는 대게 setUp() 과 tearDown() 두가지 메서드를 지원한다는 것을 아실 수 있을 것입니다. 즉 다시 설명하자면, 여러개의 테스트 메서드에서 공통적으로 필요한 준비물이 있다면 (예를 들자면 DB에 접속 한다던지 , 아니면 아래 예제의 경우처럼 복소수 여러개를 미리 준비한다 던지) 이렇게 '미리' 준비하는 부분이 setUp() 메서드 이고, setUp() 에서 설정한 내용을 해제 한다던지 메모리를 지운다던지 DB 접속을 끊는다던지 하는 마무리 작업을 해주는 곳을 tearDown() 이라고 합니다. - 쉽게 말하자면 constructo..
CppUnit 을 공부하는 와중에 요리책 (Cookbook)을 따라하면서 한글로 좀 정리를 할 필요가 있어서 정리중입니다. 원래 글은 CookBook 을 직접 보시면 되시고 저는 저의 입장이 많이 반영된 글입니다. 환경 : .NET 2005 의 VC8.0 간단한 테스트 케이스 - Simple Test Case 지금부터 복소수(complex) Class 를 만들어 볼까 합니다. 이를 TDD (Test Driven Development)를 이용해서 작성할 것입니다. 처음에 프로젝트를 생성합니다. 일단 GUI 버젼을 빼고 Text 버젼으로 시작해보지요. VS2005 에서 파일 - 새로만들기 - 프로젝트 를 선택하시고 Visual C++ 섹션 - Win32 - Win32 콘손 응용 프로그램 으로 새 콘솔용 프로..
컴파일 하면 TestRunner 쪽에서 에러가 발생합니다. 사실 TestRunner 없어도 cppunit 안에 Text 형식의 TestRunner 가 포함되어 있긴 하지만 (이걸 사실 제일 많이 씁니다) 그래도 안되는게 있으면 짜증이 나지요. 만지작 거리다 보니까 CPPUnit 쪽 위키에서 해결방안이 있더군요. http://cppunit.sourceforge.net/cppunit-wiki/BuildingCppUnit1 ('' 여기를 참조하시면 되고요. 실제로 수정하는 부분은 #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids 여기서 7.0 인 부분을 8.0 으로..
사람이 어떻게 까지 게으를 수가 있는 것인지 !!! 아 물론 프로그래머의 영역은 조금 다르긴 합니다. 게으르면 게으를 수록 훌륭한 프로그래머 입니다. 사실은 전제 조건이 있지요 '자기 할 일을 한다는 전제하에 ' 말이죠. 자기 할일을 하면서 게으른 프로그래머가 최고지요 ^^; 사실 유닉스 쪽에서는 유명한 기술이라고 합니다. 견문이 짧은 제가 드디어 알게 된 것이긴 하지만 말이죠. 유닉스에서 프로그램을 만들기 위한 makefile 스크립트를 자동으로 생성하게 도와주는 자동화 툴입니다. (저는 이런것 무지 좋아합니다 +ㅂ+ ) Makefile.am 과 configure.ac 파일 두개만 생성시켜 주고 나서 콘솔에서 autoreconf -f -i 를 가볍게 입력해주면 자동화 스크립트가 모든 것을 알아서 해주는..
제가 무식한 탓인지 저는 리눅스의 가장 기초적인 쉘을 잘 못 씁니다. 편리한 툴에만 익숙해져 있기 때문입니다. (그렇다고 쉘이 편하지 않다는게 아닙니다!!) 유닉스 친구계열들을 보면 환경변수에 값들을 등록시켜서 쓰는데 그 문법이 crazia>NAME=crazia crazia>export NAME 식으로 등록합니다. 이걸 편하게 하기 위해서 shell 로 여러가지 환경 변수를 등록시키기 위해서 shell 로 작성을 합니다. #!/bin/bash export NAME=crazia export HOBBY=game export HOBBY2=sleep 이 shell 을 my.sh 라고 작성해서 실행 옵션을 줘서 실행시키면 아무 동작을 안합니다. 결국 이거저거 시도하다가 알아낸 방법은 source ./my.sh 라..
MS에서 개발을 좋아하는 사람들에게 무료 개발툴을 배포한다는 소식을 늦게 접했습니다. http://msdn2.microsoft.com/ko-kr/express/default.aspx 바로 여기가 그 사이트 입니다. 30일 트라이얼이지만 등록을 하면 무한대 가 되지요. 금전적인 이유가 아니라 저는 전혀 다른 이유로 설치했습니다. (사실 어둠의 경로를 이용하면 최상위 버젼인 Team Foundation 버젼을 설치가능합니다.) 제가 가지고 다니는 서브 노트북이 사양이 조금 후달리다 보니, 자연스럽게 통합 스튜디오인 .NET 버젼을 설치한다 해도 심하게 버벅입니다. 그래서 가벼운게 없나 찾아보던중 Express 가 있더군요. 간단한 공짜 IDE도 제공하고 아주 맘에 듭니다. C#은 C#만, C++은 C++ 만..