서브메뉴

본문

자바 I/O  NIO 네트워크 프로그래밍
자바 I/O NIO 네트워크 프로그래밍
저자 : 김성박
출판사 : 한빛미디어
출판년 : 2004
정가 : 25000, ISBN : 8979142935

책소개


이 책에서는 각 장별로 IO와 NIO의 큰 줄기를 먼저 다룬 후 구체적인 클래스 사용 방법과 해당 예제를 제시한다. 따라서 네트워크 프로그래밍은 할 줄 알지만 기본 개념에 약했던 독자나, 기본 개념은 있지만 응용이 약했던 독자 모두에게 IO와 NIO의 기본부터 응용까지 체계적으로 배울 수 있다. 바로 옆에서 과외를 해주는 듯한 친절한 설명이 독자들의 학습 시간을 대폭 줄여주며, 저자의 경험과 노하우를 생생하게 얻을 수 있다.

[주요 내용]

- 내공이 깊으면 연공이 자유롭다: 네트워크 기초 지식과 개념
- 재사용성과 확장성을 고려하자: 스레드 구현 방법
- 자바 IO에 대한 선입견을 버리자: 자바 IO의 기본 개념
- 모든 데이터는 바이트 단위로 구성된다: 바이트 스트림
- 이제 세계의 중심은 2바이트 문화권이다: 문자 스트림
- 프로그램은 손쉽게 작성해야 한다: 객체 스트림
- 속도보다는 신뢰성이 더 중요하다: TCP 프로그래밍
- 신뢰성보다는 속도가 더 중요하다: UDP 프로그래밍
- 특정 웹 페이지의 정보를 처리하자: URL 관련 클래스
- 멀티미디어 데이터를 가볍게 전송하자: 멀티캐스트와 MBone
- IO의 단점을 보완한 새로운 IO가 필요하다: NIO 개요와 필요성
- 데이터를 효율적으로 다루기 위해 새롭게 태어났다: 버퍼
- 다양한 곳에서 훌륭한 캐싱 컴포넌트로 사용한다: 채널과 셀렉터
- 응용력을 높이자: 에코 서버, 타임 서버, 채팅 프로그램, 인터넷 방송 서버, 비블록킹 서버

목차


1장. 네트워크 기초
현장 포인트
01. 네트워크와 네트워킹
02. 네트워크 통신 방법
03. OSI 7계층
04. 인터넷 프로토콜
05. 인터넷 애플리케이션 프로토콜
06. TCP/IP 스택
07. 소켓과 포트
08. 보안
생각해볼 문제

2장. 스레드
현장 포인트
01. 스레드란
02. 스레드의 생성과 시작
03. 스레드의 종료
04. 데몬스레드와 join()
05. 스레드 그룹
06. 스레드 우선순위
07. 멀티스레드와 동기화
08. 생성자-소비자 패턴
생각해볼 문제

3장. 자바 IO
현장 포인트
01. 자바 IO에 대한 선입견
02. 자바 IO도 객체다
03. 재사용되기 위해서 설계된 자바 IO
04. 특수한 IO 객체
05. 자바 IO란?
06. 생성자가 중요한 자바 IO 관련 클래스
07. 자바 IO 프로그래밍을 잘하려면
생각해볼 문제

4장. 바이트 기반 스트림: 바이트 단위 IO 클래스
현장 포인트
01. File 클래스
02. 바이트 단위 IO 클래스
생각해볼 문제

5장. 문자 스트림: 문자 단위 IO 클래스
현장 포인트
01. 문자 단위 IO 클래스
02. Reader와 Writer
03. InputStreamReader와 OutputStreamWriter
04. Filereader와 FileWriter
05. BufferdReader와 BufferedWriter
06. PrinterWriter
07. CharArrayReader와 CharArrayWriter
08. StringReader와 StringWriter
생각해볼 문제

