본문 바로가기

C++ Language

[ Code Complate 2 ] 9 의사코드 프로그래밍 프로세스 [[ 정리중 ]] 이 부분은 클래스의 전반적인 설계에 대한 이해있어야 하며, 설계와 문서 작성 시에 필요한 작업을 줄이고 이들의 품질을 향상시키는 의사코드 프로그래밍 프로세스( Pseudocode Programming Process, PPP ) 에 대한 설명을 하고 있습니다. 다시말하면 본 문의 내용은 네이밍 규칙 및 클래스 설계에 주안점을 두고 있습니다. 요약 9.1 클래스와 루틴을 작성하는 단계에 대한 요약 9.2 전문가를 위한 의사코드 9.3 PPP를 사용한 루틴 구현 9.4 PPP의 대안 9.1 클래스와 루틴을 작성하는 단계에 대한 요약 클래스의 일반적인 설계를 작성하고, 루틴을 열고한 다음 구현에 따른 검사를 반복적인 절차에 대해 이야기 하고 있습니다. 클래스 작성 단계 클래스에 대한 일반적인 .. 더보기
[ Code Complate 2 ] 8 방어적 프로그래밍 요약 8.1 타당하지 않는 입력으로부터 프로그램의 보호 8.2 어설션( assertion ) 8.3 오류 처리 기법 8.4 예외 8.5 오류에 의해서 발생하는 손해를 막기 위한 방책 8.6 디버깅 보조 도구 8.7 제품 코드 안에 남는 방어적인 프로그래밍 코드 정의. 8.8 방어적인 프로그래밍에 대해서 방어적이 되는 것. ref :: 실용주의 프로그래머 ( 6장 코딩하는 동안 해야 할 일들 ) 프로그래밍에 대해 방어적인 자세를 취하라는 것이 아니라 방어적인 운전을 바탕으로 피해를 입지 않도록 하는 경우를 말한다. 분문발췌: 방어운전을 통해 여러분들은 피해를 당하지 않을 것이라는 확신으로 스스로를 보호할 책임이 있다. 8.1 타당하지 않는 입력으로부터 프로그램의 보호 쓰레기를 넣으면 쓰레기가 나온다는 말이.. 더보기
Boost Install 관련 설치 링크 : http://dblab.co.kr/entry/boost-설치 설치 링크 : http://joyholic.kr/79 Boost Install 참조 boost_1_46_1에서는 아래와 같이 설치하도록 메뉴얼에서는 설명이 되어 있습니다. 1. Unpack the release. On the command line, go to the root of the unpacked tree. 2. Run either .\bootstrap.bat (on Windows), or ./bootstrap.sh (on other operating systems). 3. Run ./bjam install --prefix=PREFIX where PREFIX is a directory where you want Boost... 더보기
Boost Library 1.36 boost에 공부를 시작해볼까 합니다. 한국에 있을 때 기회는 있었지만, 게을러서 미쳐 생각지 못했던 부분이였습니다. 마음을 가다듬고 많이 하는것도 아닌 조금씩 조금씩 내공을 쌓아가야 할 노력이 필요할 때라 보고 천천히 준비해서 올리도록 하겠습니다. Version 1.36.0 August 14th, 2008 12:00 GMT New Libraries Accumulators: Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler. Exception: A library for transporting of arbitrary data in exception objects, and tra.. 더보기
구글, 오픈 코드 Keyczar 공개 Keyczar Keyczar is an open source cryptographic toolkit designed to make it easier and safer for devlopers to use cryptography in their applications. Keyczar supports authentication and encryption with both symmetric and asymmetric keys. Some features of Keyczar include: A simple API Key rotation and versioning Safe default algorithms, modes, and key lengths Automated generation of initializatio.. 더보기
C++ Operator Overloading Guidelines C++ Operator Overloading Guidelines One of the nice features of C++ is that you can give special meanings to operators, when they are used with user-defined classes. This is called operator overloading. You can implement C++ operator overloads by providing special member-functions on your classes that follow a particular naming convention. For example, to overload the + operator for your class, .. 더보기
log4cxx을 이용한 사용기 프로그램을 이용하여 로그를 남기는 방식은 다양하게 존재합니다. 어떤 사람은 타 응용툴을 이용하는 사람도 있구, 아니면 print로 찍어서 보는 사람이 있습니다. 기타 로그를 볼 수 있는 기능들이 많이 존재함을 알려드립니다. 하지만 제가 사용하고 있는것은 apache에서 사용되고 있는 log4cxx을 이용하여 쉽게 로그를 파일 또는 콘솔에 찍거나 또는 파일로 남길 수 있는 기능이 있어서 이렇게 모르는 분들을 위해서 보여드릴까 합니다. 저는 리눅스 프로그래머 입니다. 제가 사용하고 있는 머신을 돌리면서 파일로 수시로 ERROR 발생한 것을 grep으로 검색한 후, 문제를 진단을 하고 그에 준하는 조치를 취하고 있습니다. 하루 일과중 하나입니다. 지금 사용하고 있는 버전이 0.9.8 을 사용하고 있구 rele.. 더보기
항목 4 : 쓸데 없는 기본 생성자는 그냥 두지 말자 문제제기 : 기본 생성자는 객체가 생성되고 위치의 주변 정보를 전혀 갖지 않고도 객체를 초기화 할 수 있습니다. 자세한 내용 : 외부입력이 없이는 기본 생성자를 가져야 한다. 하지만 세상만사세옹지마라 했던가 그렇지 않은 경우도 있기에 주의깊게 생각한 후 사용을 해야 될 부분들이 종종 생기곤 합니다. class EquipmentPiece { public: EquipmentPiece( int IDNumber ); ... }; 이 클래스를 썼을 때 문제가 일어날 수 있는 경우가 세가지가 있습니다. 1. 배열을 생성할 때 ( i, 객체에 배열을 생성하기란 불가능 ) 1 ) 배열을 풀어서 매개변수에 일일이 대입 ( 현실성이 떨어진다. ) 2 ) 배열 대신에 포인터 배열을 사용 2. 메모리 사용량이 증가 더보기