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

Head First Software Development

 [더 쉽고 재미있게 소프트웨어를 개발하는 방법]
   
지은이 댄 필로네   |   출판사 한빛미디어  |   발행일 2008년 11월 30일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 29,000원28,420원 2%
마일리지 0% 0원
발행일 2008-11-30
ISBN 8979146221 | 9788979146226
기타정보 번역서 | 500쪽
예상출고일
배송비 무료배송
   
컴퓨터공학
종합지수 5p 77 위
   
이 책의 원서
  Head First Software Development
O'REILLY | Dan Pilone
 

재미있게 소프트웨어를 개발하고 싶은가?

훌륭한 소프트웨어 개발을 위한 『HEAD FIRST SOFTWARE DEVELOPMENT』. 쉬우면서도 재미있게 소프트웨어를 개발하는 방법을 공개하고 있다. 기본적인 소프트웨어 개발 기법은 물론, 리팩토링, 테스팅 등의 효율적인 시스템 관리법을 재미있는 예제를 통해 배워나간다.

사용자 스토리가 고객을 얼마나 만족시키는지에 대해서도 알려주면서, 소맥률을 추적하여 프로젝트를 일정에 맞추는 방법, 팀이 프로그램을 개발하는 속도를 점검하는 방법, 그리고 소프트웨어 개발에 대한 기법과 도구를 마스터하는 방법 등을 가르쳐주고 있다. 또한 테스트 주도 개발에 대해서도 중점적으로 설명하여 실패를 피해가는 방법에 대해서도 설명한다.
1. 훌륭한 소프트웨어 개발하기
고객을 기쁘게 하라

Tom’s Trails을 온라인으로
거의 모든 프로젝트에는 두 가지 중요한 고민이 있습니다.
개발에 대한 빅뱅(Big Bang)식 접근
2주가 지났습니다.
빅뱅 개발은 보통 큰 혼란(BIG MESS)으로 끝이 납니다.
훌륭한 소프트웨어 개발이란...
이터레이션으로 목표 달성하기
각 이터레이션은 작은 프로젝트와 같습니다.
이터레이션이 품질 좋은 소프트웨어를 만듭니다.
고객의 마음은 변합니다.
수정을 어떻게 하느냐는 여러분에게 달려있습니다.
여러분은 이미 오랫동안 개발을 진행해 왔습니다.
이터레이션은 변화를 자동으로 (그것도 잘) 관리합니다.
여러분의 소프트웨어는 출시 될 때까지 완료된 게 아닙니다.
소프트웨어 개발도구 상자 활용하기

2. 요구사항 수집하기
고객이 원하는 것을 알아내야 합니다

오리온 우주투어 차세대 프로젝트
고객에게 더 많은 정보를 달라고 말하세요.
고객과의 블루스카이
때로는 블루스카이를 진행하는 게 아래처럼 될 수 있습니다.
사람들이 정말로 원하는 것을 찾아보세요.
여러분의 요구사항은 고객지향적 이어야 합니다.
고객 피드백으로부터 요구사항 확장하기
사용자 스토리로 프로젝트에서 무엇을 해야 하는지를 정의하고... 언제 정의해야 하는지를 알 수 있습니다.
짤막한 대화
계획 포커 게임
가정은 살아있는 동안 재판을 받습니다.
오래 걸리는 사용자 스토리 추정은 잘못된 추정입니다.
계획 포커의 목적은 의견 수렴입니다.
이터레이션 주기를 추정하는 것에 대한 요구사항
마지막으로, 전체 프로젝트에 대해 추정할 준비가 되었습니다.

3. 프로젝트 계획하기
성공을 위한 계획

