이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
객체지향적으로 생각하라!
베스트
IT 모바일 top20 1주
가격
20,000
10 18,000
YES포인트?
1,000원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
  • 교재기간 소량 입고 되는 도서로 배송이 지연 될 수 있습니다.

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

Chapter 1 객체지향 개념 소개
절차지향과 OO 프로그래밍
절차지향에서 객체지향 개발로 이동
절차지향 프로그래밍
OO 프로그래밍
객체란 정확히 무엇인가?
객체 데이터
객체 행위
클래스란 정확히 무엇인가?
클래스는 객체 템플릿이다
속성
메서드
메시지
UML을 사용하여 클래스 다이어그램 모델 만들기
캡슐화와 데이터 은닉
인터페이스
구현
인터페이스/구현 패러다임의 실제 예
인터페이스/구현 패러다임의 모델
상속
상위 클래스와 하위 클래스

추상화
Is-a 관계
다형성
조합
추상화
Has-a 관계
결론
이 장에 사용된 예제 코드

Chapter 2 객체 관점에서 생각하는 방법
인터페이스와 구현 간의 차이가 있다는 점을 인식
인터페이스
구현
인터페이스/구현 예
인터페이스를 설계할 때 추상적으로 생각하기
사용자에게 가능한 최소한의 인터페이스를 제공
사용자 확인
객체 행위
환경적 제약 사항
공개 인터페이스 확인
구현 확인
결론
참고 도서

Chapter 3 고급 객체지향 개념
생성자
언제 생성자를 호출하는가?
생성자 내부에는 무엇이 있는가?
기본 생성자
다중 생성자 사용
생성자 설계
오류 처리
문제를 무시한다
문제를 점검하고 응용 프로그램을 취소한다
문제를 점검하고 복구를 시도한다
예외 던지기
범위의 개념
로컬 속성
객체 속성
클래스 속성
연산자 오버로딩
다중 상속
객체 연산
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 4 클래스 해부
클래스의 이름
주석
속성
생성자
접근자
공개 인터페이스 메서드
비공개 구현 메서드
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 5 클래스 설계 지침
현실 세계 시스템 모델링
공개 인터페이스 확인
최소한의 공개 인터페이스
구현 은닉
견고한 생성자(또는 소멸자) 설계
오류 처리를 클래스 속에 설계
클래스 문서 작성 및 주석 사용
협력하기 위한 객체 구성
재사용을 고려한 설계
확장성을 고려하여 설계
서술형 이름 사용
이식 불가 코드 추상화
객체 복사 및 비교 방법 제공
가능한 작은 범위 유지
클래스가 스스로 책임지도록 한다
유지보수를 고려하여 설계
반복 사용
인터페이스 테스트
객체 지속성 사용
객체 직렬화와 마샬링
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 6 객체를 사용한 설계
설계 지침
적합한 분석 수행
작업 명세서(SOW) 개발
요구 사항 수집
사용자 인터페이스 원형 개발
클래스 확인
각 클래스의 책임 역할 결정
클래스가 상호 협업하는 방법 결정
시스템을 설명하는 클래스 모델 작성
사례 연구: 블랙잭 예제
CRC 카드 사용
블랙잭 클래스 확인
클래스의 책임 역할 확인
UML 유스케이스: 협업 확인
처음 통과한 CRC 카드
UML 클래스 다이어그램: 객체 모델
사용자 인터페이스 원형 작성
결론
참고 도서

Chapter 7 상속과 조합
객체 재사용
상속
일반화 및 특수화
설계상 결정
조합
UML을 사용하여 조합 표시
캡슐화가 OO의 기본이 되는 이유
상속이 캡슐화를 약화시키는 방법
다형성에 대한 자세한 예제
객체 책임 역할
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 8 프레임워크와 재사용:
인터페이스와 추상 클래스를 이용한 설계
코드: 재사용할 것인가? 재사용하지 않을 것인가?
프레임워크란 무엇인가?
계약이란 무엇인가?
추상 클래스
인터페이스
한 곳에 묶기
컴파일러 증명
계약 체결
시스템 플러그인 포인트
E-비즈니스 예제
E-비즈니스 문제
재사용하지 않는 접근 방법
E-비즈니스 솔루션
UML 객체 모델
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 9 객체 구성
조합 관계
단계별 구성
조합의 유형
집합
연관
연관과 집합을 함께 사용하기
의존 관계 피하기
카디널리티
다중 객체 연관
선택적 연관
하나로 결합하기: 예제
결론
참고 도서

Chapter 10 UML을 이용한 객체 모델 생성
UML이란?
클래스 다이어그램의 구조
속성과 메서드
속성
메서드
액세스 표시
상속
인터페이스
조합
집합
연관
카디널리티
결론
참고 도서

Chapter 11 객체와 이식 가능한 데이터: XML
이식 가능 데이터
확장 가능 마크업 언어(XML)
XML과 HTML
XML과 객체지향 언어
두 회사 간 데이터 공유
DTD를 사용하여 문서 유효성 확인
DTD를 XML 문서에 통합
CSS의 사용
결론
참고 도서

