| 000 | 00000nam c2200205 c 4500 | |
| 001 | 000000696801 | |
| 005 | 20170601094643 | |
| 007 | ta | |
| 008 | 010302s2001 ulka 001c kor | |
| 020 | ▼a 898054426x ▼g 93000 | |
| 040 | ▼a 211009 ▼c 211009 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 049 | 1 | ▼l 121051660 ▼f 과학 ▼l 121051661 ▼f 과학 ▼l 121051662 ▼f 과학 |
| 082 | 0 4 | ▼a 005.133 ▼2 21 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b 2001b | |
| 100 | 1 | ▼a Mahmoud, Qusay H., ▼d 1971- |
| 245 | 1 0 | ▼a 자바를 이용한 분산 프로그래밍 / ▼d Qusay H. Mahmoud 저 ; ▼e 곽용재 편역 |
| 246 | 1 9 | ▼a Distributed programming with Java |
| 260 | ▼a 서울 : ▼b 인포북, ▼c 2001 | |
| 300 | ▼a 430 p. : ▼b 삽화 ; ▼c 26 cm + ▼e 전자 광디스크 (CD-ROM) 1매 | |
| 500 | ▼a 색인수록 | |
| 650 | 0 | ▼a Java (Computer program language) |
| 650 | 0 | ▼a Electronic data processing ▼x Distributed processing |
| 700 | 1 | ▼a 곽용재, ▼d 1974-, ▼e 역 |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/보존서고5(동양서)/ | 청구기호 005.133 2001b | 등록번호 121051660 (16회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
분산 환경 프로그래밍에 대한 전반적이고 체계적인 정보를 전해주는 책. 이동 에이전트와 보이져에 대해 알기 쉽게 잘 쓰여져 있으므로 처음 시작하는 독자들도 부담없이 재미있게 볼 수 있다. 자바 네트워킹 RMI를 다룬 책, 혹은 자바와 CORBA를 다룬 책, 또는 이동 에이전트 프로그래밍을 "한권씩" 찾는데 어려움을 느낀 분은 없겠지만, 이 책은 이런 기술들을 한권에서 함께 다루고 있다.
소켓을 사용한 하위 수준의 네트워킹, 자바 전용의 RMI, 업계 표준의 CORBA, 그리고 최근 급부상하고 있는 이동 에이전트 기술의 네 가지를 소개하고, 적절한 프로그래밍 예제가 곁들여 이해를 도았다.
저자는 이 책 전반에 걸쳐 하나의 주제에 대해 여러 가지 프로그래밍 기술을 일관된 방식으로 적용해 보고, 각각을 비교함으로써, 분산 프로그래밍을 막 시작한 개발자와 시스템 설계자에세 필요한 통찰력과 구조적인 지식을 제시해 주고 있다.
이 책은 표지에도 나와 있듯이, 네트워크 및 분산 환경 프로그래밍의 초심자를 위해 튜토리얼(tutorial) 성격의 내용을 다루고 있다. 필자가 머리말에서 언급했듯이, "분산 프로그래밍을 처음 시작하는 사람들에게 현재 사용되고 있거나 사용할 수 있는 기술의 요점을 동일 선상에서 일관성 있게 바라볼 수 있게 하는 것"이 이 책의 목적이다.
정보제공 :
저자소개
목차
목차 CD-ROM 사용법 = 21 용어 대역표 = 25 PART Ⅰ 소켓 프로그래밍(Sockets Programming) 1 분산 프로그래밍의 첫 시작 1.1 들어가며 = 40 1.2 인터네트워킹에 대한 간단한 정리 = 40 1.2.1 네트워크 구조 = 40 1.2.2 프로토콜 = 41 1.2.3 OSI 레퍼런스 모델 = 41 1.2.4 네이밍(Naming)과 라우팅(routing) = 43 1.2.5 인터넷 주소 = 44 1.3 분산 프로그래밍의 소개 = 45 1.3.1 클라이언트/서버 모델 = 46 1.3.2 객체 기반 모델 = 47 1.4 분산 프로그래밍 기술 = 47 1.4.1 소켓(Sockets) = 47 1.4.2 원격 프로시저 호출(Remote procedure call) = 48 1.4.3 분산 프로그래밍은 왜 좋은가 = 49 1.4.4 분산 프로그래밍은 왜 어려운가 = 50 1.5 자바에서 지원되는 분산 프로그래밍 환경 = 50 1.6 네트워크는 움직인다 = 52 1.7 자바 보안에 대한 간추린 이야기 = 53 1.8 이번 장을 접으며 = 56 2 소켓 프로그래밍의 기초 2.1 프로세스간 통신(InterProcess Communication : IPC) = 58 2.2 소켓이란? = 60 2.2.1 소켓의 타입 = 61 2.3 TCP/IP와 UDP/IP 프로토콜을 사용한 통신 기법 = 61 2.3.1 데이터그램 통신 = 62 2.3.2 스트림 통신 = 62 2.3.3 UDP vs. TCP = 62 2.4 클라이언트/서버의 통신 = 63 2.5 자바 소켓 프로그래밍의 기본 = 64 2.5.1 데이터 스트림 = 64 2.5.2 TCP 소켓 프로그래밍 = 65 2.5.3 UDP 소켓(데이터그램) 프로그래밍 = 69 2.5.4 멀티캐스트 소켓(Multicast Socket) = 70 2.6 간단한 서버 프로그램 예제 : 손님맞이(Greetings) 서버 = 71 2.6.1 서버 프로그램 = 72 2.6.2 클라이언트 프로그램 = 74 2.6.3 너무 빨리 왔다. 어디 빠뜨린 것 없을까? = 75 2.7 인터넷 주소를 용도에 따라 변환하기(resolving) = 76 2.7.1 예제 코드 GetName = 76 2.7.2 예제 코드 GetIP = 77 2.7.3 예제 코드 NsLookup = 78 2.7.4 예제 코드 IPtoName = 79 2.8 이번 장을 접으며 = 80 3 클라이언트와 서버 프로그래밍 3.1 이미 사용되고 있는 서비스에 대한 클라이언트 만들기 = 82 3.1.1 SMTP client = 83 3.1.2 핑거(Finger) 클라이언트 = 85 3.1.3 핑(ping) 클라이언트 = 87 3.2 쓰레드로 프로그래밍 하기 = 90 3.2.1 쓰레드란? = 91 3.2.2 쓰레드를 사용하면 이것이 좋다 = 92 3.2.3 예제 코드 : 쓰레드를 만들고 시작하기 = 92 3.2.4 쓰레드를 생성하고 시작하기 = 93 3.2.5 쓰레드를 일시 중지시키기 = 95 3.2.6 쓰레드 제어하기 = 96 3.2.7 쓰레드 우선 순위 바꾸기 = 96 3.2.8 쓰레드 동기화(Synchronization) = 97 3.3 이제, 새로운 서비스(서버)와 클라이언트를 만든다 = 99 3.3.1 코드 예제 : 수치 계산 클라이언트/서버 = 99 3.4 이번 장을 접으며 = 105 4 실무 애플리케이션의 소켓 프로그래밍 4.1 다중 쓰레드 HTTP 서버 개발하기 = 108 4.2 HTTP에서의 보안 문제 = 113 4.3 프록시 서버(Proxy server) = 114 4.3.1 프록시 서버의 동작 방식 = 115 4.3.2 프록시 서버를 사용하면 이것이 좋다 = 116 4.4 소켓을 사용한 데이터베이스 액세스 = 116 4.5 알기 쉽게 정리한 JDBC = 117 4.5.1 JDBC 의 보안 모델 = 118 4.5.2 JDBC DriverManager(드라이버 매니저) = 119 4.5.3 JDBC 애플리케이션의 속을 파헤친다 = 120 4.5.4 자바 객체의 영속성 저장소(persistent storage) = 122 4.6 이번 장을 접으며 = 126 5 소켓 프로그래밍 한 단계 올라서기 5.1 객체 직렬화 = 130 5.1.1 객체 직렬화와 영속성 = 131 5.1.2 객체 직렬화에서 보안 문제 = 133 5.1.3 직렬화를 마음대로 제어하기 = 134 5.1.4 직렬화된 객체의 버전 관리(Versioning) = 136 5.2 소켓을 통해 오가는 객체들(Objects over Sockets) = 137 5.2.1 네트워크를 통해 객체 전송하기 = 137 5.3 디지털 서명 메시지(Digitally signed messages) = 141 5.3.1 java.security 패키지 = 141 5.3.2 디지털 서명(Digital signature) = 141 5.3.3 코드 예제 : 소켓을 통해 오가는 파일에 서명하기 = 142 5.4 이번 장을 접으며 = 149 6 사례 연구 : 글로벌 컴퓨팅 엔진 6.1 들어가면서 = 152 6.2 웹 기반의 글로벌 컴퓨팅 = 153 6.2.1 왜 글로벌 컴퓨팅인가? = 153 6.2.2 왜 웹 기반이어야 하는가? = 154 6.2.3 고려해야 할 문제들 = 154 6.3 왜 CGI는 부적격인가? = 155 6.3.1 CGI라고 해서 나쁜 것만은 아니다 = 156 6.3.2 그래도 CGI는 별로다 = 156 6.4 클라이언트/서버 모델을 통한 글로벌 컴퓨팅 = 157 6.5 보안 문제 = 157 6.6 이제 구현이다! = 158 6.6.1 클래스 로더 = 158 6.6.2 보안 정책 = 163 6.6.3 글로벌 컴퓨팅 엔진 = 167 6.6.4 명령 행으로 동작하는 클라이언트 = 170 6.7 그 밖의 점검 사항들 = 171 6.7.1 컴퓨팅 리소스의 검색 = 172 6.7.2 브로커(Broker) = 172 6.8 이번 장을 접으며 = 173 PART Ⅱ 원격 메소드 호출(RMI) 7 한 눈에 훑어보는 RMI 7.1 RMI를 배우기 전에 = 178 7.2 RMI란? = 179 7.3 RMI로 이루고자 하는 것 = 180 7.4 RMI의 시스템 구조 = 181 7.4.1 스텁/스켈레톤 계층 = 181 7.4.2 원격 참조자 계층 = 182 7.4.3 트랜스포트 계층 = 182 7.5 RMI는 어떻게 작동할까? = 183 7.6 분산 가비지 콜렉션 = 184 7.7 RMI와 OSI 레퍼런스 모델 = 185 7.8 RMI와 보안 = 185 7.9 이번 장을 접으며 = 186 8 처음 시작하는 RMI 프로그래밍 8.1 RMI로 만든 애플리케이션을 파헤친다 = 190 8.1.1 RMI 개발 1단계 원격 인터페이스 설계하기 = 191 8.1.2 RMI 개발 2단계 원격 인터페이스 구현하기 = 192 8.1.3 RMI 개발 3단계 원격 인터페이스를 사용하는 클라이언트 개발하기 = 196 8.1.4 RMI 개발 4단계 스텁과 스켈레톤 생성하기 = 197 8.1.5 RMI 개발 5단계 RMI 레지스트리 실행시키기 = 199 8.1.6 RMI 개발 마지막 단계 서버를 실행시키고 나서 클라이언트 실행시키기 = 200 8.2 RMI 레지스트리 사용하기 = 201 8.2.1 레지스트리에서 원격 객체 삭제하기 = 201 8.2.2 레지스트리에 원격 객체 등록하기 : 리바인딩(rebinding) = 202 8.3 간단 비교! RMI vs. 소켓 = 203 8.4 이번 장을 접으며 = 203 9 RMI 프로그래밍 한 단계 올라서기 9.1 도시 정보 서버(city information server) = 206 9.1.1 RMI 개발 1단계 따라가기 원격 인터페이스의 정의 = 207 9.1.2 RMI 개발 2단계 따라가기 원격 인터페이스의 구현 = 207 9.1.3 RMI 개발 3단계 따라가기 클라이언트의 개발 = 208 9.1.4 RMI 개발 4단계 따라가기 스텁과 스켈레톤의 생성 = 209 9.1.5 RMI 개발 5단계 따라가기 RMI 레지스트리의 실행 = 209 9.1.6 RMI 개발 6단계 따라가기 서버와 클라이언트의 실행 = 209 9.2 팩토리(factory) 구현하기 = 210 9.2.1 팩토리 인터페이스 정의하기 = 210 9.2.2 City2 인터페이스 구현하기 = 211 9.2.3 CityFactory 인터페이스 구현하기 = 212 9.2.4 팩토리 불러오기(Invoking) = 213 9.2.5 팩토리 실행하기 = 214 9.3 콜백(callback) 구현하기 = 215 9.3.1 자바에서의 콜백 = 215 9.3.2 RMI에서의 콜백 구현하기 = 216 9.4 RMI와 객체 서명 기법의 결합 = 220 9.4.1 java.security 패키지 = 221 9.4.2 예제 프로그래밍 시작! = 221 9.5 이번 장을 접으며 = 224 10 자바 2와 RMI 프로그래밍 10.1 커스텀 소켓 타입 만들기 = 228 10.1.1 커스텀 소켓 타입은 이렇게 만든다 = 229 10.2 커스텀 RMI 소켓 팩토리(RMISocketFactory) 만들기 = 229 10.2.1 단일 타입의 소켓을 지원하는 커스텀 RMI 소켓 팩토리 = 229 10.2.2. 둘 이상의 소켓 타입을 지원하는 RMI 소켓 팩토리 = 230 10.2.3 커스텀 RMI 소켓 팩토리 사용하기 = 231 10.3 SSL 소켓 = 232 10.4 원격 객체 활성화(Remote object activation) = 233 10.4.1 원격 객체 활성화 - 개괄적인 이야기 = 233 10.4.2 활성화 프로토콜 = 234 10.4.3 활성화가 가능한 원격 객체 만들기 = 236 10.5 버전 제어(Version control) = 239 10.5.1 패키지 버전 관리 = 239 10.5.2 제품 버전 관리와 사용자 = 242 10.6 이번 장을 접으며 = 243 PART Ⅲ 코바(CORBA) 11 한 눈에 훑어보는 CORBA 11.1 안녕하세요? CORBA입니다 = 248 11.2 CORBA의 아키텍처 = 249 11.2.1 ORB : 객체 요청 브로커(object request broker) = 249 11.2.2 제작사도 다르고 ORB도 다르고 = 251 11.2.3 인터페이스 정의 언어(Interface Definition Language : IDL) = 251 11.2.4 동적 호출 인터페이스(Dynamic invocation interface) = 252 11.2.5 동적 스켈레톤 인터페이스(Dynamic skeleton interface) = 252 11.2.6 인터페이스 저장소(Interface Repository) = 253 11.2.7 객체 어댑터(Object adapter) = 253 11.3 클라이언트와 객체 구현부 = 253 11.4 객체 서비스 = 253 11.5 CORBA 3.0의 새로운 특징 = 255 11.5.1 이식이 가능한 객체 어댑터(Portable object adapter : POA) = 255 11.5.2 CORBA 메시징(messaging) = 257 11.5.3 값으로 전달되는 객체(Objects by value) = 258 11.6 이번 장을 접으며 = 258 12 처음 시작하는 코바 프로그래밍 12.1 CORBA를 돌릴 수 있는 제품이 필요하다 = 262 12.2 CORBA 기반 애플리케이션의 구조를 파헤친다 = 263 12.2.1 IDL 인터페이스 정의하기 = 264 12.2.2 CORBA 클래스 구현하기 = 266 12.2.3 서버 프로그램 만들기 = 267 12.2.4 클라이언트 프로그램 만들기 = 268 12.2.5 스마트 에이전트, 서버, 클라이언트 실행하기 = 269 12.3 CORBA와 RMI = 271 12.4 이번 장을 접으며 = 271 13 CORBA IDL : 인터페이스 정의 언어 13.1 IDL 정의(definition) = 274 13.1.1 주석문(Comments) = 274 13.1.2 식별자(Identifier) = 274 13.1.3 리터럴 값(Literal value) = 275 13.2 IDL 인터페이스(interface) = 276 13.3 모듈(Module) 선언 = 277 13.4 속성(Attribute) 선언 = 277 13.5 타입(Type) 선언 = 278 13.5.1 기본(Basic) 타입 = 278 13.5.2 복합(Constructed) 타입 = 279 13.5.3 템플리트(Template) 타입 = 280 13.6 배열 = 281 13.6.1 배열과 시퀀스의 비교 = 281 13.7 타입정의(Typedef) 선언 = 282 13.8 상수(Constant) 선언 = 282 13.9 예외(Exception) 선언 = 283 13.10 오퍼레이션(Operation) 선언 = 283 13.10.1 매개변수 선언 = 283 13.10.2 논블록킹(Nonblocking) 오퍼레이션 = 284 13.10.3 Raises 표현식 = 284 13.11 전처리(Preprocessing) = 285 13.12 키워드 정리 = 285 13.13 이번 장을 접으며 = 285 14 IDL-to-Java 매핑(mapping) 14.1 이름(Name)의 매핑 = 288 14.2 모듈(Module)의 매핑 = 288 14.3 홀더 클래스(Holder class) = 289 14.4 상수(Constant) 값의 매핑 = 291 14.4.1 인터페이스 내의 상수 = 291 14.4.2 인터페이스 안에서 선언되지 않은 상수 = 291 14.5 기본 타입의 매핑 = 292 14.5.1 Boolean 타입의 매핑 = 292 14.5.2 Char 타입의 매핑 = 292 14.5.3 Octet 타입의 매핑 = 293 14.5.4 string의 매핑 = 293 14.5.5 정수 타입의 매핑 = 293 14.5.6 부동 소수점 실수의 매핑 = 294 14.6 복합 타입의 매핑 = 295 14.6.1 Enum 타입의 매핑 = 295 14.6.2 struct 타입의 매핑 = 295 14.6.3 union 타입의 매핑 = 296 14.6.4 Sequence 타입의 매핑 = 298 14.6.5 배열의 매핑 = 298 14.7 예외(Exception)의 매핑 = 299 14.7.1 사용자 정의 예외의 매핑 = 299 14.7.2 시스템 예외 = 300 14.8 인터페이스의 매핑 = 300 14.8.1 매개변수 전달 방식의 매핑 = 301 14.9 타입정의의 매핑 = 302 14.9.1 단순한 타입에 대한 typedef의 매핑 = 302 14.9.2 복잡한 타입에 대한 typedef의 매핑 = 302 14.10 이번 장을 접으며 = 303 15 네이밍(Naming)과 바인딩(Binding) 15.1 간단한 뱅킹 애플리케이션의 제작 = 306 15.1.1 IDL로 인터페이스 정의하기 = 306 15.1.2 CORBA 클래스 구현하기 = 307 15.1.3 서버 만들기 = 309 15.1.4 클라이언트 만들기 = 310 15.1.5 대망의 애플리케이션 실행! = 311 15.2 네이밍 객체 = 312 15.3 객체와의 바인딩 = 313 15.3.1 ORB의 바인딩 동작 = 313 15.3.2 바인딩 옵션 설정하기 = 314 15.3.3 객체 찾기 - 로컬이냐, 원격이냐? = 315 15.3.4 객체 참조자에 대한 오퍼레이션 호출 = 315 15.3.5 객체 참조자의 타입을 원하는 타입으로 변환하기(Narrowing) = 315 15.4 이번 장을 접으며 = 316 16 객체 등록과(Registering) 객체 활성화(Activation) 16.1 기본 객체 어댑터(BOA : Basic Object Adapter) = 318 16.2 객체 활성화 모드 = 319 16.3 객체 참조자 = 319 16.3.1 임시(Transient) 객체 참조자 = 319 16.3.2 영속(Persistent) 객체 참조자 = 320 16.4 객체 등록 = 321 16.5 객체 구현부 저장소 = 321 16.6 이번 장을 접으며 = 323 17 인터페이스와 타이(tie) 매커니즘 17.1 인터페이스 상속 = 326 17.1.1 간단한 예 = 326 17.2 타이(tie) 매커니즘 = 327 17.2.1 역시 간단한 예제 = 328 17.2.2 Server 클래스부터 바꾸어 주어야 한다 = 328 17.2.3 AccountImpl 클래스는 약간만 바꾼다 = 329 17.2.4 이제, ManagerImpl 클래스를 조금만 바꾸면 끝난다 = 329 17.3 이번 장을 접으며 = 330 18 동적 호출/스켈레톤 인터페이스 18.1 동적 호출 인터페이스(Dynamic Invocation Interface : DII) = 334 18.1.1 DII는 이렇게 사용한다 = 335 18.1.2 요청 매개변수(Request parameters) = 336 18.2 동적 스켈레톤 인터페이스(Dynamic Skeleton Interface : DSI) = 337 18.2.1 DSI는 이렇게 사용한다 = 338 18.3 인터페이스 저장소(Interface Repository : IR) = 339 18.3.1 IR 생성하기 = 339 18.4 이번 장을 접으며 = 340 19 카페인(Caffeine) 19.1 카페인이란? = 342 19.2 java2iiop 컴파일러 사용하기 = 343 19.3 카페인 기반 애플리케이션을 해부한다 = 344 19.3.1 카페인 개발 단계 1 인터페이스 정의하기 = 344 19.3.2 카페인 개발 단계 2 서버 객체 프로그래밍하기 = 346 19.3.3 카페인 개발 단계 3 서버 컴파일하기 = 347 19.3.4 카페인 개발 단계 4 클라이언트 코드 작성하기 = 347 19.3.5 카페인 개발 단계 5 클라이언트 코드 컴파일하기 = 347 19.3.6 카페인 개발 단계 6 서버 실행시키기 = 348 19.3.7 카페인 개발 단계 7 클라이언트 실행시키기 = 348 19.4 데이터 타입 매핑 = 348 19.5 이번 장을 접으며 = 350 PART Ⅳ 이동 에이전트와 보이져(Mobile Agents and Voyager) 20 이동 소프트웨어 에이전트란? 20.1 소프트웨어 에이전트는 "요원(要員)"이다 = 354 20.2 소프트웨어 에이전트가 움직인다 - 이동 소프트웨어 에이전트 = 355 20.3 이동 에이전트는 분산 컴퓨팅의 새로운 패러다임 = 356 20.4 이동 에이전트는 어디에 쓰이는가 = 357 20.5 이동 에이전트에서의 보안성 = 359 20.6 이동 에이전트를 구현한 제품들 = 360 20.6.1 제너럴 매직(General Magic)사의 오딧세이(Odyssey) = 361 20.6.2 일본 IBM의 에이질릿(Aglet) = 361 20.6.3 오브젝트스페이스(ObjectSpace) 사의 보이져(Voyager) ORB = 362 20.7 이번 장을 접으며 = 362 21 보이져(Voyager)로 시작하는 에이전트 프로그래밍 21.1 보이져호에 오신 것을 환영합니다 = 366 21.2 보이져 사용하기 1,2,3 = 368 21.2.1 Voyager 프로그램의 시작과 중지 = 368 21.2.2 콘솔에 실행 정보 로깅하기 = 370 21.2.3 원격 인터페이스 = 371 21.2.4 원격 객체 생성하기 = 372 21.2.5 보이져로 만든 애플리케이션을 해부한다 = 373 21.2.6 보이져의 네이밍 서비스와 프록시 = 379 21.3 이번 장을 접으며 = 379 22 이동 에이전트 프로그래밍 22.1 동적 통합(Dynamic aggregation) = 382 22.1.1 이제, 패싯을 써 보자 = 384 22.1.2 패싯 생성과 원격 액세스 = 384 22.2 객체에 이동성(Mobility) 부여하기 = 388 22.2.1 객체야, 나가서 놀다와 = 388 22.2.2 객체 이동과 메시징(messaging) 실습 = 390 22.2.3 객체는 움직이면서 흔적을 남긴다 = 392 22.3 이동 에이전트 프로그래밍 = 394 22.3.1 이동 에이전트 사용하기 = 394 22.3.2 이동 에이전트 개발하기 = 395 22.4 이번 장을 접으며 = 400 23 보이져 프로그래밍에 관련된 조금 수준 높은 이야기들 23.1 보안 = 402 23.1.1 보안 관라자 설치하기 = 402 23.2 고급 메시지 기능 = 404 23.3 메시지(이벤트) 복제 아키텍처 = 405 23.4 객체 활성화 = 406 23.4.1 활성자 만들기 = 407 23.5 타이머 사용하기 = 408 23.6 이번 장을 접으며 = 409 24 보이져와 코바를 하나로 24.1 보이져와 함께하는 CORBA 프로그래밍 = 412 24.1.1 CORBA 객체의 익스포트와 임포트 = 416 24.2 보이져로 작성한 CORBA 애플리케이션을 해부한다 = 413 24.2.1 보이져로 하는 CORBA 프로그래밍 1단계 인터페이스 만들기 = 414 24.2.2 보이져로 하는 CORBA 프로그래밍 2단계 인터페이스 구현하기 = 414 24.2.3 보이져로 하는 CORBA 프로그래밍 3단계 서버 프로그램 만들기 = 415 24.2.4 보이져로 하는 CORBA 프로그래밍 4단계 클라이언트 프로그램 설치하기 = 415 24.2.5 보이져로 하는 CORBA 프로그래밍 5단계 컴파일과 실행 = 416 24.3 보이져와 CORBA 통합하기 = 417 24.3.1 보이져 클라이언트와 CORBA 서버의 통합 = 418 24.3.2 보이져 서버와 CORBA 클라이언트의 통합 = 422 24.4 이번 장을 접으며 = 424 찾아보기 = 425
