52
프프프프 프프프프프 ( 프프프프프 프프프 프프 ) 발발발 : 발발발 ( 발발발 ) E-mail : [email protected]

프로젝트 에코시스템(개발환경의 효율적 개선)

Embed Size (px)

DESCRIPTION

아주 오래전에 OKJSP 커뮤니티에서 발표했던 PPT 자료입니다. 2008.04.23 [OKJSP세미나-서울] 레거시 코드와 개발환경의 효율적 개선 - http://180.150.228.177/seq/115256 2008.04.26 [OKJSP세미나-부산] 레거시 코드와 개발환경의 효율적 개선 - http://www.okjsp.pe.kr/seq/114988

Citation preview

Page 1: 프로젝트 에코시스템(개발환경의 효율적 개선)

프로젝트 에코시스템( 개발환경의 효율적 개선 )

발표자 : 강대권 ( 프리챌 )E-mail : [email protected]

Page 2: 프로젝트 에코시스템(개발환경의 효율적 개선)

Agenda

 1. 좋은 품질을 내는 개발 환경이란

 2. 버전관리 시스템

 3. 이슈관리 시스템

 4. 최종목표는 지속적인 통합

Page 3: 프로젝트 에코시스템(개발환경의 효율적 개선)

좋은 품질을 내는 개발 환경이란

1. 소스가 건강하고 2. 이슈에 대한 의사소통이 원활 하고 3. 반복적인 작업을 줄여 이슈에 집중할 수 있는

Page 4: 프로젝트 에코시스템(개발환경의 효율적 개선)

The Joel Test: 나은 코딩을 위한 12 단계

 1. Source Control( 소스 컨트롤 ) 을 사용하십니까 ?

 2. 한번에 빌드를 만들어낼 수 있습니까 ?

 3. daily build( 일별 빌드 ) 를 만드십니까 ?

Page 5: 프로젝트 에코시스템(개발환경의 효율적 개선)

The Joel Test: 나은 코딩을 위한 12 단계 1. Source Control( 소스 컨트롤 ) 을 사용하십니까 ?

 2. 한번에 빌드를 만들어낼 수 있습니까 ?

 3. daily build( 일별 빌드 ) 를 만드십니까 ?

 4. 버그 데이타베이스를 가지고 있습니까 ?

 5. 새로운 코드를 작성하기 전에 버그들을 잡습니까 ?

 6. up-to-date( 최신 ) 스케줄을 가지고 있습니까 ?

 7. spec( 설계서 ) 를 가지고 있습니까 ?

 8. 프로그래머들이 조용한 작업환경을 가지고 있습니까 ?

 9. 돈이 허락하는 한도내의 최고의 툴들을 사용하고 있습니까 ?

 10. 한테스터들을 고용하고 있습니까 ? 번에 빌드를 만들어낼 수 있습니까 ?

 11. 신입사원들은 면접때 코드를 직접 짜는 실기시험을 봅니까 ?

 12. hallway usability testing( 무작위 사용성 테스팅 ) 을 하십니까 ?

Page 6: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 7: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 8: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 9: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 10: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 11: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 12: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 13: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 14: 프로젝트 에코시스템(개발환경의 효율적 개선)

< 출처 : 소중한것 먼저하기 V2.0>

Page 15: 프로젝트 에코시스템(개발환경의 효율적 개선)

좋은 품질을 유지하는 개발 사례 - 1

Page 16: 프로젝트 에코시스템(개발환경의 효율적 개선)

좋은 품질을 유지하는 개발 사례 - 2

Page 17: 프로젝트 에코시스템(개발환경의 효율적 개선)

좋은 품질을 유지하는 개발 사례 - 3

Page 18: 프로젝트 에코시스템(개발환경의 효율적 개선)

버전 관리 시스템

* 개발 버전과 릴리즈 버전이 섞이지 않고 쉽게 관리

* 소스를 잘못 수정 했더라도 기록이 남고 되돌리기 원활

* 수정 , 추가 , 삭제 등의 기록이 모두 남고 변경 사항을 추적하기 쉬움

* 개발자들이 따로 따로 백업 할 필요 없음

Page 19: 프로젝트 에코시스템(개발환경의 효율적 개선)

소스관리 시스템 적용 전 소스 관리

Page 20: 프로젝트 에코시스템(개발환경의 효율적 개선)

소스관리 시스템 적용 후 소스 관리 - 1

Page 21: 프로젝트 에코시스템(개발환경의 효율적 개선)

소스관리 시스템 적용 후 소스 관리 - 2

Page 22: 프로젝트 에코시스템(개발환경의 효율적 개선)

소스관리 시스템 적용 전 공유 개발

Page 23: 프로젝트 에코시스템(개발환경의 효율적 개선)

소스관리 시스템 적용 후 개발

Page 25: 프로젝트 에코시스템(개발환경의 효율적 개선)

이슈 관리 시스템

