버전 관리 시스템(Revision Control Software)의 대표적인 소프트웨어들 중에서 많이 사용하는 것들 4개를 조사함.


CVS(Concurrent Versions System)

SVN(Subversion)

Mercurial

Git

여기서 Git이 요즘 많이 사용하는 분산 버전 관리 시스템(Distributed version control system)이며 Linux Kernel, Android Kernel, Qt, Perl, Gnome, Ruby on Rails, Fedora, Debian, VLC, X.org, Wine등의 여러 Open Source Project에서 버전관리할때 많이 쓴다.

SVN은 구글 프로젝트 등부터 여러 프로젝트에서 많이 사용하지만 SVN의 비효율적인 문제로 대부분 Git으로 넘어가는 추세이다.


버전 관리 시스템에 대해서 정리를 하여 발표자료를 블로그에 올리겠음.


Buy me a coffeeBuy me a coffee


Subversion-HOWTO

PYRASIS님이 작성하신 Subversion-HOWTO라는 문서를 보고 연구실 서버에 subversion을 설치하고 어디든지 작업하고 커밋하고를 반복하여 프로그램 관리를 편리하게 만들려고 노력함.

사용법은 예전에 알고 있었지만, 서버 설치는 처음해보았음...


Subversion 이거 아니였으면 USB로 옮기고 작업하고, 그러다 파일 망가지고등의 끔찍한 일들로 고생 많이 했을것이다.

서브버전의 사용법에 대해선 아래의 책을 보면 됨.


서브버전을 이용한 실용적인 버전 관리
카테고리 컴퓨터/IT
지은이 Mike Mason (정보문화사, 2006년)
상세보기




Buy me a coffeeBuy me a coffee
  1. Favicon of http://navisphere.net BlogIcon 룬룬 2010.03.31 09:41

    트위터에서 건너왔습니다.
    설치는 한번 해보니 별로 어렵지 않지요?
    저는 집과 학교를 오가니 혼자 코딩하는 상황에서도 서브버전이 참 유용하더라구요. 소스를 전달할 때도 편리하고요.
    언제든 소스를 되돌릴 수 있는 기능도 유용합니다. :)

이번에 monac님의 이벤트인 애자일 3종 강탈 1탄에 당첨되어서 HEad First Software Development를 얻게 되어습니다.


HEAD FIRST SOFTWARE DEVELOPMENT
카테고리 컴퓨터/IT
지은이 댄 필로네 (한빛미디어, 2008년)
상세보기

Head First 시리즈 중에서 3번째로 본 책인데 이책 시리즈가 그렇듯 만화책 읽듯 술술 읽을 수 있는 책들이다.

첫번째로 읽은 Head First HTML WITH CSS & XHTML과 Head First Design OBJECT ORIENTED ANALYSIS을보고 나서 이 책의 구성이 어떻게 될련지에 대해선 재미있는 구성, 머리에 쏙쏙들어가는 내용들로 구성될것이라 예상을 하였다. 그 예상은 역시나였다!


