logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

소프트웨어 빌드 시스템 원리와 활용

소프트웨어 빌드 시스템 원리와 활용

피터 스미스 (지은이), 윤창석, 김선일, 권오범, 정승원 (옮긴이)
  |  
에이콘출판
2014-07-31
  |  
45,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 40,500원 -10% 0원 2,250원 38,250원 >
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

소프트웨어 빌드 시스템 원리와 활용

책 정보

· 제목 : 소프트웨어 빌드 시스템 원리와 활용 
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9788960775671
· 쪽수 : 700쪽

책 소개

소프트웨어 빌드의 기본 개념부터 숙련된 전문가급 조언을 제공한다. 가장 널리 사용되는 GNU Make와 Ant, SCons, CMake를 활용하여 예제를 다루고 있어 실무에 바로 적용할 수 있다.

목차

1부 _ 빌드 시스템의 기초
1장 빌드시스템 개요
빌드 시스템이란?
___컴파일형 언어
___인터프리트형 언어
웹 기반 애플리케이션
___단위 테스트
___정적 분석
___문서 생성
빌드 시스템의 구성 요소
___버전 관리 도구
___소스와 오브젝트 트리
___컴파일 도구와 빌드 도구
___빌드 머신
___릴리스 패키징과 타겟 머신
빌드 프로세스와 빌드 기술
빌드 시스템을 어떻게 사용하는가?
___빌드 관리 도구
빌드 시스템 품질
정리

2장 Make 기반 빌드 시스템
계산기 프로그램 예제
간단한 Makefile 작성
Makefile의 간결화
빌드 타겟 추가
프레임워크 사용
정리

3장 프로그램의 런타임 뷰
실행 프로그램
___네이티브 기계어 코드
___모놀리식 시스템 이미지
___전체가 인터프리트되는 프로그램
___인터프리트된 바이트 코드
라이브러리
___정적 링크
___동적 링크
설정 파일과 데이터 파일
분산형 프로그램
정리

4장 파일 타입과 컴파일 도구
C/C++
___컴파일 도구
___소스 파일
___어셈블리 언어 파일
___오브젝트 파일
___실행 프로그램
___정적 라이브러리
___동적 라이브러리
___C++ 컴파일
자바
___ 컴파일 도구
___소스 파일
___오브젝트 파일
___실행 프로그램
___ 라이브러리
C#
___컴파일 도구
___소스 파일
___실행 프로그램
___라이브러리
기타 파일 타입
___ UML 기반 코드 생성
___그래픽 이미지
___XML 구성 파일
___국제화와 리소스 번들
정리

5장 하위 타겟과 빌드 변형
하위 타겟 빌드
소프트웨어의 여러 에디션 빌드
___빌드 변형 구체화
___코드의 다양화
서로 다른 타겟 아키텍처 빌드
___다중 컴파일러
___플랫폼에 특성화된 파일이나 함수
___다중 오브젝트 트리
정리

2부 _ 빌드 도구
6장 Make
GNU Make 프로그래밍 언어
___종속성 그래프를 만드는 Makefile 규칙
___Makefile 규칙 유형
___Makefile 변수
___기본 제공 변수와 규칙
___데이터 구조체와 함수
___프로그램 흐름 이해
___추가 참고 도서
빌드 시스템 적용 사례
___시나리오 1: 단일 디렉터리의 소스코드
___시나리오 2(a): 여러 디렉터리의 소스코드
___시나리오 2(b): 여러 디렉터리를 지원하는 재귀 Make
___시나리오 2(c): 여러 디렉터리를 지원하는 포함 Make
___시나리오 3: 새로운 컴파일 도구 정의
___시나리오 4: 여러 변형으로 빌드
___시나리오 5: 빌드 트리 클리닝
___시나리오 6: 잘못된 빌드 디버깅
찬사와 비판
___찬사
___비판
___평가
유사 도구
___버클리 Make
___NMake
___ElectricAccelerator와 SparkBuild
정리

