"프로그래머가 가장 많이 만지작거리는 클래스, 제대로 만들고 있습니까?"
"객체지향 프로그래머에게 가장 중요하고 빈번한 클래스 구조 분석과 설계, 이 책에서 그 길을 제시해줍니다"
아키텍트가 아무리 설계를 잘 해도 개발자가 클래스를 잘못 다루면 부실공사가 되기 십상이다. 이 책은 클래스를 정확하고 충분하게 추출해내는 방법부터 추출된 클래스에 연산, 정보은닉, 관계, 상속, 다형성의 객체지향이라는 요소를 어떻게 구성하는지에 관한 방법과 실례를 보여준다.
이 책의 주요 내용
- 다양한 객체지향 개념을 간단하게 소개한다.
- 객체와 클래스를 구분하고 문제 기술서가 주어졌을 때 어떻게 클래스를 도출하는지를 설명한다.
- 도출된 각 클래스에 대해서 속성을 찾는 방법을 설명한다.
- 도출된 각 클래스에 대해서 연산을 찾는 방법을 설명한다.
- 객체지향의 기본 개념인 정보은닉을 소개한다. .
- 도출된 각 클래스 간에 존재할 수 있는 연관 관계, 집합 관계, 의존 관계 등을 설명한다.
- 객체지향에서 가장 중요한 개념 중의 하나인 상속을 설명한다.
- 객체지향 프로그램의 유지 보수성과 확장성을 높이는 데 기여하는 다형성을 설명한다.
1장_ 이 책에서 소개하는 다양한 객체지향 개념을 간단하게 소개한다. 구체적인 설명과 사례는 2장 이후를 보도록 한다.
2장_ 클래스에 대한 이해에 초점을 둔다. 즉, 객체와 클래스를 구분하고 문제 기술서가 주어졌을 때 어떻게 클래스를 도출하는지를 설명한다.
3장_ 도출된 각 클래스에 대해서 속성을 찾는 방법을 설명한다. 물론, 각 클래스별 속성을 UML, C++ 언어와 Java 언어에서 어떻게 표현하는지도 다룬다.
4장_ 도출된 각 클래스에 대해서 연산을 찾는 방법을 설명한다. 물론, 각 클래스별 연산을 UML, C++ 언어와 Java 언어에서 어떻게 표현하는지도 다룬다.
5장_ 객체지향의 기본 개념인 정보은닉을 소개한다. 즉, 클래스의 멤버에 대한 가시성을 설정함으로써 어떻게 정보은닉을 구현하고 이를 통하여 프로그램의 유지 보수성이 높아질 수 있는지를 설명한다. 물론 UML, C++ 언어와 Java 언어에서 어떻게 정보은닉을 표현하는지도 설명한다.
6장_ 도출된 각 클래스 간에 존재할 수 있는 연관 관계, 집합 관계, 의존 관계 등을 설명한다. 각 유형의 관계를 UML에서 표현하는 방법과 C++ 언어 및 Java 언어에서 각 관계가 어떻게 코드로서 표현되는지를 설명한다.
7장_ 객체지향에서 가장 중요한 개념 중의 하나인 상속을 설명한다. 즉, 상속을 사용할 때의 이점이 무엇이고, 상속 관계는 어떤 상황에서 사용하는 것이 바람직한지를 소개한다. 물론 UML, C++ 언어, Java 언어에서 어떻게 상속이 표현되는지를 소개한다.
8장_ 객체지향 프로그램의 유지 보수성과 확장성을 높이는 데 기여하는 다형성을 설명한다. 다형성이란 무엇이고, 어떤 이점을 제공하는지 그리고 C++ 언어와 Java 언어에서 다형성은 어떻게 표현되는 지를 소개한다.
CBD 또는 객체지향 개념을 도입한 프로젝트에서 가장 중요한 것은 아키텍처다. 그러나 그에 못지 않게 중요한 또 하나의 요소로 클래스 설계를 들 수 있다. 그것은 아키텍처가 거시적인 관점에서 행해진다면, 클래스 설계는 미시적인 관점에서 수행되기 때문이다. 견고하게 아키텍처가 설계되었다고 하더라도 세부적으로 클래스를 제대로 추출해내지 못하고 클래스간의 관계 또한 엉성하게 구성되어 전체 프로젝트에 악영향을 미치는 경우를 종종 보게 된다. 이 책은 그러한 세부적인 부분을 튼튼하게 하여 전체적인 프로젝트의 완성도를 높일 수 있게 기본부터 철저하게 파헤치고 있는 책이다. - 전병선(오픈컨설팅그룹 대표 컨설턴트)