고객은 바로 지금 자신들의 소프트웨어를 갖길 원합니다.
고객과 함께 우선순위 정하기
마일스톤 1.0에 뭐가 있는지 알게 되었습니다.
기능이 맞지 않으면 우선순위를 재조정합니다.
사람을 더 투입하면 더 큰 성과가 날까요?
적정 수준의 마일스톤 1.0을 위해 일하세요.
이터레이션은 짧고 달콤해야 합니다.
게획을 현실과 비교하기
개발속도는 추정 값에서 부담되는 부분을 책임집니다.
프로그래머는 꿈결 같은 시간을 생각합니다.
개발자는 현실적인 시간을 생각합니다.
언제 이터레이션이 너무 길어지나요?
이터레이션 들어가기 전에 개발속도 반영하기
평가를 위한 시간
[피곤하게 하는] 고객 다루기
벽에 커다란 현황판을 만드세요.
팀의 생기를 없애는 방법

4. 사용자 스토리와 태스크
실제로 일을 시작해 봅시다

iSwoon을 소개합니다.
태스크의 합이란 무엇을 의미할까요?
남은 작업 구성하기
현황판에 태스크 붙이기
태스크상의 일 시작하기
태스크는 진행 중 영역에 있을 때만 진행되고 있는 겁니다.
만약 동시에 두 가지 일을 한다면 어떻게 될까요?
첫 번째 스탠드업 미팅...
태스크 1: Date 클래스 생성하기
스탠드 업 미팅: 다섯 번째 날, 첫 주의 마지막...
스탠드 업 미팅: 두 번째 주, 두 번째 날...
이번 장의 훼방꾼이 나타났어요.
계획되지 않은 태스크를 추적해야 합니다.
계획하지 않은 태스크가 소멸 비율을 증가시킵니다.
속도가 도움이 됩니다만...
할 일이 많이 남았습니다.
...하지만 우리가 어디에 있는지를 정확히 알고 있습니다.
노출된 속도

5. 충분히 구현 가능한 좋은 설계
훌륭한 설계로 작업하기

iSwoon이 심각한 문제에 빠졌습니다.
이 설계는 단일 책임 원리를 따르지 않습니다.
설계에서 다중 책임을 갖는 곳 찾기
다중 책임을 단일 책임으로 전환하기
설계는 SRP를 준수해야 합니다. 또 DRY도 준수해야 합니다.
리팩토링 후 스탠드업 미팅
계획되지 않은 태스크도 태스크일 뿐입니다.
데모 자체도 태스크의 일부입니다.
모든 것이 완료되면, 이터레이션은 끝이 납니다.

6. 버전 관리
안전한 개발

새로운 계약을 따냈습니다 - 비트박스 프로
그리고 계속해서 GUI 작업...
고객에게 새로운 비트박스 선보이기
버전 관리를 시작합시다.
먼저 여러분의 프로젝트를 설치합니다.
...이제 코드를 체크인 또는 체크아웃할 수 있습니다.
대부분의 버전 관리 도구가 여러분이 직면한 문제를 해결해 줄 것입니다.
서버는 수정사항을 자동으로 합치려 합니다.
버전 관리 소프트웨어가 변경사항을 합칠 수 없으면 충돌이 발생했음을 알립니다.
이터레이션이 많아지면 사용자 스토리도 많아집니다.
우리는 소프트웨어에 대해 하나 이상의 버전을 갖고 있습니다.
좋은 커밋 메시지는 예전 소프트웨어를 찾기 쉽게 해줍니다.
이제 1.0 버전을 체크아웃할 수 있습니다.
(긴급) 스탠드업 미팅
여러분의 버전에 태그를 생성하세요.
태그, 브랜치, 트렁크... 아이고!
1.0 버전 수정하기.. 이번엔 실제 상황입니다.
이제 두 개의 코드 기반을 갖게 되었습니다.
언제 브랜치를 사용하면 안될까요?
브랜치 관리를 잘 하려면
버전 관리는 다음과 같은 작업을 수행합니다.
버전 관리는 여러분의 코드가 실제로 작동하는지 보장하지 않습니다.
소프트웨어 개발 도구상자 활용하기

