| 객체지향 시스템에 대해, 많은 책들이 시중에 나와있다. 그리고 객체지향 언어를 소개하는 책들도 저마다 객체지향에 대한 내용을 가지고 있다. 하지만, 객체지향의 이론에서부터 객체지향의 실제까지 모두를 다루고 있는 책들은 그렇게 흔치 않다.
필자는 객체지향 시스템을 구축해온 그 동안의 경험을 바탕으로 객체지향의 이론과 실제를 모두 다루는 책을 집필하게 되었다. 그리고 객체지향의 실제를 다루기 위해 사용한 주제는 "디자인 패턴"으로, 객체지향의 실제를 보여주는 데 있어 디자인 패턴보다 나은 주제는 없다고 생각을 한다.
이 책의 처음 부분은 객체지향의 이론을 설명하는 데 할애하고 있다. 그리고 객체지향 언어를 이용하여 설명된 이론을 구현해 본다. 그 다음엔 잠시 쉬어 가는 시간으로 객체지향 시스템의 분석과정과 설계과정에서 수행해야 하는 내용을 UML을 이용하여 살펴본다. 그 다음엔 객체지향의 실전인 디자인 패턴을 다루면서 책은 마무리가 된다.
책이 이러한 구조를 갖게 된 것은, 소프트웨어를 공부하는 독자들에게 객체지향에 대한 기본기를 단단히 다지도록 만들기 위해서이다. 독자들이 이 책이 가진 내용을 바탕으로 객체지향의 이론과 실제를 경험하고, 또 앞으로 객체지향 시스템을 작성하면서 객체지향의 장점을 마음껏 활용하기를 바라는 마음 간절하다. _ 저자 프롤로그 중에서
소프트웨어는 대단한 복잡하고 다루기 힘든 대상이라는데에는 이견을 달 사람을 없을 것이다. 최초의 프로그래머가 등장한 이후부터 그들에게는 지옥과 같은 고뇌의 연속이었다. 산업은 점점 더 소프트웨어에 대한 의존도가 높아지고 요구사항은 폭발적으로 늘어가지만 소프트웨어 기술이란 여전히 미비하여 그것을 정복하기에는 항상 역부족이었고 아마 앞으로도 이러한 상황은 지속될 것이다.
소프트웨어의 개발에 있어서 최대 핵심은 복잡도를 낮추어 최대한 단순하게 만드는 작업일 것이다. 수많은 사람들이 다양한 관점에서 그리고 다양한 방법으로 그러한 작업을 쉽게 하기 위한 고민과 시도를 해왔었다. 훌륭한 프로그램 언어를 개발함으로써, 훌륭한 개발 방법론을 고안함으로써 그리고 재사용 가능한 소프트웨어 시스템을 개발함으로써 큰 성과를 낳은 기술들이 많이 있어왔다.
그 중 대표적인 것이 바로 객체지향 기술이 아닐까 싶다. 사실 객체지향 기술이라는 말은 매우 포괄적이다. 객체지향 프로그래밍, 객체지향 분석/설계, 객체지향 언어 등 수많은 분류가 등장하였고 분명 소프트웨어 분야에 큰 획을 그은 기술임에는 틀림이 없다.
현대의 소프트웨어 개발 경향을 살펴보더라도 객체지향 기술은 이제 선택이 아닌 필수가 되었고 자신도 모르는 사이에 자연스럽게 받아들이게 될 정도로 깊숙히 자리 잡게 되었다. 최근에는 크게 관심을 불어모으는 객체지향 기술들이 있는데, 마이크로소프트에서 개발한 새로운 객체지향 언어인 C#과 설계에 대한 재사용의 단위가 되는 디자인 패턴(Design Pattern) 그리고 소프트웨어 시스템을 모델링하기 위한 표준 언어인 UML(Unified Modeling Language)이 바로 그것들이다.
C#은 실용적인 객체지향 프로그래밍 언어의 결정체라고 할 수 있다. C#은 철저하게 산업계에서 입증된 Visual Basic, Delphi, Java 등의 언어의 우수한 특징들을 수용하고 있어서 개발자들에게 큰 환영을 받고있다. 분명 C#은 훌륭한 객체지향 언어이고 앞으로 많은 시스템 개발에 사용되어 사용자들 사이에 깊이 자리 잡을 것이다.
미국 하버드 대학을 가보면 큰 잔디밭이 있는데, 재미있는 것은 사람이 다니기 위해 잔디밭 위에 나있는 길이다. 어떤 정돈되고 계획된 길이 아닌 바로 사람이 다녔던 흔적을 따라 만들어진 길이다. 사람들은 그 길을 따라 강의실을 빠르고 쉽고 편하게 옮겨 다닐 수 있다. 만약 소프트웨어 개발에 있어서도 오래전 뛰어난 사람들이 미리 만들어 놓은 바로 그 잔디밭길과 같은 것이 있다면 아마도 나중에 소프트웨어 개발자들에게 있어서는 너무도 훌륭한 지침이 될 것이다. 다행히도 우리는 그것을 디자인 패턴(Design Pattern)이라는 형태의 것으로 이어 받고 있다.
OMG는 객체지향 기술과 관련한 산업계 표준을 제정하는 곳이다. OMG는 1997년 UML(Unified Modeling Language)라는 소프트웨어 모델링 언어를 표준으로 제정하였다. 그 후로 UML 급속도로 번지기 시작하여 현재는 객체지향 시스템을 모델링하기 위한 언어로 거의 대부분이 UML이 사용되고 있다. 얼마전 조사에 따르면 미국에서는 약 70%의 소프트웨어 개발에서 UML이 사용되고 있는 것으로 나타났다. 디자인 패턴을 표현하기 위한 언어도 이제는 모두 UML이 차지하고 있다.
이상 소개한 3가지의 주요 기술은 앞으로 소프트웨어 산업계를 주도한 주역들임에는 분명하다. 비록 C#을 소개하는 국내 도서는 많이 있지만 디자인 패턴과 UML을 사용한 객체지향 분석/설계의 내용을 다루는 도서는 거의 찾아보기 힘들었다. 이 책의 핵심 내용은 분명 디자인 패턴이다. 하지만 디자인 패턴만을 나열하는 것은 큰 의미가 없는지라 이 책에서는 객체지향의 기본 개념 설명으로 시작하여 UML을 사용한 시스템 분석/설계의 내용을 포함하면서 C# 언어를 사용하여 디자인 패턴의 예제를 직접 보여줌으로써 서로 떼어놓을 수 없는 기술들에 대한 연관성을 유지한다는 점에서 다른 책들과는 분명 차별성을 둘 수 있다. _ 감수자의 말 중에서 |