Programing 썸네일형 리스트형 소프트웨어 구현 컴퓨터 소프트웨어 개발은 복잡한 과정을 필요로 할 수 있으며, 지난 시간동안 소프트웨어 개발 과정에서 사용되는 다음과 같은 다양한 작업들이 규명되었다. - 문제 정의 - 요구사항 개발 - 구현 계획 수립 - 소프트웨어 아키텍처 또는 상위 수준 디자인 - 상세 설계 - 코드 작성 및 디버깅 - 단위 테스트 - 통합 테스트 - 통합 - 시스템 테스트 - 사후 보전(corrective maintenance) 위와 같은 소프트웨어 개발 작업 중 파란색 작업이 구현 작업이라 할 수 있다. 그리고 이것은 구현 작업을 상위 수준에서 표현한 것이다. 이러한 구현 작업에 필요한 작업들을 구체적으로 일부만 나열하면 아래와 같다. - 구현을 성공적으로 수행하기 위한 기초 작업의 검증 - 코드를 테스트하기 위한 방법의 결정 .. 더보기 Thread를 사용하는 프로젝트 디버깅시 먹통되는 현상 해결법 XP에서 Thread를 사용하는 프로그램을 디버깅하다 보면 자주 먹통이 되서 리부팅을 해야되는 상황이 발생합니다. 처음에는 Visutal Studio 6.0과 XP의 둘간에 문제로 의심을 했었지만, Visual Studio 상위 버전에서도 동일한 문제가 생겨서 검색을 해보니 원인은 IME쪽 문제라고 하네요. 해결 방법은 제어판 -> 국가 및 언어 옵션 -> 언어 탭 -> 자세히 -> 고급 -> 고급 텍스트 서비스 사용 안 함 을 체크하고 리부팅을 하면 됩니다. 더보기 EXT3 파일시스템으로 8테라 이상 잡기 리눅스 레드햇 계열에서 기본으로 사용하는 EXT3 파일시스템은 기본적인 방법으로 최대 8테라바이트까지 사용이 가능합니다. 그러나 웹하드에서 스토리지 서버의 수를 줄이기 위해 16테라짜리 레이드를 구성 후 EXT3로 16테라바이트까지 사용할 수 없을까 해서 구글링 결과 힘들게 찾아낸 방법입니다. 디바이스가 /dev/sdd라고 할때 pvcreate /dev/sdd vgcreate BiggerGroup /dev/sdd lvcreate -L 16000G -n biggervol BiggerGroup mkfs.ext3 -F -b 4096 /dev/BiggerGroup/biggervol 위와 같이 하면 16테라바이트까지 사용가능합니다. 단, 2대의 스토리지 서버를 16테라바이트로 구성해서 구동해본 결과 처음엔 괜찮았.. 더보기 거품 정렬(Bubble Sort) 거품 정렬(Bubble sort)이란? 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복합도가 O(n2)로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 오른쪽 그림에서처럼 그래프를 그리면 원소가 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 저작자 : Nmnogueira Code void bubbleSort( sortitems ) { for( int i = 0; i i; --j ) { if( sortitems[j] < sortitems[j - 1] ) swap( sortitems[j], sortitems[j - 1] ) } } } 더보기 CppUnit CookBook 출처 : http://kukuta.tistory.com/90 리팩토링이라는 책을 읽다가 단위 테스트에 대한 필요성을 느끼고 예전 부터 한번 알아봐야지 하고 마음만 먹던 CppUnit에 대해서 간략한(?)하게 테스트 케이스 작성 방법에 대해서 요약해 보았습니다. 원문은 http://cppunit.sourceforge.net/doc/1.9.11/cppunit_cookbook.html#cppunit_cookbook 에서 확인 하실 수 있습니다. Simple Test Case 코드가 정상적으로 작동하고 있는지를 알아보기 위해서는 다양한 방법이 있습니다. 디버거를 사용하여 코드를 일일이 따라가 보거나, 특정 위치에서 문자를 출력 하도록 하는 것도 간단하고 좋은 방법 중에 하나임에는 분명합니다. 하지만 다소 뒤떨어.. 더보기 Handle leak 찾기 출처 : http://kukuta.tistory.com/115 이 글의 대상은 윈도우 프로그래밍에 대해서 어느 정도 이해를 하고 있는 사람들을 대상으로 합니다. 기본적으로 핸들과 커널 오브젝트에 대한 개념에 대해 알고 있어야 하며(모른다면 여기로), 디버깅에 대해서 약간의 기본적 지식을 가지고 계시는 것이 좋습니다. 본 포스트는 디버깅에 관련된 툴들의 사용법에 대해서 다루고 있으며, 자세한 사용법 보다는 기본적인 사용법위주로 문제 해결에 관련된 부분만 다루고 있습니다. 보다 자세한 정보를 원하시면 해당 툴에 관련된 링크를 따라 가시면 많은 도움이 될 것입니다. 프로그래밍을 하다 보면 원하든 원하지 않든(거의 이 경우가 대부분이만) 종종 자원을 흘리고 다니는 경우가 있다. 여기서 말하는 자원이란 것은 파일.. 더보기 Visual Leak Detector - Enhanced Memory Leak Detection for Visual C++ http://www.codeproject.com/KB/applications/visualleakdetector.aspx 더보기 Visual Studio에서 메모리 누수 확인하는 방법 #include _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetDbgFlag 함수는 프로그램이 시작하는 처음위치에 삽입하면 됩니다. 위에 두 줄만 추가하면 MFC 프로젝트에서는 메모리 누수가 일어난 파일과 라인이 출력줄에 표시됩니다. 그러나 MFC 이외의 프로젝트에서는 파일과 라인이 표시되지 않는데, 그걸 표시하기 위해서는 #define _CRTDBG_MAP_ALLOC #include #define DEBUG_NEW new(_NORMAL_BLOCK, THIS_FILE, __LINE__ ) _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 이 네줄을 쓰시면 됩니다.. 더보기 Webmin(리눅스 관리 웹페이지 프로그램) http://www.webmin.com/ 더보기 리눅스 데몬 프로그램 만들기 Daemon 프로그램은 보통 telnet, httpd, mysql 과 같은 각종 서버를 background 상태에서 돌아가는 프로그램을 말한다. 그러나 background 프로그램과 Daemon 프로그램은 엄연한 차이가 있다. 일반적인 background 프로그램은 터미널을 가지지만, Daemon 프로그램은 터미널을 가지지 않는다. 왜냐하면 보통 데몬프로그램은 특별한 일이 없는한 사용자와 상호대화할 필요 없이 아무도 모르게 실행되어야 하기 때문이다. 또한 모든 데몬 프로그램은 PPID 즉 부모 프로세스가 1번으로 세팅되며, 이는 데몬 프로그램의 관리프로세스는 1번 pid 를 가지는 init 가 담당함을 의미한다. [yundream@huhu loging_server]$ ./my_server& [yundre.. 더보기 이전 1 ··· 3 4 5 6 7 다음