• 모던 C 언어 프로그래밍
  • IDE, 디자인 패턴, XP, TDD, 리팩터링, 지속적인 통합

  • 하나이 시세이 지음
  • 김범준 옮김

  • 프로그래밍 & 프랙티스 시리즈_009
  • ISBN: 9788998139681
  • 25,000원 | 2014년 10월 29일 발행 | 316쪽



『모던 C 언어 프로그래밍』에서는 전통적인 개발 스타일과 다른 C 언어의 현대적인 개발 스타일을 소개합니다. 서버 측 개발에 일반화돼 있는 설계 기법과 툴의 활용법, 개발 방법 등을 C 언어를 이용해 임베디드 시스템 애플리케이션 개발에 적용할 수 있게 하나하나 설명합니다. 이 책에서는 임베디드 시스템에 관한 내용을 다루고 있기는 하지만 이 책에서 다루는 내용은 임베디드 업계 이외의 C 언어 프로그램을 개발하는 데도 공통적으로 적용됩니다.

★ 이 책에서 다루는 내용 ★

  • C 개발에 IDE 활용하기
  • C에서 디자인 패턴 활용하기
  • C 프로그램의 개발을 테스트 주도 개발 형식으로 수행
  • C 프로그램 리팩터링하기
  • C 프로그램 개발에 지속적인 통합을 적용

이를 통해 다음과 같은 효과를 얻을 수 있습니다.

  • 디버깅이 용이해지므로 품질 및 생산성이 향상된다
  • 단위 테스트에 의해 품질 및 생산성이 향상된다
  • 리팩터링에 의해 코드의 구조 개선이 가능해진다
  • 피드백을 즉시 얻을 수 있다
  • 소프트웨어가 항상 "작동" 상태로 유지된다
  • 정식 빌드를 확정할 수 있다
  • 보고서 기능을 통해 상황, 이력을 언제든지 확인할 수 있다

『모던 C 언어 프로그래밍』을 읽고 나면 C 개발도 모던하게 할 수 있습니다!

 

도서 소개

하나이 시세이 (花井志生)

입사 당시에는 C/C++를 이용한 임베디드 기기(POS)용 애플리케이션 개발에 종사했다. 10년 정도 경험을 쌓은 후 서버 사이드로 옮겨 주로 자바 웹 애플리케이션 개발을 하고 있으며, 문제 해결에서 시스템 설계, 개발을 생업으로 하고 있다.

김범준