6.5 작성한 코드 빌드하기
b 슬롯 안에 a 탭을 넣으세요

개발자는 기억력 좋은 독자가 아닙니다.
한 번에 프로젝트 빌드하기
앤트(Ant): 자바 프로젝트를 위한 빌드 도구
프로젝트(proejct), 프로퍼티(property), 타겟(target), 태스크(task) 엘리먼트
좋은 빌드 스크립트...
좋은 빌드 스크립트는 기본 사항 외에 더 많은 것을 수행합니다.
빌드 스크립트도 코드입니다.
신입 개발자는 두 가지를 얻었습니다.
소프트웨어 개발 도구상자 활용하기

7. 테스트와 지속적인 통합
코드 분해하기

모든 것은 항상 잘못될 수 있습니다.
시스템을 바라보는 시각에는 3가지가 있습니다.
블랙박스 테스트는 입출력 값에 집중합니다.
그레이박스 테스트는 보다 코드 안쪽을 살펴봅니다.
화이트박스 테스트는 구현코드 내부를 확인합니다.
한 번에 모든 것을 테스트하기
테스트 프레임워크에서 테스트 자동화하기
테스트를 실행하기 위해 프레임워크 사용하기
크루즈컨트롤(Cruise Control)의 CI 사이클
테스트는 코드가 정상적으로 작동하는 것을 보장합니다. 맞나요?
모든 코드를 테스트한다는 것은 모든 분기문을 테스트한다는 의미입니다.
무엇이 테스트되었는지 알기 위해서 커버리지 리포트를 사용하세요.
높은 커버리지률을 갖는 것이 항상 쉬운 것은 아닙니다.
개발 환경에서 버전 관리 도구가 하는 것들
소프트웨어 개발 도구상자 활용하기

8. 테스트 주도 개발
코드는 항상 설명하기 쉽게 작성하세요

테스트는 나중에 하는 것이 아니고 처음부터 하는 것입니다.
그래서 처음부터 테스트를 수행할 예정입니다.
테스트 주도 개발(TDD)에 온 것을 환영합니다.
여러분의 첫 번째 테스트...
… 끔찍하게 실패한다는 것입니다.
테스트를 녹색으로 변경하기
적색, 녹색 그리고 리팩토링...
TDD에서 테스트는 여러분의 개발을 이끌어 줍니다.
테스크를 완료했다는 것은 필요한 모든 테스트를 했고 모두 통과했다는 의미입니다.
테스트를 통과하면 바로 다음으로 넘어가세요!
간결함이란 의존성을 최대한 제거하는 것입니다.
항상 테스트 가능한 코드를 작성하세요.
테스트 하기 어려우며 설계내용을 살펴보세요.
전략 패턴을 이용하면 하나의 인터페이스를 다양하게 구현할 수 있습니다.
테스트용 코드는 테스트 클래스에서 관리하세요.
테스트는 더 나은 코드를 만듭니다.
테스트가 많아질수록 코드도 더 늘어납니다.
전략 패턴은 결합도를 낮추고, 객체화 합니다.
다양하지만 유사한 객체가 필요합니다.
이미 객체를 생성했다면 어떨까요?
목(Mock) 객체는 실제 객체를 대체합니다.
목 객체는 실제 객체를 대신해서 동작합니다.
좋은 소프트웨어는 테스트할 수 있습니다.
녹색으로 만들기는 쉬운 일이 아닙니다.
테스트 주도 개발자의 하루...
소프트웨어 개발 도구상자 활용하기

9. 이터레이션의 마무리
모든 것이 다 잘 되어갑니다