7장 Ant
Ant 프로그래밍 언어
___ 'Hello World'에서 한 걸음 더 나아가기
___타겟의 정의와 사용
___Ant의 제어 흐름
___속성 정의
___기본 제공 태스크와 옵션 태스크
___여러 파일과 디렉터리 선택
___조건
___Ant 언어의 확장
___추가 참고 문헌
빌드 시스템 적용 사례
___시나리오 1: 단일 디렉터리의 소스코드
___시나리오 2(a): 여러 디렉터리의 소스코드
___시나리오 2(b): 여러 디렉터리의 여러 build.xml 파일
___시나리오 3: 새로운 컴파일 도구 정의
___시나리오 4: 여러 변형으로 빌드
___시나리오 5: 빌드 트리 클리닝
___시나리오 6: 잘못된 빌드 디버깅
찬사와 비판
___찬사
___비판
___평가
유사 도구
___NAnt
___MS 빌드
정리
8장 SCons
SCons 프로그래밍 언어
___파이썬 프로그래밍 언어
___간단 컴파일
___빌드 환경 관리
___프로그램 흐름과 종속성 분석
___리빌드할 시기 결정
___언어 확장
___기타 흥미로운 기능
___추가 참고 문헌
빌드 시스템 적용 사례
___시나리오 1: 단일 디렉터리의 소스코드
___시나리오 2(a): 여러 디렉터리의 소스코드
___시나리오 2(b): 여러 SConstruct 파일
___시나리오 3: 새로운 컴파일 도구 정의
___시나리오 4: 여러 변형으로 빌드
___시나리오 5: 빌드 트리 클리닝
___시나리오 6: 잘못된 빌드 디버깅
찬사와 비판
___찬사
___비판
___평가
유사 도구
___Cons
___Rake
정리

9장 CMake
CMake 프로그래밍 언어
___CMake 언어 기초
___실행 프로그램과 라이브러리 빌드
___흐름 제어
___크로스플랫폼 지원
___네이티브 빌드 시스템 생성
___기타 흥미로운 기능과 추가 참고 문헌
빌드 시스템 적용 사례
___시나리오 1: 단일 디렉터리의 소스코드
___시나리오 2: 여러 디렉터리의 소스코드
___시나리오 3: 새로운 컴파일 도구 정의
___시나리오 4: 여러 변형으로 빌드
___시나리오 5: 빌드 트리 클리닝
___시나리오 6: 잘못된 빌드 디버깅
찬사와 비판
___찬사
___비판
___평가
유사 도구
___Automake
___Qmake
정리
10장 이클립스
이클립스의 개념과 GUI
___프로젝트 생성
___프로젝트 빌드
___프로젝트 실행
___내부 프로젝트 모델 사용
___기타 빌드 기능
___추가 참고 문헌
빌드 시스템 적용 사례
___시나리오 1: 단일 디렉터리의 소스코드
___시나리오 2: 여러 디렉터리의 소스코드
___시나리오 3: 새로운 컴파일 도구 정의
___시나리오 4: 여러 변형으로 빌드
___시나리오 5: 빌드 트리 클리닝
___시나리오 6: 잘못된 빌드 디버깅
찬사와 비판
___찬사
___비판
___평가
유사 도구
___C/C++ 개발 도구인 이클립스 CDT
정리

3부 _ 고급 주제
11장 종속성
종속성 그래프
___증분 컴파일
___전체, 증분, 하위 타겟 빌드
잘못된 종속성 문제
___누락된 종속성이 런타임 에러를 유발시키는 문제
___누락된 종속성이 컴파일 에러를 유발시키는 문제
___원치 않는 종속성이 과도한 재빌드를 유발시키는 문제
___원치 않는 종속성이 종속성 분석을 실패하게 하는 문제
___순환 종속성 문제
___종속성 대용으로 암묵적 시퀀싱에 관한 문제
___Clean 타겟이 제대로 클리닝하지 못하는 문제
1단계: 종속성 그래프 계산
___정확한 종속성 정보 수집
___종속성 그래프 캐싱
___캐싱된 종속성 그래프 갱신
2단계: 만료된 파일 알아내기
___타임스탬프 기반 메소드
___체크섬 기반 메소드
___플래그 비교
___기타 고급 메소드
3단계: 컴파일 단계 시퀀싱
정리

