[전문가를 위한 C++] 4장 : 전문가답게 C++ 프로그램 설계하기
2026. 2. 23. 23:54
4.1 프로그램 설계의 정의
- 이해 당사자
- 기능 요구사항
- 비기능 요구사항
- 프로그램 설계
4.2 프로그램 설계의 중요성
4.3 C++에 적합한 설계 방법
- c++의 특성을 명심
4.4 C++ 설계에 관련된 두 가지 원칙
4.4.1 추상화
4.4.2 재사용
재사용 가능한 코드 만들기
c++에서는 코드를 범용으로 만들 수 있도록 템플릿이라는 기능을 제공
설계 재사용
4.5 코드 재사용
코드 재사용이란 단순히 기존 코드를 복사해서 붙이는 것이 아니다. 일일이 복제하지 않고도 코드를 재사용할 수 있어야 한다.
4.5.1 용어 정리
- 예전에 자신이 작성한 코드
- 동료가 작성한 코드
- 현재 소속 회사나 조직 외의 서드파티에서 작성한 코드
4.5.3 코드 재사용 전략
1 기능과 제약사항 파악하기
- 멀티스레드 프로그램에서도 안전한지 파악
- 라이브러리를 사용하는 코드에 대해 특별히 컴파일러에 설정해야 할 사항이 있는지, 프로젝트 전체에 적용해도 되는지'
- 사용할 라이브러리나 프레임워크에서 의존하는 라이브러리가 있는지 확인
- 초기화나 종료 시 반드시 수행할 작업이 있는지 확인한다
- 클래스를 상속할 때 어떤 생성자를 호출해야하고, 어떤 가상 메서드를 오버라이드 해야 하는지 파악
- 함수가 메모리 포인터를 리턴할 때 그 메모리를 해제하는 작업을 호출한 코드와 라이브러리 중에서 어느 쪽이 책임져야하는지 파악한다. 라이브러리에서 처리해준다면 메모리가 해제되는 시점을 파악
2 학습비용 파악하기
- 학습시간 : 라이브러리를 익히는데 걸리는 시간
3 성능파악하기
빅오 표기법
- 알고리즘의 복잡도
입력에 따라 속도가 변하는 알고리즘에만 적용된다. 입력을 받지 않거나 실행 시간이 무작위인 알고리즘에는 적용할 수 없다. 실전에서 주로 사용하는 알고리즘은 거의 다 입력에 따라 실행시간이 달라진다. 따라서 여기에 해당하는 경우가 아닌지 크게 신경쓸 필요가 없다.
성능 분석과 관련된 팁
빅오 표기법만으로는 충분히 설명할 수 없거나 자칫 오해하는 경우가 있다.
입력데이터가 2배가 되면 알고리즘의 실행시간도 두배가 된다는 말은 알고리즘의 실제 실행시간을 나타내는 표현이 아니다. 예를 들어 필요이상으로 디스크에 많이 접근하도록 알고리즘을 구현하면 -> 실제 성능 bad
이와 비슷한 맥락으로 빅오 표기법으로 실행 시간이 똑같은 알고리즘끼리 비교하는 것은 힘들다
- 입력 크기가 작으면 빅오표기법으로 정확히 표현할 수 없다.*
4 플랫폼 제약사항 파악하기
5 라이선스와 기술지원 파악하기
6 기술 지원 및 도움을 받을 수 있는 곳 파악하기
7 프로토타입
8 오픈소스 라이브러리
오픈소스 라이브러리 찾기
- boost.org
- gnu.org
9 C++ 표준 라이브러리
'C++' 카테고리의 다른 글
| [전문가를 위한 C++] 6장 : 재사용을 고려한 설계 (0) | 2026.02.23 |
|---|---|
| [전문가를 위한 C++] 5장 : 객체지향 설계 (0) | 2026.02.23 |
| [전문가를 위한 C++] 3장 : 코딩 스타일 (0) | 2026.02.23 |
| [전문가를 위한 C++] 2장 : 스트링과 스트링 뷰 다루기 (0) | 2026.02.23 |
| [전문가를 위한 C++] 1장 : C++와 표준 라이브러리 초단기 속성 코스 (1) | 2026.02.23 |