* 협업은 함께 코드를 작성하는 것만을 의미하는 것이 아니다 . 누군가와 함께 일하는 모든 것을 의미한다 . 협업이 중요한 이슈로 떠오르는 이유는 협업의 성패가 곧 프로젝트의 성공 여부와도 밀접하게 연관되어 있기 때문이다

Page 26: 프로젝트 에코시스템(개발환경의 효율적 개선)

이슈관리 방법의 변화

단계 시기 이슈정리방법

1 단계 2001~2004

일일 업무에 이슈관리

2 단계 2005~2006

작업폴더를 통한 이슈관리

3 단계 2007~현재 위키를 통한 이슈관리

4 단계 To be Ticket 을 통한 이슈관리

Page 27: 프로젝트 에코시스템(개발환경의 효율적 개선)

1 단계 일일 업무에 이슈관리

“ 샘플이 없어요”

Page 28: 프로젝트 에코시스템(개발환경의 효율적 개선)

2 단계 작업폴더를 통한 이슈관리

Page 29: 프로젝트 에코시스템(개발환경의 효율적 개선)

WIKI

< 출처 : 위키피디아 >

Page 30: 프로젝트 에코시스템(개발환경의 효율적 개선)

WIKI - 위지윅 편집 지원 에디터 소개

< 출처 : 오픈마루 >

Page 31: 프로젝트 에코시스템(개발환경의 효율적 개선)

3 단계 위키를 통한 이슈관리

Page 32: 프로젝트 에코시스템(개발환경의 효율적 개선)

TICKET

< 출처 : 조인시 위키 : 위키를 이용한 업무지원 시스템의 개발 >

Page 33: 프로젝트 에코시스템(개발환경의 효율적 개선)

4 단계 이슈관리 시스템을 활용한 이슈 관리

< 출처 : http://textcube.org/>

Page 34: 프로젝트 에코시스템(개발환경의 효율적 개선)

이슈시스템의 확장 - Mylyn

* Mylyn 은 태스크 중심 프로그래밍을 통해 개발자들의 정보 오버로드를 줄여주고 , 개발 효율을 높여주는 이클립스 플러그인 입니다

* Mylyn 이 제공하는 Task List 와 Task Repository 뷰를 통해 , 로컬에서 개인적인 태스크들을 관리하거나 , 버그질라 같은 웹 기반 이슈 트래커와 연결하여 여러 사람이 공유하는 태스크들을 관리할 수 있습니다 .

< 출처 : Mylyn 2.0: 태스크 중심 프로그래밍 >

Page 35: 프로젝트 에코시스템(개발환경의 효율적 개선)

이슈관리 시스템을 방치하면

Page 36: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 위키

Page 37: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 시간이력

Page 38: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 로드맵

< 출처 : http://textcube.org/>

Page 39: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 소스브라우저

Page 40: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 티켓들보기

< 출처 : http://textcube.org/>

Page 41: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 새로운티켓

Page 42: 프로젝트 에코시스템(개발환경의 효율적 개선)

Trac 주요기능 - 검색

Page 44: 프로젝트 에코시스템(개발환경의 효율적 개선)

지속적인 통합

* 흔히 발생하는 일반적인 위험을 줄여준다

* 반복적인 수작업을 줄여준다

* 언제 어느 때라도 배포할 수 있는 소프트웨어를 생성해낸다

* 프로젝트 가시성을 보다 좋게 해준다

* 개발 팀이 소프트웨어 제품에 대해 보다 큰 자신감을 갖게 해준다

Page 45: 프로젝트 에코시스템(개발환경의 효율적 개선)

지속적인 통합 컴포넌트

< 출처 : 지속적인 통합 >

Page 46: 프로젝트 에코시스템(개발환경의 효율적 개선)

피드백 장치 - 1

피드백 장치 설명 이미지

이메일 빌드 상태를 때에 맞춰 제공한다 .

RSS빌드 상태와 관련한 경고를 RSS 리더기로 보낸다 .

SMS빌드 상태에 대해 셀폰에 텍스트 메시지를 보낸다 .

< 출처 : 사람을 위한 자동화 : 지속적인 피드백 ( 한글 )>

Page 47: 프로젝트 에코시스템(개발환경의 효율적 개선)

피드백 장치 - 2

피드백 장치 설명 이미지

X10 시각적 방식으로 피드백을 보낸다 . LAVA 램프와 빨간 경고등이 대표적인 예이다

Ambient Orb

빌드 상태를 알려주는 또 다른 시각적인 방식이다 . 특정 정보에 따라 커스터마이징 될 수 있다 .

모니터 Windows 태스크바에서 빌드 상태를 알려준다 .

< 출처 : 사람을 위한 자동화 : 지속적인 피드백 ( 한글 )>

Page 48: 프로젝트 에코시스템(개발환경의 효율적 개선)
Page 51: 프로젝트 에코시스템(개발환경의 효율적 개선)

“ 질문과 답변”“ 질문과 답변”

Page 52: 프로젝트 에코시스템(개발환경의 효율적 개선)

“ 감사합니다 .”