일본 호세이대학 경영학부를 졸업했다. 대학 시절 취미로 프로그래밍을 시작한 것을 계기로 이 업계에 발을 들여놓게 됐으며, 한국과 일본에서 임베디드 시스템과 게임 관련 회사에서 개발 프로젝트를 진행했다. 번역서로는 《따라 하면서 배우는 유니티 3D 입문》(위키북스)이 있으며, 저서로는 《만들면서 배우는 OS커널의 구조와 원리》(한빛미디어), 《뇌를 자극하는 하드웨어 입문》(한빛미디어), 《만들면서 배우는 OS 커널의 구조와 원리 일본어판》(일본 슈와시스템)이 있다.

  • ▣ 1장: 개요
    • 1.1 지금, C의 열기가 뜨겁다!
    • 1.2 C를 이용한 임베디드 시스템 개발의 특징
    • 1.3 이 책의 목표
      • 1.3.1 C와 통합 개발 환경
      • 1.3.2 C와 디자인 패턴
      • 1.3.3 C와 익스트림 프로그래밍
      • 1.3.4 C와 모던 개발 스타일
    • 1.4 정리
    •  
  • ▣ 2장: 개발 환경 구축
    • 2.1 개요
    • 2.2 리눅스 도입
    • 2.3 윈도우 PC용 환경 만들기
      • 2.3.1 버추얼박스 설치
    • 2.4 리눅스 PC용 환경 구축하기
      • 2.4.1 도입하기 전에
      • 2.4.2 설치 디스크 만들기
      • 2.4.3 주분투 설치
    • 2.5 이클립스 설치하기
      • 2.5.1 자바 설치하기
      • 2.5.2 이클립스 설치하기
      • 2.5.3 기타 툴 설치
    • 2.6 이클립스의 기본 사용법
      • 2.6.1 Hello, world
      • 2.6.2 리뷰
      • 2.6.3 프로젝트와 워크스페이스 그리고 퍼스펙티브
    • 2.7 이클립스의 기능
      • 2.7.1 비주얼 디버거
      • 2.7.2 탐색
      • 2.7.3 컨텐트 어시스트
      • 2.7.4 매크로 확인
      • 2.7.5 로컬 히스토리
      • 2.7.6 TODO 주석
      • 2.7.7 외부 에디터와의 연계
    • 2.8 정리
    •  
  • ▣ 3장: C 언어와 객체 지향
    • 3.1 개요
    • 3.2 C의 모듈화와 객체 지향
      • 3.2.1 C와 모듈화
      • 3.2.2 구조체를 이용한 자료 구조와 로직의 분리
      • 3.2.3 C를 이용한 객체 지향
      • 3.2.4 객체 지향과 다형성
      • 3.2.5 상속
      • 3.2.6 캡슐화
      • 3.2.7 가상 함수 테이블
      • 3.2.8 비가상 함수
    • 3.3 정리
    •  
  • ▣ 4장: C 언어와 디자인 패턴
    • 4.1 스테이트 패턴(State)
      • 4.1.1 상태 다이어그램
      • 4.1.2 상태 변화표
      • 4.1.3 객체 지향 스테이트 패턴
      • 4.1.4 여러 개의 상태 집합이 관련된 경우
      • 4.1.5 스테이트 패턴과 메모리 관리
    • 4.2 템플릿 메서드 패턴(Template)
      • 4.2.1 int 형이 아닌 값을 반환
      • 4.2.2 그 외의 자원을 다룬다
      • 4.2.3 컨텍스트
    • 4.3 옵저버 패턴(Observer)
    • 4.4 책임 연쇄 패턴(Chain of Responsibility)
    • 4.5 비지터 패턴(Visitor)
      • 4.5.1 객체에 type id를 갖게 하고 싶어지면 노란불 신호
    • 4.6 정리
    •  
  • ▣ 5장: C 언어와 리팩터링
    • 5.1 개요
    • 5.2 테스트 주도 개발
      • 5.2.1 구글 테스트
    • 5.3 TDD 입문편
      • 5.3.1 이클립스 설정
      • 5.3.2 첫 테스트 주도 개발
      • 5.3.3 static 함수 테스트
    • 5.4 리팩터링
      • 5.4.1 외부 인터페이스
      • 5.4.2 리팩터링과 투자
    • 5.5 TDD 실전편
      • 5.5.1 몬스터 메서드
      • 5.5.2 C 언어에 의한 모크화 방법
      • 5.5.3 리팩터링을 완료한다
      • 5.5.4 커버리지 확인
    • 5.6 정리
    •  
  • ▣ 6장: 지속적인 통합과 배포
    • 6.1 개요
    • 6.2 지속적인 통합의 전제
      • 6.2.1 소프트웨어 형상 관리(Software Configuration Management)
      • 6.2.2 빌드 툴
      • 6.2.3 버그 추적 시스템(BTS)
    • 6.3 CI 서버의 도입
      • 6.3.1 젠킨스 플러그인 추가
    • 6.4 CI 입문
      • 6.4.1 CI로 자동화할 대상
      • 6.4.2 SCons 빌드 스크립트 입문
      • 6.4.3 gcovr 설치
      • 6.4.4 빌드 실행
      • 6.4.5 SCM에 등록
      • 6.4.6 젠킨스 Job 생성
    • 6.5 메모리 파괴 버그와의 전쟁
      • 6.5.1 설치
      • 6.5.2 Valgrind 실행
      • 6.5.3 Valgrind에서 검출된 에러
      • 6.5.4 Valgrind로 검출되는 메모리 에러의 특징과 대책
      • 6.5.5 젠킨스에서 Valgrind 사용하기
    • 6.6 CI 실전
      • 6.6.1 마이크로칩용 툴
      • 6.6.2 빌드의 내용
      • 6.6.3 빌드 파일을 분할
      • 6.6.4 빌드 서버를 독립시킨다
      • 6.6.5 자동 빌드를 계획한다
    • 6.7 정리
    •  
  • ▣ 부록A: 예제 프로그램
    • A.1 주의사항
    • A.2 C99 사양의 활성화
    • A.3 예제 프로그램을 이클립스로 가져오기
      • A.3.1 예제 프로그램이 저장된 zip 파일 압축 풀기
      • A.3.2 이클립스에 빈 프로젝트 생성

예제코드 관련 깃허브 페이지

도서 소개 자료

관련 글