책책가루2009/01/28 11:35



The art of software testing
(공)저: Glenford J. Myers, Myers, Corey Sandler, Tom Badgett, Todd M. Thomas
Edition: 2, illustrated
출판사: John Wiley and Sons, 2004
ISBN 0471469122, 9780471469124
256페이지


학부 때 소프트웨어공학 수업은 시간강사 분이 대충 가르쳐서 남는 것도 없었다. 대학원 때 소프트웨어공학 수업은 네이x 개발센터장님이 직접 출강 오셔서 가르쳐 주셨기에 정말 남는 것도 많고 즐거운 수업이었다.

대학원 수업을 들으면서 나름 소프트웨어 테스팅에 관심이 있어 수업 종강 후의 여운을 충족할 겸 이 책을 빌려 읽어보았다.

외국 대학에서는 소프트웨어 테스팅을 한 학기 과목으로 가르치는데, 이 책은 소프트웨어 테스팅 교과의 기본 서적으로 발간되었다. 2004년에 출간되었지만 1979년에 1판이 발간되었고 25년 후에 여러 내용이 수정되고 추가되어 2판이 나왔다.

대학원 수업에서 테스팅을 3주(주 당 3시간 수업)에 걸쳐 빠르게 진행하고 나 스스로도 졸기도 많이 졸았던 것이라 용어의 명확한 이해가 부족했다. 그래서 이 책을 읽고 Code inspection에 대해 보다 명확하게 배울 수 있었다. 한글 번역서가 있는지 궁금하다. 대학 교재 목적으로 발간되서 그런지 영어 논문 보다는 쉬운 영어를 사용하였고, 컴퓨터 교재 영어들이 다 그렇듯이 문장 구조도 쉽다. 번역서가 있다면 구해 읽는게 좋겠지만 원서로 읽으면 나름 공부도 된다. (전철 출퇴근 시간 때마다 짬짬이 읽었더니 3주 정도 걸렸다)

소프트웨어 테스팅에 대해 관심 있는 사람에게 좋은 인도서가 될 책인 것 같다. 나름 추천한다.


가루비누
저작자 표시 비영리 변경 금지
Posted by cheru
책책가루2008/12/08 15:58

테스트 주도 개발 (CD-ROM 포함)
카테고리 컴퓨터/IT
지은이 켄트 벡 (인사이트, 2005년)
상세보기


교수님 추천으로 읽게 되었습니다. 자바 코딩 경험이 있어서 1부와 3부는 쉽게 읽었는데 2부는 다른 언어라 스킵 했습니다. 1부는 Money 클래스(화폐 예제)를 TDD 방법으로 확장하는 쉬운 설명이 있고요. 3부는 패턴이라고 했지만 TDD의 기교(?)들을 다루고 있습니다.

교수님 수업을 듣고 TDD에 관심을 갖았고, 이 책의 예제와 켄트 벡의 TDD 대한 생각을 읽어보니 TDD에 매료되었습니다. 연구실 다음 프로젝트부터 냉큼 적용해보고 싶지만, 팀원 중 저만 그런다고 적용되지는 않겠지요;

사실, 이 책을 작년 OOP 스터디 때 읽고자 시도 했을 때, "빨간 막대", "파란 막대" 같은 말들을 보면서 "번역이 개판이다"라고 생각하고 내던졌었습니다. 이번에 교수님 설명을 듣고 읽어보니 1년 전 제가 굉장히 바보스럽다고 생각됩니다. 

이 책을 읽으려면 약간의 context는 알고 읽어야 할 것 같습니다. 안그러면 정말 던져버리게 됩니다. ㅎㅎ 그래도 뭔가 알고 보면 후루룩 읽게 되네요.


가루비누

저작자 표시 비영리 변경 금지
Posted by cheru
책책가루2008/12/01 11:26
이클립스 기반 프로젝트 필수 유틸리티:CVS, ANT,...
카테고리 컴퓨터/IT
지은이 민진우 외 (한빛미디어, 2004년)
상세보기


소프트웨어공학 수업의 팀 프로젝트를 진행하면서 Ant와 JUnit에 대해 무엇인지 정도 알고 싶었습니다. 연구실 선배 책장에 있는 이 책을 보고 Ant 부분과 JUnit 부분, 이클립스 팁 부분만 골라 보았는데요. 제가 원하는 만큼 잘 다룬 것 같습니다.

Ant에 대해 쉽게 개념적 이해도 되고 사용법도 잘 설명해주었습니다. JUnit도 예제로 충분히 이해되네요.