이터레이션이 이제 막 완성되려고 합니다.
...그러나 여러분이 할 수 있는 것이 많이 남아 있습니다.
시스템 테스트는 반드시 해야 합니다.
...그런데 누가 시스템 테스트를 하죠?
시스템 테스트는 테스트할 완전한 시스템이 있어야 합니다.
좋은 시스템 테스트는 두 개의 이터레이션 사이클이 필요합니다.
이터레이션이 많을수록 문제도 많습니다.
효과적인 시스템 테스트의 특징 Top 10
버그의 일생(그리고 죽음)
버그를 발견했다면...
버그 보고서의 해부
아직 할 수 있는 일이 많이 남아있습니다.
이터레이션 리뷰
이터레이션 리뷰에 대한 질문들
부가적인 일들을 위한 일반적인 우선순위 목록
소프트웨어 개발 도구상자 활용하기

10. 다음 이터레이션
프로젝트 변화에 빠르게 대처하기

작동하는 소프트웨어는...
다음 이터레이션의 계획이 필요합니다.
속도는... 프로젝트 현설을 반영합니다.
고객에 대한 이야기를 계속해 봅시다.
다른 사람의 소프트웨어도 그저 소프트웨어일 뿐입니다.
고객 승인? 확인해보죠!
테스트하기
태권브이, 우리 문제가 생겼어요.
아무도 믿지 마세요.
누가 코드를 작성했는지는 중요하지 않습니다. 만약 그것이 여러분의 소프트웨어라면 여러분에게 책임이 있습니다.
프로세스를 갖추지 못한 경우
프로세스를 갖춘 경우

11. 버그
프로답게 버그 잡기

먼저 고객에게 이야기해야 합니다.
우선순위 1: 코드가 빌드되도록 하라.
코드를 고칠 수야 있지만...
...하지만 기능을 수정해야 합니다.
어떤 기능이 동작하는지 알아보기
이제 여러분은 무엇이 동작안하는지 알고 있습니다.
무엇을 하시겠습니까?
추정을 위한 스파이크 테스트
스파이크 테스트의 결과가 의미하는 바는 무엇일까요?
팀원들이 실제로 느끼는 것이 중요합니다.
고객에게 버그 수정에 대해 추정한 내용을 전해주세요.
잘 되어가는 것처럼 보입니다.
...그리고 여러분은 성공적으로 이터레이션을 마쳤습니다!
그리고 가장 중요하게도 고객이 행복해 하네요.
소프트웨어 개발 도구상자 활용하기

12. 실제 세계
프로세스의 생활화

소프트웨어 개발 프로세스 명확히 하기
좋은 프로세스가 좋은 소프트웨어를 만듭니다.
형식을 갖춘 복장이 필요합니다.
더 살펴보아야 할 것들...
더 많은 지식 == 더 좋은 프로세스
소프트웨어 개발 도구상자 활용하기


부록1: 남은 것들
베스트 5(우리가 다루지 않았던)