Chapter 12 지속 객체: 직렬화와 관계형 데이터베이스
지속 객체 기초
객체를 플랫 파일로 저장
파일 직렬화
다시 살펴보는 구현 및 인터페이스
메서드는 어떤가?
직렬화 과정에서 XML 사용
관계형 데이터베이스에 기록
관계형 데이터베이스 액세스
드라이버 로딩
연결 맺기
SQL 문
결론
참고 도서
이 장에 사용된 예제 코드

Chapter 13 객체와 인터넷
분산 컴퓨팅의 발전
객체 기반 스크립팅 언어
JavaScript 유효성 확인 예제
웹 페이지에 있는 객체
JavaScript 객체
웹 페이지 컨트롤
사운드 플레이어
동영상 플레이어
Flash
분산 객체와 엔터프라이즈
CORBA
웹 서비스 정의
웹 서비스 코드
Invoice.cs
Invoice.vb
결론
참고 도서

Chapter 14 객체와 클라이언트/서버 응용 프로그램
클라이언트/서버 접근 방법
독자 표준 접근 방법
직렬화된 객체 코드
클라이언트 코드
서버 코드
독자 표준 클라이언트/서버 예제 실행
독자 표준이 아닌 접근 방법
객체 정의 코드
클라이언트 코드
서버 코드
독자 표준이 아닌 클라이언트/서버 예제 실행
결론
참고 도서
이 장에 사용된 코드 예제

Chapter 15 설계 패턴
왜 설계 패턴인가?
Smalltalk 모델/뷰/컨트롤러
설계 패턴의 유형
생성 패턴
구조 패턴
행동 패턴
안티패턴
결론
참고 도서
이 장에 사용된 코드 예제

찾아보기

저자 소개

저자 : 맷 와이스펠드(Matt Weisfeld)
맷 와이스펠드(Matt Weisfeld)는 오하이오주, 클리브랜드(Cleveland) 소재 Cuyhoga Community College(Tri-C)의 경영 기술 분야 부교수이다. 기술 위원회 멤버로서 프로그래밍, 웹 개발, 사업 개발에 집중하고 있다. Tri-C에 오기 전 와이스펠드는 20년간 정보 기술 업계에서 소프트웨어 개발, 프로젝트 관리, 소규모 사업 관리, 사내 교육 및 시간 강의 경험을 쌓았다. 컴퓨터과학 석사(MS)와 프로젝트 관리 분야 경영학 석사(MBA)를 취득하였다. ?The Object-Oriented Thought Process? 1판, 2판 이외에도 2권의 컴퓨터 도서를 출간하였고 developer.com, Dr. Dobb’s Journal, C/C++ Users Journal, Software Development Magazine, Java Report 등의 잡지와 저널, 그리고 국제 저널 Project Management에 논문을 기고하였다.
역자 : 배선종
연세대학교 컴퓨터공학 석사로 한국 마이크로소프트, Office XP 한글화, (주)피델릭스, 무선통신단말 기획, (주)엔텔스, 글로벌사업팀장, 이동통신솔루션 해외 프로젝트/컨설팅 업무를 담당하였다. 현재 AirBird 대표 컨설턴트로 있다. 번역서로는 'Microsoft Windows 2000 Server Internetworking Guide Resource Kit', 'Microsoft Windows 2000 Active Directory Programming', '전문 사용자를 위한 Microsoft 한글 오피스 XP Resource Kit', '나의 무지를 일깨워준 시간들'이 있다.

품목정보

발행일
2009년 05월 07일
쪽수, 무게, 크기
420쪽 | 952g | 187*235*30mm
ISBN13
9788956744612

책 속으로

일반 언어와 컴퓨터 언어는 공통점이 많으며 언어학 분야에서 얻게 되는 통찰력은 대부분 컴퓨터 공학 분야에도 적용할 수 있다. 한 언어에서 자주 사용하는 특징적인 표현이 나오기까지는 짧지 않은 역사가 그 배후에 있다. 또한 특정 문법 체계가 정리되기까지 어떤 논리적인 근거가 있는지 찬찬히 살펴보면, 실제적인 원리를 발견하고, 이후에 유사한 표현을 더 능숙하게 구사할 수 있다. 객체지향(OO), 객체지향 프로그래밍(OOP)이 주목을 받게 된 배경과 함께 그 기초가 되는 개념과 기술의 근본 원리를 제대로 파악할 수 있다면, 실제 업무 상황에서 더 유연하게 대처할 수 있다. 뭐든 뿌리까지 파헤쳐 보아야만 직성이 풀린다면, 객체지향 프로그래밍 기법이나 개발 도구에 편중된 책만 읽어서는 아쉬울 수밖에 없다. 무엇인가 뒤에서 잡아당기는 것 같은 개운치 않은, 근본적인 지식 결핍 증상을 경험하게 된다.

