Page 176

메모리 누수를 방지하도록 스마트 포인터를 사용한다. 스마트 포인터는 더 이상 필요 없게 되면 자동으로

해제된다. 컴파일 경고 메시지를 확인한다. 경고 메시지를 최대한 많이 출력하도록 컴파일러를 설정하고, 출력된 메시

지를 그냥 지나치지 않는다. 기왕이면 경고를 에러로 취급하도록 설정하는 것이 좋다. 그러면 모든 경고 메 시지를 반드시 해결하고 넘어가게 만들 수 있다. 정적 코드 분석 도구(static code analyzer )를 활용한다. 정적 코드 분석 도구를 활용하면 코드를 자

동으로 분석해서 문제가 있는 부분을 찾아낼 수 있다. 문제를 최대한 초반에 발견할 수 있도록 빌드 프로세 스에 정적 분석을 자동으로 수행하도록 구성하면 가장 좋다. 바람직한 코딩 스타일을 적용한다. 가독성과 명료함을 추구한다. 의미 있는 이름을 짓고, 줄임말 사용을 자

제한다(인터페이스뿐만 아니라 다른 부분에 대해서도). 최대한 주석을 단다. override 키워드를 사용한다. 그러면 다른 사람이 코드를 쉽게 이해할 수 있다.

27.4 버그 대비 프로그램을 작성할 때 버그 발생은 피할 수 없다. 따라서 디버깅을 쉽게 할 수 있는 기능을 반드 시 제공해야 한다. 이 절에서는 실전에서 곧바로 적용할 수 있는 디버깅 지원 기능의 종류와 구 현 방법을 예제와 함께 살펴본다.

27.4.1 에러 로깅 회사를 대표하는 제품의 새 버전을 최근에 출시했는데, 초기 사용자로부터 프로그램이 멈춘다는 피드백을 받았다고 하자. 어떤 기능을 수행하다가 갑자기 멈추는지 알아내기 위해 그 사용자로 부터 문제가 발생한 상황을 좀 더 자세히 물어봤다. 하지만 사용자는 구체적으로 어떤 작업을 하 다가 문제가 발생했는지, 또 그 시점에 어떤 에러 메시지가 출력됐는지 기억하지 못하고 있다. 이럴 때는 어떻게 디버깅해야 할까? 사용자는 기억하지 못하지만 사용자의 컴퓨터에 에러 로그가 남아 있다고 하자. 로그를 살펴보 고 ‘Error: unable to open config.xml file’이란 메시지를 발견했다. 그래서 이 메시지를 출 력하는 코드를 살펴보니 파일을 읽을 때 제대로 열렸는지 검사하는 부분이 빠졌다는 사실을 알 아냈다. 버그의 근본 원인을 찾은 것이다. 에러 로깅 error logging 은 애플리케이션이나 컴퓨터 시스템이 실행되는 동안에 발생한 에러 메시지 를 영속적인 저장 장치에 기록하는 프로세스다. 앞에서 이와 관련된 사례를 설명했지만 과연 이 방법이 정말 효과적인지 의심스러울 수 있다. 에러가 발생하는 것을 프로그램 동작만 보고도 알

1280 5부 C++ 소프트웨어 공학

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement