• 소득공제
  • 무료배송

임베디드 C를 위한 TDD

  • 제임스W.그레닝
  • 신제용,한주영
  • 인사이트
  • 2012년 12월 14일
사용자 평점
0리뷰 0개
10%25,20028,000원
적립금
1,400원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 9/28(월) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9788966260492
쪽수377쪽
크기B5(188mm X 257mm, 사륙배판)
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 시스템공학
관련 이벤트

AI추천 이유

책 소개
엄격한 한계와 물리적 제약 조건, 마이크로초, 킬로바이트 같은 진짜 ‘엔지니어’의 세계에 살고 있는 임베디드 개발자들은 TDD가 자바(Java)나 루비(Ruby) 같은 객체 지향 언어를 사용하고, 자원이 풍족한 분야에서나 적용할 수 있는 방법이라고 생각한다. 애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌웨어를 개발하는 개발자를 대상으로, 온전한 C 예제로 만든 상세한 코드로 설명을 전개하고 있다. 또한 이 책은 TDD를 얘기하기는 하지만 그보다 훨씬 더 많은 얘기를 한다. 즉, 이 책은 C로 고품질의 임베디드 소프트웨어를 빠르고 안정적으로 개발하기 위한, 훨씬 더 완벽하고 수준 높은 프로페셔널한 방법을 알려 준다.
목차
1장 테스트 주도 개발 1.1 왜 TDD가 필요한가? 1.2 테스트 주도 개발이란 무엇인가? 1.3 TDD 물리학 1.4 TDD 마이크로 사이클 1.5 TDD의 이득 1.6 임베디드 환경에서의 이득 1부 시작하기 2장 테스트 주도 개발의 도구와 관례들 2.1 단위 테스트 하니스란? 2.2 Unity - C로만 작성된 테스트 하니스 2.3 CppUTest: C++ 단위 테스트 하니스 2.4 단위 테스트는 크래시를 일으킬 수 있다 2.5 네 단계 테스트 패턴 2.6 지금까지 우리는 3장 C 모듈 시작하기 3.1 테스트 가능한 C 모듈의 구성 요소 3.2 LED 드라이버가 하는 일 3.3 테스트 목록 작성하기 3.4 첫 테스트 작성 3.5 먼저 인터페이스를 테스트 주도로 개발하기 3.6 점진적 진행 3.7 테스트 주도 개발의 상태 기계 3.8 테스트 FIRST 3.9 지금까지 우리는 배운 것 적용하기 4장 완료까지 테스트하기 4.1 단순하게 시작해서 솔루션 키워가기 4.2 코드를 깔끔하게 유지하기 - 자주 리팩터링하기 4.3 완료될 때까지 반복하기 4.4 완료 선언 전에 한 걸음 물러서기 4.5 지금까지 우리는 배운 것 적용하기 5장 임베디드 TDD 전략 5.1 타깃 하드웨어 병목 5.2 듀얼 타기팅의 장점 5.3 듀얼 타기팅의 위험 요소들 5.4 임베디드 TDD 사이클 5.5 듀얼 타깃 비호환성 5.6 하드웨어로 테스트하기 5.7 빨리 가기 위해 속도 늦추기 5.8 지금까지 우리는 6장 좋아, 하지만…… 6.1 우린 시간이 없어요 6.2 코드 작성 후에 테스트를 작성하면 왜 안 되나? 6.3 테스트를 유지 보수해야 할 것이다 6.4 단위 테스트가 모든 버그를 찾아낼 수는 없다 6.5 빌드가 오래 걸린다 6.6 우리에겐 기존 코드가 있다 6.7 메모리 용량이 제한되어 있다 6.8 우리는 HW와 상호작용해야 한다 6.9 C를 테스트하는데 왜 C++ 테스트 하니스가 필요한가? 6.10 지금까지 우리는 2부 협력자를 가진 모듈 테스트하기 7장 테스트 대역 도입하기 7.1 협력자 7.2 의존성 끊기 7.3 테스트 대역을 언제 사용하나? 7.4 C로 페이크 만들기, 그 다음은? 7.5 지금까지 우리는 8장 제품 코드에 스파이 심기 8.1 LightScheduler 테스트 목록 8.2 하드웨어와 운영체제 의존성 8.3 링크타임 치환 8.4 테스트 대상 코드에 스파이 심기 8.5 시계 제어하기 8.6 없는 경우 처리한 다음, 하나 있는 경우 처리 8.7 여러 항목 처리하기 8.8 지금까지 우리는 9장 런타임 연결 테스트 대역 9.1 무작위성 테스트 9.2 함수 포인터로 속이기 9.3 외과수술로 삽입된 스파이 9.4 스파이로 출력 검증하기 9.5 지금까지 우리는 10장 목(Mock) 객체 10.1 플래시 드라이버 10.2 MockIO 10.3 TDD로 드라이버 구현하기 10.4 디바이스 시간 초과를 시뮬레이션하기 10.5 이럴만한 가치가 있을까? 10.6 CppUMock으로 목 객체 만들기 10.7 목 객체 생성하기 10.8 지금까지 우리는 3부 설계와 지속적인 개선 11장 견고하고(SOLID), 유연하며,테스트 가능한 설계 11.1 SOLID 설계 원칙 11.2 SOLID C 설계 모델 11.3 요구사항의 변경과 문제 설계 11.4 동적 인터페이스로 설계 개선 11.5 타입별 동적 인터페이스로 유연성 향상시키기 11.6 설계는 얼마나 해야 충분한가? 11.7 지금까지 우리는 12장 리팩터링 12.1 소프트웨어의 두 가지 가치 12.2 세 가지 핵심 기술 12.3 코드 냄새와 이를 개선하는 법 12.4 코드 변형하기 12.5 성능과 크기 문제 12.6 지금까지 우리는 13장 레거시 코드에 테스트 추가하기 13.1 레거시 코드 변경 정책 13.2 보이스카우트 원칙 13.3 레거시 코드 변경 알고리즘 13.4 테스트 포인트 13.5 2단계 구조체 초기화 13.6 부딪혀가며 통과하기 13.7 특징 묘사 테스트 13.8 써드파티 코드에 대한 학습 테스트 13.9 테스트 주도로 버그 수정하기 13.10 전략적 테스트 추가 13.11 지금까지 우리는 14장 테스트 패턴과 안티패턴 14.1 장황한 테스트 안티패턴 14.2 복사-붙이기-변경-반복 안티패턴 14.3 도드라진 테스트 케이스 안티패턴 14.4 테스트 그룹 사이의 중복 안티패턴 14.5 테스트 무시 안티패턴 14.6 행위 주도 개발 테스트 패턴 14.7 지금까지 우리는 마무리하면서 4부 부록 A1 개발 시스템의 테스트 환경 A1.1 개발 시스템 툴 체인 A1.2 전체 테스트 빌드를 위한 메이크파일 A1.3 더 작은 테스트 빌드 A2 Unity 레퍼런스 A2.1 Unity 테스트 파일 A2.2 Unity 테스트 main A2.3 Unity 테스트 조건 검사 A2.4 명령줄 옵션 A2.5 타깃에서 Unity 실행하기 A3 CppUTest 레퍼런스 A3.1 CppUTest 테스트 파일 A3.2 테스트 main A3.3 테스트 조건 검사 A3.4 테스트 실행 순서 A3.5 기본 뼈대 파일을 생성해주는 스크립트 A3.6 타깃에서 CppUTest 실행하기 A3.7 CppUTest 테스트를 Unity로 변환하기 A4 시작하기 단계를 마친 LedDriver A4.1 Unity로 작성된 초기 LedDriver 테스트 A4.2 CppUTest로 작성된 초기 LedDriver 테스트 A4.3 LedDriver 초기 인터페이스 A4.4 LedDriver 뼈대 구현 A5 OS 분리 계층 예제 A5.1 대체 가능한 동작을 보장하는 테스트 케이스 A5.2 POSIX 구현 A5.3 Micrium RTOS 구현 A5.4 Win32 구현 A5.5 분리 계층이 애플리케이션의 짐을 가져가기 참고문헌 찾아보기
저자 소개
저자 : 제임스W.그레닝
    제임스 W. 그레닝 (James W. Grenning)
    제임스 그레닝은 전세계에 걸쳐 교육과 코칭, 컨설팅을 한다. 그는 오랜 경험을 통해 소프트웨어 개발의 기술적 측면 뿐만 아니라 비즈니스적 측면에도 뛰어나다. 제임스는 애자일 개발 프랙티스를 임베디드 분야에 도입하는 데 앞장서고 있다. 그는 플래닝 포커를 발명했고, 2001년 2월 '애자일 소프트웨어 개발 헌장'을 작성한 이들 중 한 명이다.

    옮긴이 신제용
    현재 LG전자 SW역량강화센터에 근무 중이며 개발자 코칭, 기술 교육을 주 업무로 하고 있다. 사내 개발자 커뮤니티와 기술 세미나와 같은 행사를 기획 운영하고 있다. 사외 커뮤니티 활동으로는 GDG(Google Developer Group) Seoul 운영자를 맡고 있다.

    >옮긴이 한주영
    LG전자 SW역량강화센터에 근무 중이다. 개발자들을 대상으로 교육을 하기도 하고, 함께 리팩터링을 하거나 단위테스트를 작성한다. 스크럼마스터로 팀을 지원하는 경우도 있다. C와 C++를 거쳐 최근에는 안드로이드에서 TDD를 전파하고 있다. 『사용자 스토리』 『스크럼과 XP』를 공역했다.

    도서리뷰

    이 책을 읽고 어떤 느낌을 받으셨나요?
    리뷰를 남기고 다른 독자들과 함께 공유해보세요.

    안내 열기구매(배송/수령완료) 후 리뷰를 작성하시면 적립금 300원을 드려요!

    등록된 리뷰가 없습니다

    첫번째 리뷰어가 되어주세요

    교환/반품/환불
    반품/교환방법
    • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
    • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
    반품/교환 가능기간
    • 변심반품의 경우 수령 후 7일 이내
    • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용
    • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 만화, 잡지, 수험서 및 문제집류
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    상품 품절
    • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    매장에서 사용할 수 있는 바코드가 있어요!