이 책은 단순한 프로그래밍 도서가 아니다. 객체지향(OO) 방식으로 생각하는 과정이란 주제를 다루기 때문에 객체지향 프로그래밍(OOP)을 개념적으로 잘 파악할 수 있는 좋은 안내서이다. 한 가지 더 다행스러운 점은 Java와 .NET 코드가 나오기는 하지만 설명하려는 개념을 예시하기 위한 목적일 뿐 이 책을 이해하는데 반드시 알아야 하는 내용은 아니다. 그만큼 넓은 독자층을 수용한다는 의미이다. 컨설턴트, PM, CTO 등 실제 코딩에는 관여하지 않지만 IT 프로젝트를 계획하고, 의사 결정하고, 실행하는 과정에 참여한 여러 이해관계자들 모두에게 유용하다. 실무에서 자주 접하게 되는 객체지향(OO), 객체지향 프로그래밍(OOP)과 관련된 다양한 주제에 대해 보다 분명한 그림을 가질 수 있을 것이다. 코드 재사용, 이식성, e-비즈니스, XML, UML, 설계 패턴과 같은 굵직한 주제들을 객체지향(OO) 관점에서 이해할 수 있다.

프로그램 설계에 있어 객체지향을 구현하는 방법을 알려주는 책은 많지만 왜 그런 식으로 구현해야 하는지 속 시원히 알려주는 책은 드물다. 실제로 설계하면서 부딪히는 선택과 결정에 있어 참고할 만한 사례 연구(Case Study)가 있다는 것은 큰 도움이 된다. 예를 들어, 6장에 있는 블랙잭 게임 예제에서 클래스를 생성하는 실습을 하면서, 독자의 판단과 저자의 논리적인 근거를 비교해볼 수 있다. 이 책은 한 발자국 뒤로 물러나서 추상적인 관점에서 객체지향을 관찰함으로써 보다 실제적인 부분의 의미를 이해할 수 있도록 한다. 다시 말해서 먼저 큰 그림을 보여주고 나서 다음 구체적인 사례를 하나씩 자세히 다루어 가는 접근 방법을 사용하고 있다. 저자가 오랜 실무 경험에서 축적한 지식을 잘 정리했기 때문에 가능한 일이며 비슷한 고민을 하는 독자들에게 훌륭한 멘토의 역할을 할 수 있을 것이다.

때마침 평소에 입버릇처럼 이야기한 나이가 되어 새로운 일을 시작하면서 잠시 여유가 생겼고, 간결해 보이는 책이 마음에 들어 번역을 맡게 되었다. 하지만, 5번째 번역 작업임에도, 몇 년간 번역을 중단했기 때문인지, 매뉴얼이 아닌 개념서라서 그런 것인지, 생각처럼 만만치 않았다. 어중간한 한글 번역서를 보느니 차라리 영문 원서를 보는 편이 낫겠다는 그런 이야기가 나오지 않게 해야 한다는 마음에서일까, 10년 넘게 영어권 IT 업무를 처리하면서 습득한 자원을 쏟아 부으려 했지만, 여전히 조심스러울 뿐 더 많은 사람에게 유익을 줄 수 있다면 좋겠다.

이 책이 나올 수 있도록 함께 작업한 분들의 고마운 수고를 기억하며, 한결같은 사랑과 기도로 후원해 주신 어머니, 함께 삶의 여정을 가면서 교류하는 여러 동료, 선후배들에게 감사를 전하고, 얼마 전 아름다운 가정을 이룬 누나의 행복을 바라는 마음을 담아 이 책을 내보낸다.

--- '역자의 말' 중에서

출판사 리뷰

생각을 바꾸어야 보이는 객체지향 원리,
최신 응용 프로그램 사례를 마스터하기 위한
개발자용 객체지향 개념 안내서

객체지향 프로그래밍(OOP)은 C++, Java, C#, Visual Basic .NET 등 최근 프로그래밍 언어의 기초가 된다. OOP는 코드와 데이터를 별개의 실체로 취급하지 않고, 객체를 사용하여 설계하기 때문에 객체가 다른 객체의 서비스를 제대로 활용하고 그 기능을 상속할 수 있다. OOP는 코드 이식성 및 재사용을 촉진하지만 이를 제대로 이해하기 위한 사고의 전환이 필요하다. 객체지향 프로그래밍 언어의 세계로 뛰어들기 전에 먼저 객체지향 사고 과정을 확실히 익혀야만 한다.

객체지향 기술로 도약하기 원하는 개발자들뿐만 아니라 자신이 무엇을 관리하고 있는지 이해하려는 매너저들을 위해 개발자가 저술한 이 책은 해결 방법을 중심으로 객체지향 프로그래밍을 다룬다. 독자들은 상속이나 조합(composition), 객체 집합(aggregation) 그리고 연관(association)을 사용한 객체지향 설계, 인터페이스와 구현 간의 차이점을 배우게 된다. 또한 객체지향 개발 관점에서 보다 효율적이고 발전적인 방식으로 생각할 수 있게 된다.

이번 개정판에서는 다양한 기술 간의 상호운영성, 특히 의사소통 메커니즘으로서의 XML 사용에 초점을 두고 있다. 클라이언트/서버 아키텍처 및 웹 서비스 등 비즈니스 객체들이 네트워크를 통해서 어떻게 동작하는지 더 자세히 다룬다.

리뷰/한줄평3

리뷰

5.6 리뷰 총점

한줄평

6.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정