가루비누
저작자 표시 비영리 변경 금지
Posted by cheru
하루가루2008/10/25 11:48
프로그래밍은 상상이다
카테고리 컴퓨터/인터넷
지은이 임백준 (한빛미디어, 2008년)
상세보기

나는 에세이와 칼럼 읽기를 좋아한다.
특히, 저자가 IT 필드 종사자이면 집중과 관심을 갖고 읽는다.

중견 프로그래머 임백준 선배님이 들려주는 필드 이야기.



요즘 소프트웨어 공학 수업과 팀 프로젝트를 수행하면서 빨리 필드에서 일해보고 싶다는 생각이 든다.
그냥 그렇다는...

여러 수사로 꾸밀 수 있겠지만, 프로그래밍은 ㅇㅇ이다.
프로그래밍은 상상이다. 감각이다. 부지런함이다.

공학과 예술의 차이에 대해 내 생각을 몇 자 적고 싶다.

공학(engineering)은  여러 요소 간의 Trade-off를 찾는 일이다. 그래서 과학(science)과는 다르다.
예술(art)은 보통 심미적 요소에 집중된다. 나아가, The art of computer programming에서 다룬 art는 "기술, 기예"의 뜻을 지닌 예술에서 나아가 숙련된 장인정신을 내포한다. 장인은 자신의 일에서 즐거움을 얻는다.

공학과 예술은 매 한 가지다. 프로그래밍은 처음 공학의 입장에서 시작되지만 나중에 가면 대가(artist)가 되지 않을까?
프로그래머는 일을 놀이로 삼을 수 있는, 놀이를 일로 삼을 수 있는 직업 중 하나다.
하는 직무 자체로로 보면 공학으로 정의되겠지만, 직무 수행으로 보면 예술도 될 수 있다.

프로그래밍은 프로젝트에서 트레이트-오프를 찾아 가면서(사용자의 요구사항과 개발자의 구현 차 등) 대가가 되기 위해 성장해가는 예술의 길이 아닐까. 아... 뻘소리다.


가루비누.

저작자 표시 비영리 변경 금지
Posted by cheru
삽질가루2008/10/23 13:07

  <exec executable="svn">
   <arg line="export --force svn://166.104.xxx.yyy/Mediaclub/WebContent 'C:\Program Files/Apache Software Foundation\Tomcat 6.0\webapps\ROOT'" />
  </exec>


build.xml 파일의 일부이다.

CruiseControl 프로그램에서 주기적으로 이 파일을 실행한다. 지금 프로젝트에서 사용하는 용도는 주기적으로 SVN 저장소의 최신 리비전을 Export 하여 데모 사이트에 반영하는 것이다.

이클립스에서 SVN 저장소에 커밋한 구조랑 데모 사이트 웹서버(Tomcat) 내의 구조가 상이한 점이 있기 때문에 이를 폴더 별로 Export 하여 맞출 필요가 있다.


가루비누
저작자 표시 비영리 변경 금지
Posted by cheru
프로그램2008/10/23 13:02

CruiseControl

CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.

CruiseControl is distributed under a BSD-style license and is free for use. CruiseControl adheres to an open source model and therefore makes the source code freely available.

CruiseControl is maintained and developed by a group of dedicated volunteers.



지속적인 통합 및 테스트를 위한 개발툴이다. 매우 유용함


가루비누
저작자 표시 비영리 변경 금지
Posted by cheru
하루가루2008/10/18 23:53


소프트웨어 공학 수업에서 배우게 된 표현이다. 왓 블락스 유? 우리말로 "뭐가 문제인데?" 정도 된다. 소프트웨어만이 아니라 대부분의 프로젝트를 진행할 때 방해되는 무언가, 바로 누군가 처리해주었으면 하는 골치거리들, 이에 대해 상급자(PM or PL...)가 던질 수 있는 든든한 말 한마디가 아닐까?

그렇다고 상급자가 모두 해결해 주길 기대하진 않는다. 하지만 일일회의에서 자신의 문제를 쉽게 공유할 수 있고 의논할 수 있는 기회를 갖게 된다는 점이 좀 더 민첩하고 성공할 수 있는 프로젝트로 가는 좋은 방안이라 생각한다.

난 팀장으로서 팀원들에게 프로젝트 진행에 문제(걸림돌)가 있는지 확인하여 이를 지원할 수 있는 역할도 수행해야 할 것이다. 오늘 수업 후 팀원 분들에게(모두 형, 누나이다) "What blocks you?"라고 화두를 건넸다. 아직은 문제 될 것이 없으신 듯 모두 대답은 FINE! 프로젝트 최종발표까지 무난하게 자기 역할 하였으면 좋겠다.

