로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

오픈소스 파워툴

   
지은이 한동준, 김도균   |   출판사 지앤선  |   발행일 2017년 07월 10일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 27,000원24,300원 10%
마일리지 5% 1,350원
발행일 2017-07-10
ISBN 1187497045 | 9791187497042
기타정보 국내서 | 356쪽 | 일반
예상출고일 1~2일 이내 (근무일기준)
배송비 무료배송
   
일반
종합지수 0p
월간지수 20p 3 위
   
 

이 책은 요구사항부터 지속적 통합까지 소프트웨어 개발 환경을 구성하는 오픈소스 ALM 도구를 다룬다.
대상 도구는 다음과 같다.

⚫ 이슈/요구사항/결함 관리: Redmine, Mylyn
⚫ 버전 관리: Subversion, Git, SCMManager
⚫ 지속 통합: Jenkins
⚫ 빌드 관리: Maven
⚫ 소스코드 품질 관리: PMD, JavaNCSS, JDepend
⚫ 테스트 자동화: JUnit, Cobertura
⚫ 애플리케이션 배포: NSIS

DevOps와 비교하자면 Dev, 즉 개발과 관련한 도구를 다룬다. Ops, 즉 지속 배포, 서버 관리, 모니터링은 이 책에서 다루지 않는다. 다만, Jenkins와 같은 도구는 DevOps 전반을 이해하는데 도움이 된다. 이 책의 목적은 Jenkins, PMD, Git 등 오픈소스 ALM 도구의 설치, 필수 설정, 기본 사용 방법을 쉽게 설명하는 것이다.

각 도구의 고유 기능과 서로 연동하는 부분을 도구 별로 설명했지만, 실제 개발은 이 도구가 톱니바퀴처럼 엮어서 진행한다. 14장은 실제 프로젝트를 시작한다는 가정 하에, 전체 도구를 함께 사용하는 시나리오를 설명한다. 도구에 대한 각론과 함께 큰 그림을 이해할 수 있다. 개발과 관련한 부분은 소프트웨어의 특성 상 개발 언어와 밀접하게 연관된다. 이 책에서 설명하는 빌드, 소스코드 품질 관리, 테스트 자동화는 Java 개발이 대상이다. 그러나 이슈 관리, 버전 관리, 지속 통합은 개발 언어에 상관없이 적용할 수 있다. 저자는 이 도구를 임베디드 소프트웨어 개발에 잘 적용하고, C 언어를 위한 품질 관리 및 테스트 자동화 도구와 연동해서 사용하고 있다. 이 책의 내용을 이해하면, 개발 언어와 상관없이 이 도구를 적용할 수 있다.



대상 독자
- 소프트웨어 개발에 오픈소스 ALM 도구를 처음 적용하는 개발자
- 소스코드 품질 수준에 관심있는 QA
- DevOps 구현을 고민하는 관리자

이 책의 구성

1장 오픈소스 ALM
시작은 딱딱하다. 책 전체에서 가장 재미없다. 왜 ALM이 필요하고, 오픈소스를 사용하는 장/단점을 설명한다. 유사한 상용 도구를 소개하지만, 기승전 '오픈소스'로 마무리한다.

2장 Maven
Java의 빌드 도구다. 유사한 도구로는 Ant와 Gradle이 있다. Maven을 개발을 위한 정해진 소스코드 구조를 생성해주고, 빌드와 관련한 설정과 명령어을 제공한다. 이 장은 Maven의 설치, 프로젝트 생성, 설정 파일인 pom.xml 파일을 다룬다. 소스코드 품질 관리 도구와 테스트 자동화 도구가 빌드 시 함께 동작하는데, 이 설정을 위한 기본 사항을 다룬다.

3장 Subversion
Subversion은 팀 부장님 같다. 경험과 적용 사례가 많아 궁금한 것은 바로 알려줄 것 같은 분위기다. 요즘은 너무 Git이 핫해서 Subversion은 고리타분할거 같지만, 안정적이고, 유용하고, 앞으로도 더 쓰일 것이다. 서버를 설치하고 운영하는 방법, Eclipse의 기본 기능에서 사라진 Subversion의 플러그인을 설치하고 사용하는 방법을 다룬다.

