실용주의 프로그래머를 위한 버전 관리 using CVS 데이비드 토머스 외 지음, 정지호 옮김/인사이트 얼마전 소스코드 버전관리에 대한 포스팅을 한 적이 있습니다. 프로젝트를 진행하면서 보니 소스코드에 대한 버전관리는 프로젝트 자동화의 시작이며, 제대로 된 프로젝트를 위해서는 필수적인 요소라고 생각합니다. 그러나 실제로 소스코드 버전관리를 제대로 활용하는 개발자들이 얼마나 될까요? 그런점에서 소스코드 버전관리에 대한 책이나 글을 구해서 읽어보는 것이 도움이 될 거라는 생각이 들어.. 이 책을 소개합니다. 2005년에 이 책을 처음 읽었었구요.. 물론 그 때는 뭔내용인지 전혀 이해를 못했슴다. -.- 어떻게 활용해야 할지도 모르고 걍~ 예제에 나오는 대로 sesame이나 따라하는 정도였죠.. 올 초에 다시..
요즘 테스트 코드와 관련해서... 테스트 코드를 먼저 만들고 난 후, 코딩을 진행하는 것이 좋다... 또는 프로그래밍 코딩을 하면, 테스트 코드를 만들어 확인해야 한다.. 리펙토링을 하기 전에는 반드시 테스트 코드가 있어야 한다.. 라는 이야기를 많이 합니다. 테스트 코드라는 것이 매우 중요한 개념이라는 것은 많이 들어서 알 것 같습니다. 그런데.. 실천이 매우 어렵다는 것을 한번 느낀 적이 있어 글을 써봅니다. 최근 프로젝트에서 JUnit이라는 테스트 프레임워크와 Ant 툴을 이용해서 프로젝트에서 테스트 프로그램을 구성해 보았습니다. 흔히 말하듯 빌드 한방에 테스트가 완료되구요.. 테스트 전후의 데이터도 변화가 없게 만들고... 나름 머리써가면서 잘 만들어 놨었죠~~ 하지만, 테스트 구현에 있어 약간의..
Adapter & Facade Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #8 - 어댑터(Adapter) Pattern 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있습니다. 흔히 11자형 플러그와 돼지코 플러그의 상호 어댑터를 연상하면 쉬울 겁니다. 간단히 클래스 다이어그램을 살펴보시기 바랍니다. - 클라이언트에서는 타겟 인터페이스만 볼 수 있습니다. - 어댑터에서 타겟 인터페이스를..
조엘 온 소프트웨어 조엘 스폴스키 지음, 박재호.이해영 옮김/에이콘출판 어느날 FineApple(http://fineapple.org/)이 한번 읽어보라고 준 책입니다. (좋은 책 소개해 준 FineApple님에게 감사드립니다. ^^) 처음 받았을 때는 표지도 좀 별루고~ 다른 볼 책들도 있었기에.. 한쪽에 두고 있었슴다. 그러다가 "이거 한 번 읽어볼까.." 하고 봤더니.. 오~~ 처음부터 내용이 너무 괜찮은 거예요.. 개발자에 대한 이야기들.. 유니코드~~ 기능명세 관련 글.. 내용이 너무 괜찮아 웹에서 찾아봤더니.. 2006년인가 베스트셀러에 강컴 어워드였더군요.. (그동안 책을 너무 안읽었어 -.-) 끝까지 읽어보니 첫 느낌대로 책의 내용은 괜찮았습니다. 이것저것 블로그 글을 모아둔 것이라서 그런..
프로젝트 관리자에게 중요한 능력중의 하나가 바로 의사소통 능력이라고 생각합니다. 개발자들, 디자이너들, 영업팀, 고객, 그리고 회사 책임자들까지~~ 모두들 생각하고 원하는 바가 다름에도 불구하고, 서로를 이해하려는 부분이 약한 것이 사실입니다. 이것을 프로젝트 관리자 즉 PM이 해결해 주어야 한다고 생각합니다. 고객이 원하는 시스템을 파악하고, 개발자들이 원하는 형태로 설명해 주고, 디자이너와의 마찰을 줄여주고, 영업팀이 더 많은 프로젝트를 수주할 수 있도록 파워포인트의 기술 자료를 보완해주고, 회사 책임자에게 프로젝트 진행 상황과 위기관리에 대해 보고해야 하는... 정말 다양한 부류의 사람들과 의사소통할 수 있는 능력~~ 그래서 흔히 PM을 개발자들 중 최고의 프로그래머에게 맡기는 것은... 프로젝트가..
개인적으로 올 초에 Ruby on Rails를 좀 살펴봤었습니다. 10년 전에 만들어진 Ruby라는 언어와.. 일종의 프레임워크를 적용하여 웹 어플리케이션을 개발할 수 있는 환경을 제공하는 Rails라는 것이었는데요... 물론 실전에서는 한번도 써보지 못하고.. 걍 예제 프로그램 정도만 만들어 봤었죠~ 요즘은 Groovy라는 언어와 Grails라는 것을 보고 있습니다. 자바와 같은 바이트 코드를 만들어 주는 스크립트 언어인 Groovy에.. rails와 비슷한 MVC 환경을 만들어 주는 Grails가 있다고 하더군요.. 아무래도 자바 환경에서 동작하므로 ruby on rails 보다는 쓰임새가 많을 것 같아.. 살펴보고 있습니다. 오늘 이런 이야기로 시작하는 이유는.. 제 개인적인 욕심 때문입니다. -...
Effective Java Programming Language Guide 조슈아 블로치 지음, 이해일 옮김/대웅미디어 VC++ 위주의 프로그래밍을 하다가 자바를 시작한지는 몇년 되지 않았기 때문에.. 기본적인 문법을 다루고, 시스템을 구축하기는 어렵지 않았지만 자바 언어 자체에 대한 이해는 부족했던 것이 사실입니다. Effective Java란 책을 읽어 보면서 자바 언어에 대해 좀 더 이해하게 됐다는 느낌이 들었습니다. 솔직히 equals나 hashCode의 재정의 같은 부분은 클래스를 수없이 만들면서도 한번도 생각하지 못한 것이었거든요 -.- 다만, 아쉬웠던 점은 번역서들이 대부분 그렇듯이.. 난해한 번역투의 문장이 많은 것이죠 ^^ 아마도 원서의 내용은 매우 좋았을 것 같은데~~ 영어가 부족하니...
실용주의 프로그래머 책에 다음과 같은 이야기가 나옵니다. 요구사항이 지면에 놓여져 있는 경우는 퍽 드물다. 보통은 가정과 오해, 정치의 지층들 속 깊이 묻혀 있다. 프로젝트를 진행하면서 가장 어려운 부분이 요구분석단계라고 생각합니다. 열심히 분석하고 반영해도.. 프로젝트 진행 중에 결국 수정이 발생하는 부분이기도 하구요.. 발생한 수정에 대해 누구의 탓도 할 수 없게되는~~ 그래서 실제로 그 프로그램을 사용할 사람들과 함께 일하면서 사용자 처럼 생각해 보는 것이 도움이 된다고 이야기를 하기도 합니다. 고객과의 의사소통이 중요한 것은 다음 그림에서도 잘 표현되어 있는 것 같습니다. 예전에 데브피아에서 가져온 것인데.. 정확한 출처는 모르겠네요.. -.- 그리고 미친병아리님이 올린 다음 글도 참고해보세요~~..
데드라인 톰 디마르코 지음, 김덕규, 류미경 옮김/인사이트 "프로젝트 관리" 관련 포스트에서 가끔 인용했던 톰 디마르코(Tom DeMarco)의 '데드라인'을 소개합니다. 일단, 딱딱한 "프로젝트 관리"를 소설 형식으로 쉽게 이야기하고 있습니다. 그래서 읽기가 편하고, 내용이 어렵지 않고, 설명도 잘 되어 있습니다. 물론, "프로젝트 관리"에 초점을 맞추다보니, 소설 내용이 작위적이면서 개연성이 없기는 합니다. 어차피 재미있는 소설책을 원한게 아니었으므로 큰 문제는 없다고 봅니다. 각 장(章)의 마지막에 "프로젝트 관리"에서 중요한 내용을 요약한 부분이 있는데, 참고 자료로 활용 가치가 있습니다. 요약 내용 중 일부를 발췌해서 올립니다. 모든 일에 변화가 필요합니다. 하지만, 사람들은 변화를 쉽게 받아들..
얼마전 IT 개발자의 야근에 대한 글이 블로고스피어에 많이 나온 적이 있었습니다. 저도 IT 개발자들의 야근~~ 이라는 제목으로 포스트를 하나 올렸었는데요.. 오늘은 프로젝트 관리에 있어서 야근, 즉 초과근무를 어떻게 바라봐야 할 것인지에 대해서 간단히 이야기하려고 합니다. 먼저 야근을 왜 하게 될까? 하고 생각해 봤습니다~~ 첫째는 본인 스스로 눈치를 보면서 하지 않을까 합니다. 모두 야근하는데.. 나만 먼저 가면 찍히니까.. 둘째는 관리자의 압력에 의해서.. 즉, "이것 오늘까지 끝내~~" 하는 무리한 작업요청이 있을 수 있죠.. 셋째는 정말로 할일이 많아서... 딱히 할 말이 없는 경우죠. 하지만, 이런 경우는 프로젝트에서 한 두번 마감 직전에 있지 않을까 합니다. 그렇지 않다면 프로젝트의 일정관리..