12장 메타데이터로 빌드
디버깅 지원
프로파일링 지원
커버리지 지원
소스코드 문서화
단위 테스트
정적 분석
빌드 시스템에 메타데이터 추가
정리

13장 소프트웨어 패키징과 설치
아카이브 파일
___패키징 스크립트
___기타 아카이브 포맷
___개선 방법
패키지 관리 도구
___RPM 패키지 관리 포맷
___rpmbuild 프로세스
___RPM 명세 파일의 예
___명세 파일로부터 RPM 파일 작성
___RPM 예제 설치
커스터마이즈된 GUI 설치 도구
___널소프트 스크립터블 인스톨 시스템(NSIS)
___설치 스크립트
___페이지 정의
___라이선스 페이지
___디렉터리 선택
___주 컴포넌트
___옵션 컴포넌트
___사용자 정의 페이지 정의
___설치 페이지와 설치 제거 프로그램
정리

14장 버전 관리
버전 관리로 할 수 있는 일
___빌드 기술 파일
___도구 참조
___큰 바이너리 파일
___소스 트리 구성
소스 트리에서 하지 말아야 할 것
___소스 트리에 생성된 파일
___버전 관리하에서 생성된 파일
___빌드 관리 스크립트
버전 번호 붙이기
___버전 번호 붙이기 시스템
___버전 번호 편성과 업데이트
___버전 번호 저장과 검색
정리

15장 빌드 머신
네이티브 컴파일과 크로스컴파일
___네이티브 컴파일
___크로스컴파일
___혼합 환경
중앙 집중식 개발 환경
___빌드 머신이 다른 이유
___여러 다른 빌드 머신 관리
오픈소스 개발 환경
GNU Autoconf
___상위 레벨 작업 흐름
___Autoconf 예제
___authheader와 autoconf 실행
___빌드 머신상의 configure 스크립트 실행
___구성 정보 사용
정리

16장 도구 관리
도구 관리 규칙
___도구 규칙 #1: 노트를 작성하라
___도구 규칙 #2: 소스코드는 반드시 버전 관리하에 두라
___도구 규칙 #3: 주기적으로 도구를 업데이트하라
___도구 규칙 #4: 도구 바이너리의 버전 관리
___규칙 깨기
자신만의 컴파일 도구 작성
렉스와 야크로 사용자가 작성한 도구
정리

4부 _ 확장
17장 최종 사용자를 위한 복잡성 감소
빌드 프레임워크
___빌드 기술에서 개발자 해당 부분
___빌드 기술에서 프레임워크 부분
___구성상의 규약
___Maven: 예제 빌드 도구
여러 다른 변형 지원을 피해야 하는 이유
___테스트해야 할 다른 변형들을 갖게 됨
___소스코드가 난해해짐
___빌드 시간이 증가할 수 있음
___더 많은 디스크 공간이 요구됨
복잡성을 줄이기 위한 다양한 방법
___최신 빌드 도구를 사용
___자동으로 종속성을 검출
___생성된 파일을 소스 트리 외부에 보관
___빌드 트리 클리닝이 올바르게 동작하는지 확인
___첫 번째 에러 후 빌드를 중단
___의미 있는 에러 메시지를 제공
___입력 매개변수의 유효성을 확인
___빌드 스크립트를 필요 이상으로 복잡하게 만들지 마라
___애매한 언어 기능 사용을 피하라
___빌드 프로세스를 제어하기 위해 환경 변수 사용을 자제하라
___릴리스와 디버그 빌드가 유사한지 확인하라
___실행될 정확한 명령을 표시하라
___도구에 대한 버전 관리 참조
___빌드 명령의 버전 관리
___컴파일 플래그 변경 자동 검출
___빌드 시스템에서 버전 관리 도구 호출을 자제하라
___가능한 한 자주 지속적인 통합을 하라
___단일 형식의 빌드 머신에 대한 표준화를 하라
___단일 컴파일러에 대한 표준화를 하라
___#ifdef로 코드가 난잡해지는 것을 피하라
___의미 있는 심볼 이름을 사용하라
___오래된 코드를 제거하라
___소스 파일을 이중화하지 말라
___일관성 있는 빌드 시스템을 사용하라
빌드 시스템 변경에 대한 일정과 인력 관리
정리

