책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 객체지향 프로그래밍/UML
· ISBN : 9788976278050
· 쪽수 : 838쪽
· 출판일 : 2001-04-02
책 소개
목차
PART 1 기본 프로그래밍 구조
CHAPTER 1 컴포넌트 소프트웨어
→ 객체 지향 프로그래밍에서 컴포넌트 소프트웨어로
- 객체 지향 프로그래밍(Object-Oriented Programming)
- 코드 공유와 재사용(Code Sharing and Reuse)
- 컴포넌트 소프트웨어
→ COM+의 발전
- OLE에서 COM+로
- RPC와 COM+
→ COM에서 COM+로
- 윈도우즈 DNA : 3-계층 접근
- 컴포넌트 서비스
CHAPTER 2 IUnknown 인터페이스
→ 인터페이스 정의 언어(Interface Definition Language)
- 클라이언트
- CoInitializeEx 함수
- CoCreateInstance 함수
- IUnknown의 메쏘드
- CoUninitialize 함수
- V-Table 상태
- 클라이언트 프로젝트 빌드
→ 컴포넌트
- AddRef와 Release 메쏘드 구현
- IUnknown::QueryInterface 메쏘드 구현
- ISum::Sum 메쏘드(최종)
- IClassFactory 인터페이스
- 익스포트(export)되는 DLL 함수들
- CoCreateInstance 함수 재검토
- 컴포넌트 프로젝트 빌드
- Component Registration
→ 객체 구별자 병합(Merging Object Identity)
- 포함(Containment)
- 통합(Aggregation)
CHAPTER 3 언어 통합(Language Integration)
→ 타입 라이브러리(Type Library)
- 타입 라이브러리 사용하기
- 타입 라이브러리 작성
- 타입 라이브러리 등록
- 쉬운 C++ 클라이언트
- C++ 템플릿(간단한 소개)
- 네임스페이스(Namespace)
→ 액티브 템플릿 라이브러리(Active Template Library)
- ATL COM AppWizard
- ATL Object Wizard
- ATL을 사용하여 간단한 COM+ 객체 빌드
→ 비주얼 베이직으로 COM+ 프로그래밍
- QueryInterface : 비주얼 베이직의 방법
- 비주얼 베이직으로 COM+ 인터페이스 구현
- 비주얼 베이직으로 컴포넌트 빌드
→ 자바로 COM+ 프로그래밍
- 자바에서 COM+ 객체 호출
- 자바로 COM+ 객체 구현
- 샌드박스 모델(Sandbox Model)
CHAPTER 4 아파트먼트(Apartments)
→ 쓰레드에 대한 간단한 복습
→ 아파트먼트(Apartment) 타입
- 단일 쓰레드 아파트먼트(Single-Threaded Apartment)
- 멀티쓰레드 아파트먼트(Multithreaded Apartment)
- 아파트먼트간에 인터페이스 포인터 마샬링
- 쓰레딩 모델을 선택하는 방법
→ 인-프로세스 컴포넌트에 대한 쓰레딩 모델
- 아파트먼트 상호작용
- MTA 모델을 지원하는 객체
- 모든 아파트먼트 모델을 지원하는 객체
- 프리 쓰레드 마샬러(Free-Threaded Marshaler)
- 뉴트럴 아파트먼트(Neutral Apartment, NA)
- 아파트먼트 모델 비교
- 쓰레드-세이프(Thread-Safe) 컴포넌트 작성
→ 아파트먼트와 언어 통합
- 비주얼 베이직 컴포넌트에 대한 쓰레딩 옵션
- 자바 컴포넌트에 대한 쓰레딩 옵션
→ 쓰레딩 십계명
PART 2 기본 기능
CHAPTER 5 오토메이션(Automation)
→ IDispatch 인터페이스
- 오토메이션 타입
→ IDispatch 구현
- 순수 디스핀터페이스 설계
- 듀얼 인터페이스 설계
- 구현 기법
- 속성(Property)
- 컬렉션(Collection)
- (새로 개선된) IDispatchEx 인터페이스
→ 오토메이션 클라이언트 빌드
- C++로 오토메이션 클라이언트 빌드
- 비주얼 베이직으로 오토메이션 클라이언트 빌드
→ 스크립팅(Scripting)
- 스크립트로 오토메이션 클라이언트 빌드
- 스크립틀릿(Scriptlet)
CHAPTER 6 예외(Exceptions)
→ 에러 코드
- FACILITY_ITF 에러 코드
- 헬퍼 매크로(Helper Macro)
→ 풍부한 에러 정보
- ISupportErrorInfo 인터페이스
- ICreateErrorInfo 인터페이스
- 에러 정보 얻기
- IErrorInfo 인터페이스
CHAPTER 7 컴포넌트 카테고리(Component Category)
→ 표준 컴포넌트 카테고리
- 기본 컴포넌트
→ 컴포넌트 카테고리 등록
- ICatRegister 인터페이스
→ 컴포넌트 카테고리 정보 얻기
- ICatInformation 인터페이스
CHAPTER 8 커넥션 포인트(Connection Point)
→ 간단한 연결가능 객체
- 소스 인터페이스
- IConnectionPoint 인터페이스
- IConnectionPointContainer 인터페이스
- C++로 싱크 구현
- 비주얼 베이직 싱크
- 자바 싱크(Java Sink)
→ 완전한 연결가능 객체
- 열거자(Enumerator)
- 커넥션 포인트를 사용하는 때
CHAPTER 9 타입 정보(Type Information)
→ 타입 라이브러리 생성
- 타입 정보 추가
→ 타입 정보 얻기
- ITypeLib 인터페이스
- ITypeInfo 인터페이스
- ITypeComp 인터페이스
- 고수준 언어를 사용하여 타입 정보 읽기
CHAPTER 10 영속성(Persistence)
→ IPersist 인터페이스 패밀리
- IStream 인터페이스
- 객체 영속시키기
- 영속가능 객체 구현
- 비주얼 베이직으로 영속가능 객체 빌드
- 자바로 영속가능 객체 빌드
→ 구조화된 저장소(Structured Storage)
- IStorage와 IStream 인터페이스
- IPropertySetStorage와 IPropertyStorage 인터페이스
CHAPTER 11 모니커(Moniker)
→ 객체 초기화
- 클래스 객체(Class Object)
- 커스텀 활성화 인터페이스(Custom Activation
... Interface)
→ 모니커에 대한 그 이상의 것
- IMoniker 인터페이스
- MkParseDisplayName 함수
→ 클래스 모니커(Class Moniker)
- 놀라운 모니커 : 클래스 모니커를 개선
→ 뉴 모니커(New Moniker)
→ 자바 모니커
→ 동작 객체 테이블(Running Object Table)
PART 3 리모트 구조(Remoting Architecture)
CHAPTER 12 서로게이트(Surrogate)
→ DLL 서로게이트(DLL Surrogate)
- 인-프로세스 컴포넌트를 로컬에서 실행
- 컴포넌트를 리모트에서 수행
→ 커스텀 서로게이트(Custom Surrogate)
- 커스텀 DLL 서로게이트 : DllNanny
→ 마샬링(Marshaling) 소개
- 표준 마샬링
- 타입 라이브러리 마샬링
- 커스텀 마샬링
CHAPTER 13 실행형 컴포넌트(Executable Component)
→ 실행형 컴포넌트 빌드
- 클래스 객체 등록
- 리모트 인스턴스화(Remote Instantiation)
- 마샬링 코드 통합
→ 실행형 컴포넌트의 수명 관리
- 경쟁 조건(Race Condition)
- 실행형 컴포넌트 종료
- 커스텀 활성화 인터페이스
→ 싱글톤(Singleton)
CHAPTER 14 커스텀 마샬링
→ 인터페이스 포인터 마샬링 : 개요
- 인터페이스의 v-table을 다시 생성
- 프로세스간 통신(Interprocess Communication)
→ 커스텀 마샬링인가 표준 마샬링인가?
- “커스텀 마샬링”이라고 말할 수 있는가?
- 실례지만, 프록시 객체의 CLSID가 어떻게 되나요?
- 인터페이스 크기가 얼마나 된다고 말했나?
- 인터페이스 포인터 언마샬링
→ 값에 의한 마샬링(Marshal-by-Value)
CHAPTER 15 표준 마샬링(Standard Marshaling)
→ 표준 마샬링 구조
- 표준 마샬링 인터페이스
- 프록시/스텁 DLL 등록
→ 마샬링된 인터페이스 포인터를 문자열로 변환
- OBJREF 모니커
→ 핸들러 마샬링(Handler Marshaling)
CHAPTER 16 인터페이스 정의 언어
→ 타입(Type)
- 열거형 타입(Enumerated Type)
→ 방향 특성(Directional Attribute)
→ 배열(Array)
- 고정 배열(Fixed Array)
- 순응 배열(Conformant Array)
- 가변 배열(Varying Array)
- 개방 배열(Open Array)
- 문자 배열(Character Array)
- 다차원 배열(Multidimensional Array)
- 비주얼 베이직에서 사용자 정의 타입 배열 전달
→ 포인터
- 완전 포인터(Full Pointer)
- 고유 포인터(Unique Pointer)
- 참조 포인터(Reference Pointer)
- 인터페이스 포인터
- 인터페이스 설계 권장사항
CHAPTER 17 비동기 호출
→ 비동기 호출 수행
- 비동기 인터페이스 정의
- 비동기 인터페이스 호출
- 비동기 인터페이스 구현
- 상호운용성(Interoperability)
→ 호출 취소(Call Cancellation)
- 메쏘드 호출 취소 요구
- 메쏘드 종료
→ 파이프(Pipe)
CHAPTER 18 보안(Security)
→ 윈도우즈 분산 보안 모델
- COM+ 보안 모델
- COM+ 보안 패키지(Security Package)
→ 선언적 보안 : 레지스트리
- 기본 보안
- 기본 접근과 실행 승인 구성
- 컴포넌트 보안 구성 : AppID 키
- IAccessControl 인터페이스
- 컴포넌트 신분 구성
→ 프로그래밍적 보안
- CoInitializeSecurity 함수
- IAccessControl 인터페이스 구현
- 활성화 보증서 : COAUTHINFO 구조체
- IServerSecurity 인터페이스
- 클로킹(Cloaking)
- IClientSecurity 인터페이스
CHAPTER 19 네트워크 프로토콜
→ 네트워크 프로토콜 훔쳐보기
- 네트워크 모니터 실행
- 리모트 활성화(Remote Activation)
→ 인터넷 서비스
→ 모든 리모트 객체 호출
: ORPCTHIS와 ORPCTHAT 구조체
→ 마샬링된 인터페이스 포인터
- 표준 객체 참조
- DUALSTRINGARRAY 구조체
- IRemUnknown 인터페이스
- IRemUnknown2 인터페이스
→ OXID 리졸버(Resolver)
→ 가비지 컬렉션(Garbage Collection)
- 리모트 메쏘드 호출
→ 채널 훅(Channel Hook)
- 유용한 채널 훅 : 클라이언트의 이름 얻기
부록 - 리모트 프로시져 호출
→ RPC의 설계와 목적
- 인터페이스 정의 언어(Interface Definition Language)
- 바인딩(Binding)
- 위치 투명성(Location Transparency)
- 핸들(Handle)
→ 프라임 응용 프로그램(Prime Application)
- 클라이언트 초기화
- 클라이언트 계산
- 프라임 서버(Prime Server)
- 컨텍스트 런다운(Context Rundown)
- 디버깅(Debugging)
- 분산 계산(Distributed Computation)