4장 Git
Git은 핫하다. 이미 여러 책과 좋은 설명서가 공개되어 있다. 이 장은 Git과 Subversion의 차이, Git을 위한 서버 설치 및 운영, Eclipse에서 Git 사용 방법을 다룬다. Subversion을 주로 사용했다면, Git은 참 어렵다. Git의 기본적인 이해와 Jenkins에서 연동하기 위한 수준 정도로 다룬다.

5장 SCMManager
점차 Git의 사용율이 높아진다 해도, 기존 Subversion을 사용했다면 Git으로 한 번에 이관하기란 쉽지 않다. 그렇다고 Subversion, Git 서버를 각각 운영하는 것도 어렵다. 이런 상황에서 SCMManager를 사용해보자. 딱, 통합 저장소 관리, 이 목적에 맞는 도구이다. SCMManager에서 Subversion, Git, 심지어 Mercurial 저장소까지 통합 운영할 수 있다. 통합 운영이란, 권한까지 함께 사용한다는 의미다. LDAP을 지원하기 때문에, 회사의 계정 서버와 쉽게 연동할 수 있다. 다만 GitHub이나 GitBlit처럼 Pull Request와 같은 Git 만의 기능은 지원하지 않는다.

6장 Jenkins
이 책에서 가장 핵심적인 부분이다. 대부분의 도구를 Jenkins와 연결한다. 지속 통합, 즉 자주 빌드하는 것은 중요하다. Maven으로 빌드하며 Maven에 통합한 소스코드 품질 관리와 테스트 자동화 도구를 함께 실행한다. 물론 관련 소스코드와 설정은 Subversion이나 Git에 있다. 실행 결과는 Jenkins에 차트로 표시된다. 아마 하루에 한 번 이상은 빌드할 것이고, 추세를 볼 수 있다. Jenkins는 이 모든 것을 언제하고 어떻게 보일지 결정한다.

7장 JUnit
단위 테스트의 표준과 다름없는 도구다. 이미 수많은 다른 언어로 포팅되었다. 테스트 자체에 대한 설명과 JUnit의 기본 사용 방법을 살펴본다. Eclipse에서 JUnit을 이용해 테스트를 작성하고 실행하는 방법을 다룬다. Maven과 Jenkins에서 테스트를 수행하고 성공/실패 여부를 확인하자.

8장 Cobertura
JUnit으로 테스트를 하면, 결과도 중요하지만 소스코드의 어느 부분을 테스트 했는지 역시 궁금하다. 테스트가 부족한 부분이 어디인지 알아야, 보완할 수 있기 때문이다. Cobertura는 JUnit으로 테스트한 소스코드의 부분, 즉 테스트 커버리지를 알려준다. Eclipse에서 코딩하며 확인하고, Maven에서 빌드하며 확인하고, Jenkins의 지속 통합에서 확인하는 방법을 살펴본다.

9장 PMD
코딩을 하다보면 컴파일 에러는 아니지만 앞으로 결함을 발생시키거나, 다른 사람에게 혼돈을 줄 수 있는 경우가 있다. 예를 들면 자원을 사용하고 해제하지 않았거나, 너무 많은 매개변수가 있는 경우이다. PMD는 이런 문제를 분석해서 알려준다. 소스코드의 기초 체력을 탄탄하게 만들어 주는 도구다. 8장의 Cobertura 처럼, Eclipse, Maven, Jenkins에서 확인하는 방법을 살펴본다. 그 어떤 도구보다 코딩과 밀접한 도구다.

10장 JavaNCSS
소스 코드와 관련한 일반적인 통계가 필요할 때가 있다. 대표적인 것이 LOC라 부르는, 코드의 줄 수다. JavaNCSS는 주석을 제외한 소스코드의 라인 수를 계산해 알려준다. 뿐만 아니라 패키지에 속한 클래스와 메소드 수를 알려주고, 순환복잡도를 알려준다.

11장 JDepend
Robert C. Martin의 설계 품질 관련 측정값을 계산한다. 패키지를 기준으로, 호출 관계 관련한 여러 값을 알려준다. 여러분은 내가 너를 호출하는데, 너도 나를 호출하는 원형 의존성을 보게 될 것이다. 그럼 나를 수정하면, 영향 받는건 누가 될까? 이런 문제를 Eclipse, Maven, Jenkins에서 찾는 방법을 살펴본다.

