목록프로그래밍 (299)
Dharma
ECB (Emacs Code Browser ) 세팅하기 - crazia 가 세팅하는 방식에 대한 기억 유지 차원 정리 1. ECB package 받아서 .emacs.d 디렉토리에 압축을 풀어서 정리합니다. - 설치한다고 바로 ECB 가 구동은 안될것입니다. 기본적으로 필요한 몇가지 라이브러리가 있습니다. 1.1 여러가지 라이브러리를 전부 찾아서 설치할 수도 있지만 간편하게 CEDET 한방으로 해결하는 방법을 선호합니다. 단 CEDET 설치하게 되면 emacs 구동시 현저하게 느려진 기분을 만끽하실 것입니다. 1.1.1 CEDET 를 받아서 .emacs.d 디렉토리에 압축을 풀어서 정리합니다. - CEDET 은 ~/.emacs.d/cedet-1.0pre4 에 설치될 것입니다. - .emacs 파일에 (lo..
- sybase iq 는 메타 디비의 형태이다. - sybase iq 에 접근을 위해서는 odbc 나 oledb 방식을 써야 합니다. - odbc 방식은 사실 귀찮게 세팅해줘야 할 것이 많습니다. 따라서 일반적으로 프로그래밍을 할때는 oledb 방식을 많이 씁니다. - sybase iq 는 Adaptive Server Anyware (줄여서 ASA) 로 제어를 하게 되는데 다음에 나오는 예제는 ASA 를 OleDB 를 이용해서 접근하는 방법을 C# 으로 표현했습니다. - oledb 방식을 쓸려면 iq 용 클라이언트를 설치해야 합니다. (그 안에 oledb provider 가 포함) 예제) using System.Data.OleDb; // 네임스페이스 추가 string cnStr = "Provider=AS..
emacs 를 사용하면서 사용 안 하다가 최근에 사용하게 된 모드가 '달력 모드' 입니다. Outlook 이라는 일정관리의 강자가 있지만 , 개발모드로 진입하게 되면 메일 관련 확인빈도가 떨어질뿐만 아니라 컴퓨터 리소스를 잡아먹는 괴물인 Outlook 을 항상 켜두지 않기 때문에 종종 간단한 일정 관리를 위해서 '달력 모드'를 씁니다. M-x calendar 를 입력하면 구동되는데 , 간단한 사용은 이동이야 일반적인 Emacs 커서 이동과 같고 , 일정 입력은 %HOME% 디렉토리에 diary 파일을 만들어 두면 '달력모드'에 일정을 추가할 수가 있게 됩니다. (%HOME% 은 특별히 지정하지 않았을 시에는 Window 에서는 "C:\" 입니다.) 달력에서 이벤트가 있는 위치로 이동하셔서 i-d (i 키..
최근에 개발을 진행하게 되었습니다. 개발환경에 대한 설명은 간단하게 말씀드리자면 기존의 심리행동을 측정하는 프로그램이 상당히 낙후됐습니다. DOS 시절 프로그램을 쓰고 있는 현실이지요. 윈도 어플리케이션이 있지만 이 또한 Windows 3.1 시절의 프로그램입니다. 물론 이들이 요즘 나오는 OS 에 설치가 된다고는 하지만 아무래도 오래전 프로그램 이다보니 효용성이 많이 떨어지는 환경입니다. 이 프로그램이 어떻게 쓰이는 지에 대해서 알아보기로 합니다. 조그만 방에서 어린이와 어머니가 한방에 있습니다. 그리고 관찰자들은 방 밖에서 어린이를 관찰하며 정해진 시간동안 어린이가 보여주는 행동을 관찰하여 그 행동사항을 기입하는 프로그램 입니다. 커다란 방과 중앙통제실에서 프로그램을 띄우고 방안이 보이는 유리창은 물..
기본적으로 cppUnit 에서 쓰이는 main 함수는 Text 모드 일때는 동일합니다. 각각의 세부 정보까지 표시하게 만든 버젼입니다. 다음부터 cppUnit Test Project 를 작성할때는 이부분을 복사해서 main 부분을 구성하면 똑같게 사용이 가능합니다. #include #include #include #include #include #include int main (int argc, char * argv[]) { CPPUNIT_NS::TestResult controller ; CPPUNIT_NS::TestResultCollector result ; controller.addListener(&result); CPPUNIT_NS::BriefTestProgressListener progress ;..
드디어 대망의 cppUnit 과 CruiseControl.NET 과의 결합입니다. 일단은 개념만 다루기로 하고 다음 포스트에서 프로젝트를 하나 하나 생성해 나가면서, SVN , CI , Schedule , TDD , IssueTracker 까지 적용해서 하나의 프로젝트로 만드는 포스팅 할 예정입니다. (우리 회사에서 적용하고 있는 방법론이기도 합니다, 비용은 인건비만 들고 실용주의 시스템 구성에 돈이 안드는 방법론을 맛볼 수 있습니다.) 저는 맘대로 그 방법을 도입한 형태를 실천주의 구성이라고 합니다 ㅎㅎ 지금까지 cppTest 프로젝트를 하면서 , 화면에 (콘솔) 테스트 결과가 출력되는 형태까지 봐 왔을것입니다. 이제부터 CruiseControl.NET 의 웹 대쉬보드 에 테스트 결과를 출력하게 해서 ..
기존의 CruiseControl.NET 에서 TestProject 를 실행해야 하는 경우가 있습니다. 그때는 블록에서 블록을 이용해서 TestProject 의 결과물을 호출합니다. ccnet.config 에서 블록에서 블록을 추가해줍니다. D:\User\Crazia\Work\win2007d\build\Test2007d.exe D:\User\Crazia\Work\win2007d\build 10 에 실행 파일을 적어주고 블록안에 넣어주시면 됩니다. 저는 블록 다음에 바로 넣어줬습니다. 다음은 이것을 실행하기까지 생겼던 에러를 간단하게 정리해 봤습니다. 블록과 블록에서 제대로 블록이 동작안되는 현상이 발생했습니다. 그당시 의 형태가 TestRunner.bat "D:\User\Crazia\Work\win2007..
지금까지 CookBook 의 예제를 따라서 하시다 보면 드는 의문이 있을 것입니다. 원칙대로 따라서 소스코드를 친 다음에 나온 결과물을 실행하면 . OK 라고 덜렁 나오는 것을 볼 수가 있을것입니다. NUnit 을 써보신 분들은 그 화려한 GUI 나 , TextMode 일때에도 나오는 그 많은 정보들이 하나도 나오지 않습니다. 심지어는 내가 무엇을 테스트 하는지에 대한 정보조차 없습니다. CppUnit 상당히 실망스러울 수밖에 없었습니다. 하지만 없을리가 없지 않습니까 ㅎㅎ , 그래서 조금 조사해보니 답이 나오더군요. cppTest.cpp 만 바꿔 주면 됩니다. int main(int argc , char **argv) { // 결과값을 저장하기 위한 매니저와 콘트롤러 성격을 선언해줍니다. CPPUNIT..
Helper Macros TestRunner 에서 봤듯이 Fixture 에는 Static 함수는 suite() 가 필요합니다. 하지만 이것을 매번 작성하다보면 , 내용이 귀찮고, 반복적으로 해야 하고 그러다 보면 실수를 유발하게 됩니다. 그래서 이부분을 편리한 매크로로 만들어서 쓰게 할 수 있습니다. 기존의 파일에서 #include 를 추가하면 macro를 쓸 수 있게 해줍니다. CPPUNIT_TEST_SUITE ( ComplexNumberTest) ; ('' 이것을 선언해주면 suite 를 쓰겠다고 선언하는 것입니다. suite 에 추가해줄 함수들을 추가하고요 CPPUNIT_TEST (testEquality ) ; CPPUNIT_TEST (testAddition ) ; 그리고 suite 선언이 끝났다고..
Suite 테스트 케이스를 한꺼번에 몰아서 돌릴려고 하면 , Suite 가 필요합니다. 정확히는 TestSuite 이지요. 전 포스팅에서 한개체를 돌리는 경우를 봤으니 이번에는 한번에 돌리는걸 알아 보도록 하죠. cppTest.cpp #include int _tmain(int argc, _TCHAR* argv[]) { CppUnit::TestSuite suite; CppUnit::TestResult result; suite.addTest( new CppUnit::TestCaller( "testEquality", &ComplexNumberTest::testEquality ) ); suite.addTest( new CppUnit::TestCaller( "testAddition", &ComplexNumberT..