서브메뉴

본문

성공과 실패를 결정하는 1%의 Java 프로그래밍 원리
성공과 실패를 결정하는 1%의 Java 프로그래밍 원리
저자 : Yukihisa Yonemochi
출판사 : 성안당
출판년 : 2005
ISBN : 8931548702

책소개


이미 출간되어 독자들로 하여금 많은 호평을 받아온 '성공과 실패를 결정하는 1% 원리‘ 시리즈의 8번째 시리즈.Java의 기초부터 시작하여 JVM의 구조, 객체 지향과 메모리 관리, Java를 둘러싼 환경 등을 대화 형식을 통해 과거의 기술이나 다른 프로그래밍 언어와 비교하여 설명함으로써, 독자들로 하여금 Java가 무엇인지, 그리고 왜 필요한지 등을 가장 쉽고 정확하게 알 수 있도록 설명한다.

문법적인 설명을 지양하고, 그림 등의 비주얼한 설명 방식을 도입하였으며, 각 장의 처음에는 간단한 퀴즈를 통해 각 장의 중요한 주제를 다루고, 각 장의 끝에는 본문에서 다 소개할 수 없는 Java와 관련된 이야기를 컬럼으로 소개해 각 장의 내용과 관련되거나 현재 보급된 기술의 배경이나 역사의 이해할 수 있도록 구성되어 있다.

목차


Chapter 01 도대체 Java가 뭐야?
01_세계 최초로 성공한 가상 컴퓨터 명세
02_소프트웨어로 가상 컴퓨터를 실현한다
03_커피잔은 명세의 증거
04_세계 최초는 아니지만 성공 예로서는 세계 최초
05_여러 컴퓨터에서 소프트웨어가 실행 가능
06_Java 자신이 OS로서의 기능을 정의하고 있다
07_순수한 객체 지향
08_확장 가능한 명세의 집합체
09_기업에 필요한 기능이 탑재되어 있다
10_많은 기업이 지지하는 오픈된 명세
[Column] 빨리 보는 Java 역사


Chapter 02 모든 하드웨어를 동일하게 취급한다
01_소프트웨어 이식은 오랜 고민의 원인
02_넘어야 하는 두 개의 벽
03_컴퓨터는 ‘주판’으로 생각하면 알기 쉽다
04_소프트웨어를 사람의 말로 생각해 본다
05_기계어는 컴퓨터의 종류에 따라 다르다
06_어셈블리 언어에 의한 개발은 호환성이 전혀 없음
07_고수준 언어로 소스 코드 호환이 가능해지다
08_옛날에는 컴퓨터마다 컴파일러가 필요
09_소스 코드 상태의 소프트웨어 유통
10_인터프리터 언어와 스크립트
11_인터프리터 언어의 한계
12_Java 이전의 문제
13_Java 가상 머신이라는 소프트웨어
14_JVM의 특징
15_Java 클래스는 바이너리로 배포 가능
16_Unicode의 채택
17_JIT 컴파일러/HotSpot 기술
[Column] 여러 가지 아키텍처

Chapter 03 모든 OS를 동일하게 취급한다
01_또 하나의 벽
02_소프트웨어는 OS별로 존재한다
03_OS는 하드웨어를 중개한다
04_OS마다 소스 코드는 다르다 : API의 차이
05_고기능 API의 차이
06_‘표준 OS’ 및 ‘표준 API’라는 시도
07_공통 라이브러리의 시도
08_소스 코드 호환만으로는 아직 문제는 해결 안 된다
09_클래스 라이브러리가 비호환
10_헤더 파일마다 소스 코드가 필요
11_종래의 문제
12_JVM은 OS도 포함하고 있다
13_애플리케이션이 직접 건드리지 않는 것은 OS에 맡긴다
14_애플리케이션이 직접 액세스하는 것은 공통화
15_Java는 모든 것이 클래스 파일
16_클래스 파일만 있으면 재사용 가능
17_객체 지향 관련 기능도 표준으로 제공
18_공통으로 가질 수 없는 기능은 과감히 잘라 버림
[Column] 가상 컴퓨터의 시도

