로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
서평보기
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .Net Libraries
Brad Abrams | Addison-Wesley Professional | 원서 | 2005-09-01
종합평점
도서수준
.NET 개발에 지침서 2006-04-30 오후 10:44:24 
평점
도서수준
조회수 (1428)
공감 (0)
김유신 님의 블로그
정말 오랫동안 찾고 찾던 책을 드디어 만난 것 같다. 그 동안 개발에 있어 나름의 명명규칙, 방법론과 규칙을 가지고 일해오고 있었지만 잘하고 있는지 잘못하고 있는지 의문을 가진 체 일해오고 있었던 것이 사실이었다. 이에 대한 고민을 계속 지닌 체 일해오다 우연히 이 책의 제목이 눈에 들어왔다. 목차에서 오랫동안 고민해온 문제들을 나열하고 있었다. 사고 나서 한참을 읽어보기 시작한 후 알았지만 MSDN 매거진 2006년도 2월호 Toolbox 칼럼에서 소개도 되었고, 2006년 기술분야 졸트 어워드에서도 Productive Winners를 수상하였다.
이 책의 서문을 작성해준 오브젝트 파스칼의 설계를 담당하기도 했고 MS로 옮겨 닷넷 설계의 중요한 역할을 맡았던 앤더스 헤졀스버그가 서문에서도 소개 하다시피 닷넷 프레임웍이 1.0, 1.1, 2.0이 나오기까지 6년 동안 지속적으로 수정하고 가다듬어진 내용을 이 책의 공동저자인 브래드 애브람스와 크리스토프 솔리나가 역어 냈다. 참고로 이들은 오래 전부터 닷넷 프레임웍을 설계하고 연구해온 마이크로소프트의 CLR팀의 프로그램 매니저이다. 한마디로 이 책은 마이크로소프트의 닷넷 개발 지침서라고 할 수 있다.
책이 두껍지도 않으면서 프레임웍을 설계하는 데 있어 지침을 DO, CONSIDER, DO NOT, AVOID로 분류해서 제시하고 있다는 점이 흥미롭다. 각 주제별로 완벽한 예제는 아니지만 내용을 이해할 수 있을 만큼의 간단한 예제를 소개하고 있어 이해가 쉽다. 닷넷 개발을 해왔다면 들어봤을 만한 제프리 리터와 크리스 셀스, 에릭 구너슨의 의견을 중간 중간에 박스에 소개하고 있는데 이를 읽는 것은 또 다른 흥미로움을 준다. 오히려 이곳에서 지침을 얻을 수 있기도 하고 이들의 고민과 오랜 경험을 읽어낼 수 있다.
책을 읽어보면 알겠지만 베이스 클래스 라이브러리의 명명 규칙들과 디자인이 왜 이렇게 되었는지 알 수 있다. 클래스에서부터 그 안에 구성요소인 메서드, 속성, 이벤트, 필드, 매개변수 등의 이름을 어떻게 짓는 것이 좋은지 일일이 소개하고 있다.
이 책에 담고 있는 명명규칙에 대해서만 조금만 소개하면 앤더스 헤절스버그가 설계에 중요 역할을 맡아서인지는 몰라도 매개변수만을 제외하고 식별자에 대해서 각 단어에 해당하는 첫 문자를 대문자로 적용하는 파스칼캐싱을 적용할 것을 권고 하고 있다. 오로지 매개변수만 첫글자를 소문자로 취하고 단어에 해당하는 첫글자를 대문자로 하는 캐멀캐싱을 적용하는 것으로 알면 되는 것이다. 헝가리안 표기법은 사용하지 말라고 하는데 요즘은 비주얼스튜디오에서 식별자에 마우스만 올리면 형식을 알 수 있기 때문에 이해가 가는 부분이다. 아마도 OOP에서는 짧은 스타일을 선호해서 그런 것 같다. 제프리 리터는 OOP에서는 변수가 좁은 영역에서 사용되는 경향이 있고 몇 라인만 훑어봐도 그 변수의 정의를 찾을 수 있어 이점을 인정한다고 하지만 일반 종이에서도 변수가 어떤 형식을 가지는지 알고 싶어 아쉬움을 가지고 있는 듯 하다. 리터는 모든 필드를 Private 필드로 작성하고 인스턴스 필드에 m_ 접두어를 붙이고 스태틱 필드에 s_ 를 붙인다고 한다. 하지만 이 책에서는 _언더바는 사용하지 말라고 하고 있다. 리터는 외부에 노출되는 요소 아니기 때문에 문제가 없다고 보는 것 같다. 베이스 클래스 라이브러리의 클래스의 이름을 자세히 들여다 보면 MFC와 달리 C접두어를 붙이지 않고 명사나 명사구 형용사구의 형태를 취하고 있다는 것을 알 수 있다. 메서드나 이벤트의 이름은 동사의 형태를 취하라고 하고 있다. 그리고 상황에 따라서 어느 것을 사용해야 하는지 추상클래스는 어느 때 쓰면 좋은지 각 타입에 대한 디자인 지침을 소개하고 있다. 재사용, 테스트가 쉽고 확장하기 쉬운 클래스는 어떻게 만들어지는 궁금해왔던 사람은 바로 이 책에서 어느 정도 해답을 얻을 수 있을 것이다.
이 책은 닷넷 2.0에서 새롭게 추가된 기술을 충분히 반영하여 소개하고 있는데 옛 기술에 머무르는 내용(1.1)이 아닌지 우려를 했다면 걱정을 떨쳐도 된다. 9장에서는 일반적으로 많이 사용되는 디자인 패턴에 대해서 소개하고 있어 보너스를 얻은 것 같았다. 부록 A에서는 C# 코딩 스타일 규칙에 대해 소개하는데 괄호와 스페이스를 어떻게 사용해야 하는지, 들여쓰기 규칙, 주석 다는 요령, 파일 구성 요령 등이 소개되고 있다. 이 부분은 다소 짧고 간단한 내용이어서 기대보다 실망할 수 있지만 어느 정도 도움을 얻을 수 있을 것이다. 좀 더 보완될 필요는 있어 보인다. 이 책을 읽고 나름의 규칙을 세워보는 것도 좋을 것이다.
책 제목이 프레임웍 설계 지침이라고 하지만 기반 언어는 C#을 가지고 예를 들어 소개하고 있다. 그렇다고 해서 다른 언어(자바, C++등)를 사용하는 개발자에게 전혀 도움이 안 되는 것은 아니다. 다양한 규모의 프레임웍을 설계하고 개발하고 재사용할 수 있는 컴포넌트를 개발하고 설계하는 사람이라면 언어에 구애 받지 않는 내용이어서 4, 5, 6, 9장에서 많은 영감을 얻을 수 있을 것이다. 부록 B에서는 설계 지침을 프로그램으로부터 도움 받을 수 있는 FxCop이라는 프로그램에 대해서 소개하고 있다. 다만 이 프로그램의 지침을 다 지키기는 참 힘들 것 같다. 또한 프레임웍을 설계하고 문서를 작성하는 사람을 위해서 샘플 API 명세도 담고 있어 회사 자체에서 만든 API를 문서화하는 데 참고 할 수 있다.
이 책은 DVD 부록이 포함되어 있는데 그 내용은 책의 내용을 기반으로 책에 나오는 저자의 목소리를 들을 수 있다. 다만 동영상은 화면보다 소리가 위주이므로 실망할 수도 있고 영어 스크립트가 없어 듣기가 안되면 별로 도움이 안된다. 평소에 MSDN Show를 많이 봐두었다면 듣는데 별 지장은 없을 것이다.
이 책은 일반 개발서에서는 찾아보기 힘든 독창적인 좋은 내용을 담고 있다. 구체적인 구현 사례를 원했다면 만족할 수 없으나 이 책의 취지는 구체적인 구현 사례보다는 설계나 명명규칙에 대한 지침이다. 닷넷 프레임의 디자인에 대한 지침서라고 할 수 있는 이 책은 닷넷 개발에 관여하고 있는 사람이라면 읽어볼 것을 적극 추천하고 싶다. 재사용이 쉬운 좋은 디자인의 누가 보더라도 이해하기 쉬운 일관성 있는 코드를 전염시키기 위해서라도 많은 개발자들에게 이 책을 소개하고 싶다.


 
코멘트 0   공감 0
코멘트작성
 
이메일주소수집거부