12장 Redmine
JIRA와 같은 이슈 관리 도구다. 프로젝트에서 이슈, 즉 할일, 결함, 관리 이슈 등 기한을 두고 진행 상태를 파악해야 하는 것들을 관리한다. 과거에는 결함 추적 시스템 등으로 불리었다. Redmine이 정말 멋지게 쓰려면, Subversion이나 Git과 연동해야 한다.새 기능, 결함의 진행에 따라 어느 리비전에 소스코드에 반영했는지 추적할 수 있다.

13장 Mylyn
Redmine이나 JIRA는 웹 기반 시스템이다. 사용하려면 크롬과 같은 웹 브라우저를 실행하고, Remdine이나 JIRA 웹 페이지에 들어가서, 프로젝트를 찾아가고... 여튼 단계가 많다. Mylyn은 이슈 관리를 Eclipse에서 할 수 있게 한다. 개발 도중 웹 브라우저 실행 없이 IDE와 개발에만 신경쓸 수 있게 도와주는 도구다.

14장 시나리오
2장부터 13장까지 도구 별로 살펴보았다. 도구의 필요는 이해했는데, 그래서 실제 프로젝트는 어떻게 쓰지? 라는 질문에 답하는 장이다. 개발자와 ALM 관리자 역할로 구분하여 어떻게 이 도구들을 사용하며 개발이 진행되는지를 시나리오 형식으로 살펴본다.

15장 NSIS
Windows 환경에서 설치 파일을 쉽게 만들어주는 NSIS에 대하여 살펴본다.


CHAPTER 1 ALM
1.1 정의와 개념
 1.1.1 프로세스 내에서 도구와 절차의 통합
 1.1.2 각 프로세스의 연계/연동
 1.1.3 프로세스 상태의 시각화
1.2 역할에 따른 ALM의 활용
1.3 주요 도구
1.4 소프트웨어 시각화

CHAPTER 2 Java의 대표 빌드 도구, Maven
2.1 Maven 소개
2.2 설치와 설정
2.3 Maven 프로젝트 생성
2.3.1 Maven 빌드 라이프 사이클
2.3.2 pom.xml 파일 이해하기
2.4 플러그인 사용하기
2.4.1 플러그인 찾아보기
2.4.2 플러그인 사용 방법
2.4.3 Goals
2.4.4 Usage
2.4.5 플러그인 실행
2.5 Eclipse에서 사용
2.5.1 Maven 프로젝트 생성
2.5.2 pom.xml 파일 수정
2.5.3 Maven 프로젝트 빌드
2.6 요약

CHAPTER 3 소스 코드 버전 관리의 전통, Subversion
3.1 Subversion 소개
3.2 서버 설치 및 사용
3.2.1 VisualSVN 설치
3.2.2 VisualSVN Server 사용자 및 그룹 추가
3.2.3 저장소 추가
3.2.4 저장소 권한 변경
3.3 서버 저장소 백업 및 복원
3.3.1 Dump를 이용한 백업 및 복원
3.3.2 hotcopy - ‘안전한’ 복사를 이용한 백업과 복원
3.3.3 SVNBackup을 이용한 여러 저장소의 백업 및 복원
3.4 Eclipse에서 클라이언트 사용
3.4.1 Subversion 플러그인 설치
3.4.2 서버에서 저장소 체크아웃
3.4.3 수정 후 커밋
3.4.4 변경사항 업데이트
3.5 요약

CHAPTER 4 오픈소스 버전 관리의 대세, Git
4.1 Git 소개
4.1.1 서버의 중앙 집중이 아닌 분산
4.1.2 Git과 Subversion의 차이점
4.1.3 기본 용어 이해
4.2 GitHub에서 서버 사용
4.2.1 가입
4.2.2 저장소 생성
4.3 Gitblit에서 서버 사용
4.3.1 GitBlit 설치
4.3.2 사용자 및 팀 설정
4.3.3 저장소 설정
4.4 Eclipse에서 클라이언트 사용
4.4.1 GitHub에서 Clone하기
4.4.2 수정과 Commit
4.5 요약

CHAPTER 5 소스 코드 버전 관리 만능키, SCMManager
5.1 SCMManager 소개
5.2 SCMManager 설치 및 설정
5.2.1 SCMManager 설치
5.2.2 기본 설정
5.2.3 저장소 종류 설정
5.2.4 사용자 관리
5.2.5 그룹 관리
5.3 저장소 생성 및 관리
5.3.1 저장소 생성
5.3.2 저장소 권한 설정
5.3.3 저장소 불러오기
5.4 플러그인 설치
5.5 요약

