C++ API 디자인

마틴 레디 저

『C++ API 디자인』은 장기간 이어지는 대규모 프로젝트에서 어떻게 하면 훌륭한 API를 설계할 수 있는지에 대한 책이다. 각각의 개념들을 실체화시킬 수 있는 확장 가능한 C++ 코드를 통해 최고 수준의 API 문서화 전략을 살펴본다. 인터페이스 설계, 문서화, 테스팅 뿐만 아니라 스크립팅과 플러그인-확장성에 관한 심도 있는 내용을 이야기한다.


도서 상세

분야: [웹프로그래밍, 프로그래밍 언어]

출간일: Jan 20, 2014

페이지: 632

도서정가: 35,000 원

ISBN: 9788993827682

부가 정보
출판사 서평

장기적으로 견고한 코드 생성을 위한 API 설계의 실용적인 테크닉! 

디자인, 버전 관리, 문서화, 테스트, 스크립팅 및 확장성을 포함한 C++ API 개발의 전략을 가르치는 유일한 책! 

API(애플리케이션 프로그래밍 인터페이스) 디자인은 최종 사용자의 애플리케이션의 행동과 역량, 안정성 및 용이성에 영향을 준다. 이 책은 대규모 장기 프로젝트를 위한 API 디자인 방법을 실용적이고 효율적인 설계에 초점을 맞춰 다양한 API의 스타일과 패턴을 설명하고 있다. 이 책은 초기 설계 단계부터 버전 관리, 문서화 테스트에 이르기까지 API의 표준 개발 과정에 따라 내용들을 이어간다. 


독자 대상

이 책은 좀 더 발전된 설계 기술을 원하는 고급 개발자뿐만 아니라 현재 자신의 능력을 좀 더 완성시켜 전문성을 강화시키고자 하는 시니어 엔지니어와 소프트웨어 아키텍트에게도 충분히 그 만큼의 가치를 제공할 것이다. 

  1. 1. 현장의 소프트웨어 엔지니어와 아키텍트. 특정 API 프로젝트에 참여하고 있는 주니어, 시니어 개발자로써 세련되 
  2. 고 견고한 설계를 위한 실질적인 도움을 필요로 한다. 
  3. 2. 기술 매니저. API 제품을 책임지고 있는 프로그램이나 제품 관리자로 API 설계에 관한 기술적인 이슈와 개발 프로 
  4. 세스에 대한 구체적인 내용들을 필요로 한다. 
  5. 3. 학생과 교육자. 어떻게 프로그램을 만드는지를 배우고 있는 컴퓨터 과학, 소프트웨어 엔지니어링을 공부하는 학생 들로 대규모 프로젝트에서 진행된 실질적인 경험에 의해 검증된 소프트웨어 설계에 관한 자료들을 필요로 한다. 

저자 소개

마틴 레디(Dr. Martin Reddy) : 소프트웨어 컨설팅 회사인 Code Reddy Inc.의 설립자이자 CEO다. 

공저: 「Level of Detail for 3D Graphics, Morgan Kaufmann / 2012」


역자 소개

천호민 : 소프트웨어 개발자로 한국에서 10년이 조금 넘는 시간 동안 다양한 경험을 쌓았고, 현재 런던에 거주하면서 또 다른 형태의 삶과 일을 경험하고 있다. 3년간 Microsoft C# MVP로 활동하였으며, 다양한 IT 서적의 저술 및 번역 활동을 해오고 있다. 

저서: 「생각하는 C#.LINQ, 대림 / 2008」 

번역서: 「거침없이 배우는 CouchDB, 지앤선 / 2012」 등

chpater 1 소개 

1.1 애플리케이션 프로그래밍 인터페이스 

1.2 API 설계의 차별화되는 특징 

1.3 API를 사용하는 이유 

1.4 API를 사용하지 말아야 할 때 

1.5 예제 API 

1.6 파일 포맷과 네트워크 프로토콜 

1.7 이 책의 구성 


chpater 2 품질 

2.1 문제 도메인 모델 

2.2 구체적인 구현 숨기기 

2.3 작게 완성하기 

2.4 쉬운 사용성 

2.5 느슨한 연결 

2.6 안정화와 문서화, 테스트 


chpater 3 패턴 

3.1 Pimpl 관용법 

3.2 싱글톤 

3.3 팩토리 메서드 

3.4 API 래핑 패턴 

3.5 옵저버 패턴 


chpater 4 설계 

4.1 좋은 설계를 위한 사례 

4.2 기능적 요구사항 수집 

4.3 유즈 케이스 생성 

4.4 API 설계 요소 

4.5 아키텍처 설계 

4.6 클래스 설계 

4.7 함수 설계 


chpater 5 API 개발 방법 

5.1 일반 C API 

5.2 객체 지향 C++ API 

5.3 템플릿 기반 API 

5.4 데이터 주도 API 


chpater 6 C++의 올바른 사용법 

6.1 네임스페이스 

6.2 생성자와 할당 

6.3 상수 정확성 

6.4 템플릿 

6.5 연산자 오버로딩 

6.6 함수 파라미터 

6.7 상수에 #DEFINE 사용 금지 

6.8 프렌드 사용 금지 

6.9 심벌 노출 

6.10 코딩 규칙 


chpater 7 성능 

7.1 상수 참조로 입력 파라미터 전달 

7.2 #INCLUDE 의존성 최소화 

7.3 상수 선언 

7.4 초기화 리스트 

7.5 메모리 최적화 

7.6 필요시까지 인라인 사용 금지 

7.7 카피-온-라이트 

7.8 요소 반복 

7.9 성능 분석 


chpater 8 버전 관리 

8.1 버전 번호 

8.2 소프트웨어 브랜치 전략 

8.3 API의 수명 주기 

8.4 호환성 수준 

8.5 하위 호환성 유지 

8.6 API 리뷰 


chpater 9 문서화 

9.1 문서화의 이유 

9.2 문서화의 유형 

9.3 문서 활용 

9.4 DOXYGEN 사용 


chpater 10 테스트 

10.1 테스트 코드가 필요한 이유 

10.2 API 테스트의 유형 

10.3 좋은 테스트 코드 작성 

10.4 테스트 가능한 코드의 작성 

10.5 테스트 자동화 도구 


chpater 11 스크립팅 

11.1 스크립트 바인딩 추가 

11.2 스크립트 바인딩 기법 

11.3 BOOST PYTHON을 사용한 PYTHON 바인딩 추가 

11.4 SWIG를 이용한 RUBY 바인딩 추가 


chpater 12 확장성 

12.1 플러그인을 통한 확장 

12.2 상속을 통한 확장 

12.3 템플릿을 통한 확장