다들 즐코딩~


가루비누.
저작자 표시 비영리 변경 금지
Posted by cheru
하루가루2008/10/16 14:01
성공적인 소프트웨어 개발 프로젝트를 위한 실용...
카테고리 자연과학/공학
지은이 자레드 리차드슨 (위키북스, 2007년)
상세보기

p128 - p129

* 목록(The List)
- 누구나 이용할 수 있게 하자. : 고객이나 관리자 등에게
- 우선 순위를 부여하자. : 1) 필수적임 2) 매우 중요함 3) 있으면 좋음 4) 광택내기 5) 시시한 것
- 예상 일정에 따르자. : 우리 팀원 전체가 답답하게 만들지 말자.
- 살아 있는 문서가 되어야 한다. : 변화가 생명이다. 목록에서는

* 기술 리더(Tech lead) : 기술 리더의 역할과 필요성이 맘에 든다.
- 프로젝트의 기능 목록을 관리한다.
- 개발자의 현재 작업과 상태를 추적한다. : 기술 리더는 모든 팀원이 무슨 일을 하고 있는지 대략적이라도 파악해야 한다.
- 각 기능에 우선 순위를 매기는 일을 돕는다.
- 외부의 방해로부터 팀을 보호한다. : 가장 멋진 일이 아닐까?

* 일일 회의(Daily meetings) : 주간 회의만 하는 지금 상황에서 일일 회의도 고려해 볼만 하다.
- 회의는 짧게 하자.
- 세부 내역이 있어야 한다. : 개별 발표는 간략하게
- 문제를 열거하되 풀려고 하지 말자. : 해결은 회의 후에 하자.

* 코드 검토(Code reviews)
- 코드를 조금씩 검토한다.
- 검토자는 한두 명만 있으면 된다.
- 자주 한다.
- 검토 안 한 코드는 공포하지 않는다.

* 코드 변경 통지(Code change notifications)
- 통지 내역을 이메일로 보내고 통지하세요. : RSS도 좋다고 본다.
 검토자의 이름을 열거한다.
- 코드를 벼경하거나 추가한 목적을 열거한다.
- 용량이 지나치게 크지 않으면, 원본 파일이나 차이점 명세서를 포함시킨다.


저작자 표시 비영리 변경 금지
Posted by cheru
책책가루2008/10/16 13:53

크게 새로운 것은 없지만 일목요연하게 잘 정리한 것 같다. 책의 근간이 되는 프로그램이나 프로세스에 대해 처음 듣는 독자는 굉장히 지루하고 재미없을 것이다. SVN이나 Trac, 이클립스, make, MS Project 등의 소프트웨어를 들어본 독자라면 "어떻게 이용해야 하는가"에 대한 약간의 지침이 될 것이다.

분량도 많지 않고 현재 사용하고 있는 프로그램에 대해 일반적인 이야기를 하기 때문에 쉽게 읽었다.

내가 이 책을 통해 좀 더 배우게 된 점은 아래와 같다.

1. 기술리더의 역할과 필요성
2. 일일회의의 필요성

번역책이라 매끄럽지 않은 부분이 발견된다. 역번역이 가능한 문장이나 '이슈를 받아들인다'라는 표현 등.


가루비누.

저작자 표시 비영리 변경 금지
Posted by cheru
책책가루2008/10/08 16:50

소프트웨어의 탄생과 성장의 핵심에 선 인물들에 대한 이야기.

내가 가르치는 학부생들이 왜 Unix 프로그래밍을 배워야 하는지, 시스템 콜은 왜 배워야 하는지에 대해 의문을 갖는 동시에 이 책을 읽으면 재밌으리라 생각한다. 

무엇보다도 흥미로운 점은 이 분들 대부분은 실존한다는 것이다. 컴퓨터와 인터넷 발전에 큰 획을 그으신 대가들은 지금도 연구개발의 필드에서 뛰고 있는 현역이라는 점이다. 

-  대가들이 너무 큰 획을 그어서 내가 아무리 골똘이 생각해도 잔가지 획도 못 그을 것 같다. 궁시렁궁시렁 -


# <누가 소프트웨어의 심장을 만들었는가>의 인물사진과 소개, 관련 링크를 다룬 페이지
http://islab.hufs.ac.kr/books/who_made_the_heart_of_software/

저작자 표시 비영리 변경 금지
Posted by cheru