18장 빌드 크기 관리
모놀리식 빌드의 문제점
컴포넌트 기반 소프트웨어
___컴포넌트 사용의 장점
___컴포넌트란?
___컴포넌트를 단일 프로젝트로 통합
사람과 프로세스 관리
___개발 팀 구조
___컴포넌트 라인업 관리
___컴포넌트 캐시 관리
___새로운 소프트웨어 기능 조정
아파치 아이비
정리

19장 더 빠른 빌드
빌드 시스템 성능 측정
___시동 단계에서 성능 측정
___컴파일 단계에서의 성능 측정
___성능 측정 도구
___문제 해결: 성능 개선
빌드 회피: 불필요한 재빌드 제거
___오브젝트 파일 캐싱
___스마트 종속성
___기타 빌드 회피 기술
병렬 처리
___빌드 클러스터/클라우드
___병렬 빌드 도구
___확장성의 한계
디스크 사용 줄이기
정리

저자소개

피터 스미스 (지은이)    정보 더보기
캐나다 밴쿠버에 있는 아라피키 솔루션(Arapiki Solutions, www.arapiki.com)의 프리랜서 컨설턴트다. 1998년 브리티시 컬럼비아 대학(University of British Columbia)에서 컴파일러와 프로그래밍 언어 디자인에 관해 박사학위를 취득했으며, 수년 동안 학부 학생들을 위해 컴파일러 디자인과 프로그래밍 언어 디자인, 소프트웨어 공학, 컴퓨터 네트워크를 강의했다. 또한 3년 동안 OOPSLA(Object-Oriented Programming, Systems, Languages & Application) 컨퍼런스 위원회의 일원으로 활동했다. 주로 통신 관련 산업에서 소프트웨어 엔지니어, 프로젝트 매니저, 툴 지원 팀의 매니저로 활동했다. 최근에는 고객의 생산성 향상을 위한 신규 소프트웨어 도구의 개발이나 적용 관련한 컨설팅 업무를 하고 있다.
펼치기
윤창석 (옮긴이)    정보 더보기
포스텍 컴퓨터공학과에서 학사 과정을 마쳤다. 삼성테크윈 선행기술연구소를 거쳐 현재는 카카오에 재직 중이다.
펼치기
김선일 (옮긴이)    정보 더보기
일본 야마카타대학에서 컴퓨터 공학을 전공한 후 동경대학에서 전자정보학 석사과정을 졸업했다. 그후 삼성테크윈㈜에서 서버 및 플랫폼 개발 업무에 종사했으며, NHN㈜에서 LINE 게임 플랫폼 일에 종사했다. 2014년 현재 LG전자㈜ CTO 부문 소프트웨어 역량 강화 센터에서 소프트웨어 개발에 필요한 방법론과 개발 툴킷, SW 인프라 구축에 매진 중이다. 관심 분야는 네트워크 프로토콜, 개발 툴킷, 대형 플랫폼 개발과 운영이며, 머리가 복잡할 때에는 양재천을 달리거나 첼로 연주를 한다.
펼치기
권오범 (옮긴이)    정보 더보기
플로리다 주립대학(University of Florida)에서 컴퓨터 공학과 석사학위를 받았고, 삼성테크윈을 거쳐 2014년 현재는 NHN㈜ 엔터테인먼트에서 모바일 게임을 위한 UDP 기반 네트워크 엔진 및 프레임워크를 개발 중이다. 초급 개발자를 벗어나기 위해 열심히 공부중이고, 사랑스런 아내와 두 아들과 함께 살고 있는 행복한 개발자다.
펼치기
정승원 (옮긴이)    정보 더보기
고려대학교 정보공학과 및 동 대학원에서 네트워크를 전공했으며, 미국 플로리다 주립대학 전자 및 컴퓨터 공학에서 석사 및 박사 과정을 졸업 후 2014년 현재 삼성 테크윈㈜ R&D 센터에서 통합 통제 SW 시스템 개발에 종사 중이다.
펼치기

추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책