CHAPTER 6 프로젝트 통합을 도와주는 집사, Jenkins
6.1 Jenkins 소개
6.2 Jenkins의 지속적 통합 프로세스
6.3 Jenkins 다운로드와 설치
6.4 기본 구성
6.4.1 시스템 설정
6.4.2 Configure Global Security 설정
6.4.3 플러그인 관리
6.5 Job 설정
6.5.1 공통 설정 항목
6.5.2 Freestyle project
6.5.3 Maven projects
6.6 Job 빌드 및 결과 확인
6.6.1 Job 빌드
6.6.2 Job 빌드 결과 확인
6.7 결론

CHAPTER 7 JUnit
7.1 JUnit 소개
7.2 JUnit을 활용한 단위 테스트
7.2.1 어설션(Assertion)
7.2.2 JUnit 어노테이션(Annotation)
7.3 Maven에서 사용
7.3.1 테스트를 위한 Maven 구조 이해
7.3.2 JUnit 테스트 실행
7.4 Jenkins에서 사용
7.5 요약

CHAPTER 8 테스트가 부족한 소스 코드는 어디일까 - Cobertura
8.1 Cobertura 개요
8.2 테스트 커버리지와 복잡도 이해
8.2.1 라인 커버리지
8.2.2 분기 커버리지
8.2.3 복잡도
8.2.4 보고서 확인 팁
8.3 Eclipse에서 사용(eCobertura)
8.4 Maven에서 사용
8.4.1 cobertura:cobertura 사용
8.4.2 cobertura:check 사용
8.5 Jenkins에서 사용
8.5.1 Cobertura 플러그인 설치
8.5.2 Maven Job에서 Cobertura 보고서 생성 설정
8.5.3 빌드 후 Cobertura 보고서 확인
8.6 요약

CHAPTER 9 소스 코드 체력단련, PMD
9.1 PMD 소개
9.2 홀로 사용
9.2.1 PMD: Rule을 이용한 정적 분석
9.2.2 CPD: 복사-붙여넣기한 중복 코드 확인
9.3 Eclipse에서 플러그인으로 이용
9.3.1 플러그인 설치
9.3.2 Eclipse PMD 전역 설정
9.3.3 Eclipse PMD 프로젝트별 설정
9.3.4 Eclipse 에서 PMD(룰 위반 검증) 사용
9.4 Maven에서 PMD 사용
9.4.1 pmd:pmd 사용
9.4.2 pmd:check 사용
9.5 Jenkins에서 PMD 사용
9.5.1 PMD 플러그인 설치
9.5.2 Maven Job으로 pmd:pmd 이용하기
9.5.3 Freestyle Job으로 PMD 이용
9.5.4 Maven Job으로 pmd:check이용 주의사항
9.6 Maven에서 CPD 사용
9.6.1 pmd:cpd 사용
9.6.2 pmd:cpd-check 사용
9.7 요약

CHAPTER 10 JavaNCSS
10.1 JavaNCSS 소개
10.2 Maven에서 구성 및 사용
10.2.1 javancss:report 사용
10.2.2 jacsncss:check 사용
10.3 Jenkins에서 구성 및 사용
10.3.1 플러그인 설치
10.3.2 Job 설정 및 실행
10.4 요약

CHAPTER 11 JDepend
11.1 JDepend 소개
11.2 Eclipse에서 사용
11.2.1 JDepend 플러그인 설치
11.2.2 JDepend 분석 결과 확인
11.3 Maven에서 사용하기
11.4 Jenkins에서 사용
11.4.1 JDepend 플러그인 설치
11.4.2 Maven Job에서 JDepend 분석 보고서 생성 설정
11.4.3 빌드 후 JDepend 분석 보고서 확인
11.5 요약

CHAPTER 12 똑똑한 개발 관리, Redmine
12.1 Redmine 소개
12.2 Redmine 설치
12.2.1 기본 설치
12.2.2 Bitnami Redmine 패키지 설치
12.3 관리자 기능(설정)
12.3.1 프로젝트
12.3.2 사용자
12.3.3 그룹
12.3.4 일감 유형
12.3.5 일감 상태
12.3.6 업무 흐름
12.3.7 사용자 정의 항목
12.3.8 설정
12.4 새 일감 추가와 관리
12.4.1 새 일감 만들기
12.4.2 일감 목록 보기
12.4.3 Gantt 차트 및 달력
12.4.4 버전 사용
12.5 저장소와의 연동
12.6 요약