부록 2: 기법과 원칙
숙련된 소프트웨어 개발자의 도구
준비 중입니다.
원서의 특장점을 잘 살린책
정유선님이 쓰신 서평보기 I 평점 I 조회수(1081) I 공감 (0) I 블로그
실무적으로 접근할 수 있고 agile개발에 대해 친숙하게 접근 가능한 책입니다. agile개발방법과 벤치마킹을 염두해둔 입문서로는 으뜸일듯 싶습니다. 컴퓨터 옆에 두고 차근차근 따라가다보면 TDD를 몸소 체험할수 있구요... 내용과 관련된 강연회라던지 세미나 등이 후속으로 열리었으면 합니다. 혼자 따라하긴 전반적으로 내용이 벅차거든요^^ 실무적인 부분까지도 같이 이어가면 좋겠죠.? 
초급 프로젝트 관리자를 위한 서적
박진욱님이 쓰신 서평보기 I 평점 I 조회수(1110) I 공감 (0) I 블로그
현재 한국 출판 시장에서 개발자를 위한 프로젝트 개론서가 존재하지 않는게 현실이고, 이 상황에서 이 책은 "최신의 트랜드를 굉장히 잘 반영하면서, 난이도가 낮고 현실에서 적용하기 쉬우며, 놓치기 쉬운 포인트를 잘 잡는" 책으로서 우수하며, 대안이 없다고 할 수 있습니다. 옛날 책중에, 업무 분야가 약간 다른, 기획 파트의 초기 입문서의 경우, 만화를 통해 입안부터 상품화까지 다루는 서적이 있었습니다.이 책 역시 그러한 레이아웃을 따르고 있으며, 요구사항 수집부터...
괜찮은책
송재운님이 쓰신 서평보기 I 평점 I 조회수(1556) I 공감 (0) I 블로그
head first 시리즈의 특징이라면일관된 스토리를 가지고 내용을 풀어나간다는 점이다. 어떻게 보면 소설책 읽듯이 읽어내려가기에도 좋다.위 책은 개발방법론에 대해서 다룬 책이다. 기존에 나와있는 다른 개발방법론에 대한 책들처럼그 다루는 내용이나 범주는 비슷하지만..head first 특유의 스토리가 있어 읽기에 좋았던거 같다. 책의 구성방식은하나의 프로젝트를 놓고가상의 개발자들을 두어프로젝트를 진행해나가는 방식이다. 처음에는 개발방법론에 입각한단계별 진행방식으로 ...
애자일을 위한 개략서
박해선님이 쓰신 서평보기 I 평점 I 조회수(1206) I 공감 (0) I 블로그
사용자 스토리에서 부터 XP 와 스크럼을 혼합한 듯한 이터레이션 관리, 리비전관리, 테스트 주도 개발, 배치와 코드커버리지 까지 애자일의 전반적인 이슈를 모두 다루고 있습니다. 여러 내용을 섭렵하려다 보니 각 항목에 대해 깊이있지 못하거나 약간 산만한 것은 어쩔 수 없는 것 같습니다. 애자일 방식의 전체 원턴을 돌아보는데는 나름 의미가 있습니다. 마이크콘이 스토리 포인트를 작업일수로 하지말자는 주장에 반대로 이 책에서는 작업일수를 이용해서 스토리 포인트를 산정하...
컴퓨터구조론...
BEHROOZ PARHAMI
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(18)
회원평점   회원서평수 4
원서의 특장점을 잘 살린책
정유선 님  2009-02-20
초급 프로젝트 관리자를 위한 서적
박진욱 님  2009-01-29
괜찮은책
송재운 님  2008-12-19
애자일을 위한 개략서
박해선 님  2008-12-10
Dan Pilone 의 최근 저서
 
Head First Iphone and Ipad Development: A Learner's Guide to Creating Objective-C Applications for the Iphone and Ipad
44,800원
(20%↓+1%)
 
황상철 의 최근 저서
 
경험과 사례로 풀어낸 성공하는 애자일
32,400원
(10%↓+5%)
 
Dan Pilone 의 최근 저서
 
Head First iPhone Development + 만들면서 배우는 iPhone Game Programming
35,280원
(2%↓+0%)
 
Object-C : 맥과 아이폰 애플리케이션 프로그래밍+Head First iPhone Development
36,460원
(2%↓+0%)
 
Head First Iphone Development: A Learner's Guide to Creating Objective-C Applications for the Iphone
51,300원
(5%↓+1%)
 
한빛미디어 출판사의 신간
C++ 최적화
커트 건서로스 [옮긴이]옥찬호 저
34,200원
(10%↓+5%)
 
리얼블라디보스톡

12,150원
(10%↓+5%)
 
파이썬 리이브러리를활용한데이터분석2판

31,500원
(10%↓+5%)
 
밑바닥부터 시작하는 딥러닝 2
사이토 고키 [옮긴이]개앞맵시 저
26,100원
(10%↓+5%)
 
파이썬 라이브러리를 활용한 머신러닝(번역개정판)
안드레아스 뮐러, 세라 가이도 저
28,800원
(10%↓+5%)
 
이메일주소수집거부