6장. 객체 기반 스트림
01. 영화 플라이로 살펴본 객체 기반 스트림
02. 첫 번째 예제: 생각해볼 문제와 간단한 예제
03. 객체 기반 스트림 소개
04. 두 번째 예제: 나의 책 목록
05. 마샬링하고 싶지 않은 필드에 대한 처리
06. 세 번째 예제: 윈도우 저장과 읽기
07. ObjectOutputSteam 클래스의 생성자와 메소드
08. ObjectInputSteam 클래스의 생정자와 메소드
09. 객체 기반 스트림의 예외
생각해볼 문제

7장. 네트워크 프로그래밍 기초
현장 포인트
01. 소켓이란
02. InetAddress 클래스를 활용한 도메인과 IP 변환
생각해볼 문제

8장. TCP 프로그래밍
현장 포인트
01. TCP 프로그래밍 기본
02. 간단한 에코 클라이언트/서버 프로그래밍
03. 멀티스레드를 이용한 에코 서버
04. 간단한 웹 서버 프로그래밍 작성
05. 간단한 채팅 클라이언트/서버 프로그래밍
06. 윈도우용 채팅 클라이언트 작성
07. 객체 직렬화를 이용한 네트워크 프로그래밍

9장. UDP 프로그래밍
현장 포인트
01. UDP를 이용한 프로그래밍 방법
02. UDP를 이용한 에코 클라이언트/서버 프로그래밍
03.UDP를 이용한 타임 서버와 클라이언트 작성
생각해볼 문제

10장. URL 관련 클래스
현장 포인트
01. URL이란
02. URL 클래스
03. URL 클래스를 이용해서 웹사이트 읽어 오기
04. URLConnection 클래스로 웹 페이지 읽기
05. GET 방식으로 URL 주소 호출하기
06. POST 방식으로 URL 주소 호출하기
07. URLEnCoder를 이용한 문자열 변환
08. URLDecoder 클래스를 이용한 디코딩
생각해볼 문제

11장. 멀티캐스트
현장 포인트
01. 멀티캐스트 방식이란
02. 멀티캐스트 백본: MBone
03. 간단한 인터넷 방송 클라이언트와 서버 구현
04. 채팅 프로그램 작성
생각해볼 문제

12장. NIO 개요
현장 포인트
01. 자바 IO는 느리다?
02. 블록킹 자바 IO
03. IO 향상을 위한 운영체제 수준의 기술
04. 자바의 새로운 변화
생각해볼 문제

13장. 버퍼
현장 포인트
01. 버퍼 개요
02. 버퍼의 네 가지 기본 속성
03. 버퍼에서 데이터 읽고 쓰기
04. Buffer 클래스가 제공하는 유틸리티 메소드
05. Buffer 하위클래스 유티리티 메소드
06. 버퍼 만들기
07. ByteBuffer
08. CharBuffer

14장. 채널
현장 포인트
01. 채널 개요
02. 채널의 기본 인터페이스
03. 파일 채널
04. 소켓 채널
생각해볼 문제

15장. 셀렉터
현장 포인트
01. 셀렉터 개요
02. 기존의 네트워크 프로그래밍 모델
03. 비블록킹 모델
04. SelectableChannel
05. SelectionKey
06. Selector
07. 비블록킹 서버 만들기
생각해볼 문제

16장. 향상된 서버 만들기
현장 포인트
01. 들어가기에 앞서
02. 효율적인 메모리 사용
03. 비효율적인 데이터 전송에 대한 고려
04. 동시성을 이용한 성능 극대화
05. 향상된 서버 만들어보기
생각해볼 문제

17장. RMI
현장 포인트
01. RMI란?
02. RMI 구조
03. RMI는 어떻게 동작하는가
04. 로컬 객체를 원격 객체 예로 변경하기
05. RMI를 이용한 계산기 애플리케이션
06. RMI를 이용한 채팅 애플리케이션
07. RMI-IIOP
생각해볼 문제