CHAPTER 13 Mylyn
13.1 설치
13.1.1 커넥터 설치: 기본 방법
13.1.2 커넥터 설치: Redmine
13.1.3 커넥터 설치: JIRA
13.2 일감 확인 및 상태 변경
13.3 요약

CHAPTER 14 오픈소스 ALM 적용 시나리오
14.1 시나리오 소개
14.2 개발 준비
14.2.1 GitHub: 저장소 생성 및 권한 설정
14.2.2 Redmine: 프로젝트 생성 및 권한 설정
14.2.3 Maven: 프로젝트 생성 및 기본 설정
14.2.4 Maven: 필요 플러그인 설정
14.2.5 Jenkins: Job 설정
14.3 개발 진행
14.3.1 Redmine: 일감 생성
14.3.2 Eclipse: 구현
14.3.3 JUnit: 단위 테스트 작성 및 실행
14.3.4 Cobertura: 테스트 결과/커버리지 확인
14.3.5 PMD: 코딩 룰 위반 사례 확인
14.3.6 PMD(CPD): 중복 코드 확인
14.3.7 JDepend: 의존성 확인
14.3.8 Maven: 빌드 확인
14.3.9 Git: 커밋 및 푸시
14.3.10 Redmine: 일감 완료
14.3.11 Jenkins: 통합 빌드
14.4 요약

CHAPTER 15 NSIS
15.1 개요
15.2 설치
15.2.1 +NSIS 설치
15.2.2 HM NIS Edit 설치
15.3 Eclipse 설치 파일 생성
15.3.1 Eclipse 준비
15.3.2 HM NIS Edit로 설치 스크립트 작성
15.3.3 NSIS로 설치 파일 생성
15.4 설치 파일 확인
15.4.1 설치 파일로 Eclipse 설치
15.4.2 Eclipse 실행 확인
15.5 결론



저자: 한동준
KTDS, KTH, LS 산전에서 통신사 SI/SM, 모바일 앱, 임베디드 SW의 QA로 활동하고, 지금은 소프트웨어 안전성 보증 연구센터에서 다양한 분야의 오픈소스 ALM 적용을 지원하고 있다. CMMI, SPICE, A-SPICE 심사원이기도 하며 도구와 프로세스의 적절한 조화를 추구한다. 독립 IT 기술자의 저술 및 강연 상호부조 네트워크인 GoDev(www.godev.kr)의 일원이다.
저자 : 김도균
2012년 대기업의 고용된 엔지니어로 15년간의 삶을 정리하고 독립 IT 기술자가 되어 4 년째 자기 시간의 주인으로 포트폴리오 인생을 살고 있다. ‘강철벼룩’이라는 필명으로 글을 쓰고 번역하는 엔지니어다. Microsoft의 공인 강사(MCT)이며 ‘Office Servers and Services’와 ‘Visual Studio and Development Technologies’ 분야의 MVP이다.독립 IT 기술자의 저술 강연 상호부조 네트워크인 GoDev(www.godev.kr)의 리더이다.
등록된 서평이 없습니다.
R로 배우는 코딩...
장용식·강희구 지음
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
무한상상 DIY 드론 A to Z...
이승경 저
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
시작하세요! 도커...
용찬호
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
김도균 의 최근 저서
 
지적기사 이론 및 문제해설(2017)
32,400원
(10%↓+5%)
 
바로바로 HTML5
25,200원
(10%↓+5%)
 
지적산업기사 이론 및 문제해설(2015)
31,500원
(10%↓+5%)
 
지적기사 이론 및 문제해설(2015)
32,400원
(10%↓+5%)
 
측량 및 지형공간정보 산업기사 과년도 4주완성 필기(2015)
19,800원
(10%↓+5%)
 
지앤선 출판사의 신간
웹으로 시작하는 모바일 게임
배철민, 윤정민, 신호철 저
20,700원
(10%↓+5%)
 
러닝 아카: 더 비기닝
제이슨 굿윈 저
24,300원
(10%↓+5%)
 
스타트업 CEO를 위한 모든 것
양준철 저
13,500원
(10%↓+5%)
 
모던 자바 웹 UI 바딘 프레임워크
김대성 저
28,800원
(10%↓+5%)
 
파이썬 머신러닝
세바스티안 라슈카 저
28,800원
(10%↓+5%)
 
이메일주소수집거부