HEAD FIRST HTML WITH CSS & XHTMIL(웹 2.0시대의...
카테고리 대학교재
지은이 엘리자베스 프리먼 (한빛미디어, 2006년)
상세보기

HEAD FIRST OBJECT ORIENTED ANALYSIS DESIGN
카테고리 대학교재
지은이 브렛 맥래프린 (한빛미디어, 2007년)
상세보기

이 책에서는 소프트웨어 프로젝트를 어떻게 성공적으로 개발을 할지에 대해 툴과 테스트주도개발 등을 다루는데 전체적으로 소프트웨어공학쪽 내용들이 많이 들어간 책이라 보면 됩니다.

책을 읽으면서 학과 홈페이지 관리했던 프로젝트를 하면서 정말 "삽질이라는 것은 이런 것이다"라는 것을 뼈져리게 느끼며 돈을 벌었던 대학교 3학년 시절을 생각해보며 이 책을 읽다보면 소프트웨어개발할때 우선 읽어보아야 삽질을 피할 수 있다는 생각을 해본적도 있습니다.

소프트웨어공학을 배우던 4학년때 "왜 저런 내용을 배워야 하지?" 하는 의문점들이 많이 있었던데, 요즘 오픈소스 프로젝트인 텍스트큐브 플러그인 개발나 Sakai Project에 참여하면서 책에 나오는 "소프트웨어 개발"에 나오는 내용들이 오픈소스개발쪽이나 여러 많은 개발쪽에 많이 필요하다는 생각을 많이 했습니다.

Head First 시리즈의 특징인 소설처럼 물 흘러 가는 일관된 내용으로 왜 이런 것들이 필요한지를 서술해기가 여기서도 빛을 바랍니다.

읽다보면 재미가 있어서 계속 소설같이 읽게 되어서 자꾸 읽게 되는 마력이 있습니다.

이 책에서는 하나의 프로젝트를 가지고 어떻게 개발을 해야하는지에 대한 개발 방법론에 대해 서술을 하였습니다. 기존 소프트웨어공학책에 나오는 딱딱한 내용을 머리에 쏙쏙 들어가게 풀어 쓰여서 재미있게 읽었습니다. 그 다음 개발 툴에 대해 설명을 하면서 ant와 subversion, junit등의 도구에 대해서 프로젝트에 어떻게 도입을 하는지에 대해 설명을 하였습니다.

책을 읽다보면 애자일에 대한 개론서라고 할 정도로 사용자 스토리, 이터레이션 관리, 리비전 관리, 테스트주도개발(TDD)등등 애자일의 주요한 방법에 대해서 다룹니다,

이 책의 장점은 빨리 훑어볼수 있어서 두꺼운 소프트웨어공학 책에 나오는 내용들을 개략적으로 알 수 있는 장점이 있습니다. 단점이라면 책 내용의 깊이가 얕아서 깊은 내용까지는 자기가 알아서 찾아보아야 하는 단점도 있습니다.

책을 읽어보면 소프트웨어공학책을 한번이라도 읽은 개발자가 어떻게 개발을 해야할지 감을 잡기 위해서 읽으면 딱이라는 생각을 해봅니다.

그렇다만 이 책 내용이 대한민국 IT현실에 제대로 맞을련지는 궁금하군요. 야근야근열매를 먹고 사는 개발자들에게 쌩뚱맞는 이야기들이 많기 때문이죠. 미래공상과학소설에 나올법한 우주투어 등등 현실감이 없는 내용들이 나와서 현실에서는 책에 적힌대로 적용될지가 미지수입니다.

이 책은 먼저 번역되어 출간된 Head First Object Oriented Analysis and Design과 같이 보면 읽을때마다 더 빨리 이해될것입니다.

HEAD FIRST OBJECT ORIENTED ANALYSIS DESIGN
카테고리 대학교재
지은이 브렛 맥래프린 (한빛미디어, 2007년)
상세보기

소프트웨어 개발을 하는데 객체지향설계에 대한 이해 없이 프로그램을 짜면 쉽게 말해서 스파게티코드같이 꼬인 코드들이나 유지보수가 엄청 까탈스러운 코드들이 나올 위험성이 높기 때문입니다. 그렇기 때문에 Head First Object Oriented Analysis and Design과 같이 보길 추천합니다.

이 책은 아쉽지만 깊이있는 내용보다는 많은 지식을 빨리 전달하기 위해서 그렇게 깊은 내용을 다루지 않습니다. 이 책은 빠른 시간내에 내용을 빨리 취득하려는 학생들에게는 좋은 책일듯 합니다.  실무에서는 책에 있는 내용이 제대로 실현될련지는 미지수?

Head First Software Development의 목차입니다.

1. 훌륭한 소프트웨어 개발하기
2. 요구사항 수집하기
3. 프로젝트 계획하기
4. 사용자 스토리와 태스크
5. 충분히 구현 가능한 좋은 설계
6. 버전 관리
6½. 작성한 코드 빌드하기
7. 테스트와 지속적인 통합
8. 테스트 주도 개발
9. 이터레이션의 마무리
10. 다음 이터레이션
11. 버그
12. 실제 세계

ps. 책을 주신 monac님 감사합니다.

ps2. 1월 26일까지 올리라는 리뷰를 늦게 올려 죄송합니다. ㅠㅠ




Buy me a coffeeBuy me a coffee

이번 monaca님이 주최하신 애자일 3종 강탈 1탄 Head First Software Development에 당첨이 되었습니다.

이번 대학원 가기전에 교수님이 공부하라고 던져주신 교육용 협업 및 학습 오픈소프 프로젝트인 Sakai Project에 대해 공부하다 보니 Agile방식으로 Log4J나 JUNIT코드들이 난무하고 Framework는 왜이리 써서 머리 터지게하는지 어떻게 다가갈지 겁이 나더군요.


Monaca님의 말마따나

HFSD는 프로젝트에 어떤 문제가 생기고, 도구를 사용해 그 문제를 어떻게 해결하는가에 집중합니다. 그래서 익히 이름은 들어봤지만 어렵게 느껴지거나 쉽게 접근하기 어려운 뽀스(force)가 느껴졌던 프로젝트 유틸리티를 조금은 쉽게 접근할 수 있습니다. 

테스트를 위한 TDD,

버전 관리를 위한 Subversion, 

빌드 관리를 위한 Ant,

지속적인 통합을 위한 CruiseControl

이런 도구가 이야기와 함께 등장합니다. 어쩌면 '내가 했던 프로젝트가 이랬었지'하고 공감하는 부분도 있겠죠. 공감된다면 책에서 말하는 문제 해결 방법을 적용해보는 것도 좋습니다.

Sakai Project에서 보았던 위의 내용들을 이해 하기 위해서 책이 필요했었는데 다행이도 당첨이 되어서 기쁩니다.

으흐흐 저는 sungdh86로 당첨되었다는 기쁨이 ㅎㅎ

책 도착하면 잘 읽고 서평을 올리겠습니다 >.<


이것이 당첨된 Head First Software Development

ps. monaca님 저의 닉은 sungdh86과 studioego 두개 동시에 쓴답니다. 이점 유의해주세기 바랍니다. 혹시나 블로그에 글 올렸는데 다른 닉으로 올려서 먹튀자 명단으로 올라갈까바 걱정 ㄷㄷ

ps2. 요즘 공부하는 것들이 SI업체에서 하는 일들 ㄷㄷㄷ 나도 졸업하면 악명높은 SI업체로 발을 디디는 것인가?

HEAD FIRST SOFTWARE DEVELOPMENT
카테고리 컴퓨터/IT
지은이 댄 필로네 (한빛미디어, 2008년)
상세보기

Buy me a coffeeBuy me a coffee
  1. Favicon of http://camuigackt.egloos.com/ BlogIcon Shirou君 2009.01.01 15:11

    당첨 축하드립니다.^^
    그리고 2009년 기축년 한해도 항상 즐겁고 행복한 일로 가득하시기를~!

+ Recent posts