Chapter 04 언어 명세 및 실행 환경과 함께 객체 지향을 추구
01_Java는 객체 지향 언어의 최대 성공 예
02_객체 지향의 4가지 주요 기능
03_C++의 문제점
04_C++의 문제점 : 클래스에 속하지 않는 메쏘드
05_C++의 문제점 : 클래스의 재사용이 어려웠다
06_C++의 문제점 : 이름 충돌의 문제
07_Java의 접근 방식
08_클래스는 반드시 만들 것
09_클래스에 소속되지 않는 메쏘드나 변수를 가질 수 없다
10_모든 클래스가 main 메쏘드를 가질 수 있다
11_매키지에 의한 이름 관리
12_deprecated에 의해 권장되지 않는 메쏘드의 경고
13_예외 처리에 따른 오류 처리
14_클래스와 파일의 관계가 명확
15_실행 파일을 만들지 않는다
16_실행 프레임워크
17_JVM은 객체 지향 컴퓨터
[Column] 컴포넌트란?

Chapter 05 메모리 관리를 자동화한다
01_소프트웨어로 메모리를 관리한다는 것
02_포인터를 사용하는 소프트웨어
03_배열을 사용한다
04_구조체 배열의 구조
05_C 언어 포인터는 어렵다
06_프로그램을 움직여 보면...
07_배열의 오버런 문제
08_직접 해보자
09_C 프로그램에서의 메모리 내의 움직임
10_메모리 리크라는 문제
11_영역 파괴
12_C 언어의 문제점 정리
13_Java 메모리 관리의 기본 : 참조
14_인스턴스의 생성은 어떻게 일어날까?
15_Java에서는 모든 객체를 힙에 둔다
16_Java는 형 검사를 반드시 수행한다
17_가비지 콜렉션
18_Java의 스택 머신
19_Java의 배열
20_Java에서는 객체를 나열한 배열은 만들 수 없다
21_배열 자체가 오브젝트
22_Java에서는 배열의 오버런은 없다
[Column] 책상의 너비에는 한계가 있다

Chapter 06 기업 시스템에 필요한 기능을 탑재
01_도대체 왜 Java인 걸까?
02_호스트부터 클라이언트/서버로
03_배포 문제
04_다른 기종의 컴퓨터에 대한 지원
05_자동 배포를 실현한다
06_바이러스 활동을 금지한다
07_바이러스를 넣지 않는 노력 : 디지털 서명
08_Web 애플리케이션 기술 ‘서블릿’
09_객체 지향에 의한 부분 개발
10_세션 관리 기능을 제공
11_화면 디자인은 ‘JSP’로 작성
12_MVC 모델을 실현
13_‘JSF’는 MVC형의 프레임워크 명세
14_분산 트랜잭션을 실현하는 ‘EJB’
15_Web 서비스는 시스템 연계의 업계 표준 기술
16_‘J2EE’는 서버 기술의 집대성
17_JWS(Java Web Start)로 자동 다운로드

Chapter 07 오픈 테크놀러지의 의미
01_소프트웨어를 공동으로 생산한다
02_참가 각사의 동의로 결정되는 공통 명세
03_오픈 소스를 보완하는 오픈 명세
04_장래에 걸쳐 장기적으로 안심
05_Java가 성공한 두 개의 분야
06_소형 칩형 Java
07_기업 업무를 지지하는 J2EE
08_여러 형태의 클라이언트를 중앙 집권형으로 관리
09_많은 사용자 액세스를 가능하게
10_데이터베이스 애플리케이션을 효율 좋게 개발
11_컴포넌트를 사용한 트랜잭션 관리
12_대량 기능 요건도 부분, 분담, 변환 기술로 개발
13_최적의 머신 환경을 선택하여 고속 쓰루풋을 실현
14_Java는 독립된 작은 명세의 모음
15_안심할 수 있는 RI
16_대형 개발업체가 ‘진심’이다
17_최소 기술, 하지만 최고 기술

Chapter 08 Java가 정말로 지향하는 것
01_Java에 적극적으로 힘쓰려면
02_개발 환경의 방향성
03_데스크탑 환경은 복권할까?
04_Java가 정말로 지향하는 것

QuickMenu