명품 JAVA Programming (개정판 5 판)

명품 JAVA Programming (개정판 5 판)

$42.34
Description
한 번 작성된 자바 프로그램은 어느 컴퓨터, 어느 운영체제를 막론하고 실행되는 강력한 장점을 가지고 있다. 저자가 학생들을 지도한 경험 사례를 말하면, 리눅스가 탑재된 라즈베리파이(Raspberry Pi)라는 임베디드 컴퓨터에서 실행될 오디오 스트리밍 서버를 개발하는 프로젝트에서, 학생들이 친숙해하는 윈도우에서 먼저 개발을 완료하고 개발된 자바 프로그램을 수정 없이 그대로 라즈베리파이에 탑재하여 프로젝트를 완성시킬 수 있었다. ‘Write Once Run Anywhere’라는 자바의 강점을 직접 경험하는 사례였다.
이렇듯, 자바는 오늘날 데스크톱, 모바일, 셋톱이나 스마트 TV와 같은 임베디드, 백엔드 등 거의 모든 분야에서 활발하게 사용되어, 소프트웨어 개발자가 반드시 익혀야 하는 필수적인 언어가 되었다.
몇 해 전부터 자바 플랫폼과 개발 환경에 변화가 있었다. 첫째, 2019년부터 오라클의 라이선스 정책이 바뀌어 오라클 JDK가 유료가 되었다. 그래서 자바를 가르치는 교육기관이 무료 JDK를 이용하려면 라이선스가 없는 OpenJDK를 사용해야 한다. OpenJDK는 오라클에서 공개한 자바 플랫폼의 소스 코드를 일반 사용자들이 쉽게 활용할 수 있도록 빌드하여 만든 것으로, 여러 회사들이 제공한다. 둘째, 시대의 변화에 빠르게 대응하기 위해, 오라클은 장기간 지원이 보장되는 LTS 자바 버전을 2년 간격으로 단축 출시하고, 소규모 수정 버전은 6개월 간격으로 출시한다. 셋째, 자바 프로그램을 개발하는 통합 개발 도구는 오늘날 이클립스(Eclipse)와 인텔리제이(IntelliJ IDEA)로 양분되므로, 독자들은 이클립스나 무료 버전의 인텔리제이를 다운받아 사용하면 된다. 또한 이들은 OpenJDK를 내장하기 때문에 이들을 사용하는 경우 OpenJDK를 별도로 다운받을 필요는 없다.
저자

황기태,김효수

현한성대학교컴퓨터공학부교수
서울대학교컴퓨터공학과박사
서울대학교컴퓨터공학과석사
서울대학교컴퓨터공학과학사
비트교육센터센터장
IBMWatsonResearchCenter방문연구원
UniversityofCalifornia,Irvine방문교수
UniversityofFlorida방문교수

목차

CHAPTER01자바시작
1.1컴퓨터와프로그래밍
1.2자바의출현과WORA
1.3개발도구와자바플랫폼
1.4자바프로그램개발
1.5이클립스를이용한자바프로그램개발
1.6자바언어의활용
1.7자바의특징
요약
OpenChallenge
연습문제

CHAPTER02자바기본프로그래밍
2.1자바프로그램의구조
2.2식별자
2.3자바의데이터타입
2.4자바에서키입력
2.5연산
2.6조건문
요약
OpenChallenge
연습문제

CHAPTER03반복문과배열그리고예외처리
3.1반복문
3.2continue문과break문
3.3배열
3.4다차원배열
3.5메소드에서배열리턴
3.6main()메소드
3.7자바의예외처리
요약
OpenChallenge
연습문제

CHAPTER04클래스와객체
4.1객체지향과자바
4.2자바클래스만들기
4.3생성자
4.4객체배열
4.5메소드활용
4.6객체의소멸과가비지컬렉션
4.7접근지정자
4.8static멤버
4.9final
요약
OpenChallenge
연습문제

CHAPTER05상속
5.1상속의개념
5.2클래스상속과객체
5.3상속과protected접근지정자
5.4상속과생성자
5.5업캐스팅과instanceof연산자
5.6메소드오버라이딩
5.7추상클래스
5.8인터페이스
요약
OpenChallenge
연습문제

CHAPTER06모듈과패키지개념,자바기본패키지
6.1패키지(Package)
6.2import와클래스경로
6.3패키지만들기
6.4모듈개념
6.5자바JDK에서제공하는패키지
6.6Object클래스
6.7Wrapper클래스
6.8String클래스
6.9StringBuffer클래스
6.10StringTokenizer클래스
6.11Math클래스
6.12Calendar클래스
요약
OpenChallenge
연습문제

CHAPTER07제네릭과컬렉션
7.1컬렉션과제네릭
7.2제네릭컬렉션활용
7.3제네릭만들기
요약
OpenChallenge
연습문제

CHAPTER08입출력스트림과파일입출력
8.1자바의입출력스트림
8.2문자스트림과파일입출력
8.3바이트스트림과파일입출력
8.4버퍼입출력과파일입출력
8.5File클래스
8.6파일입출력응용:파일복사
요약
OpenChallenge
연습문제

CHAPTER09자바GUI기초,AWT와스윙(Swing)
9.1자바의GUI
9.2자바GUI패키지
9.3스윙GUI프로그램만들기
9.4컨테이너(Container)와배치(Layout)
9.5FlowLayout배치관리자
9.6BorderLayout배치관리자
9.7GridLayout배치관리자
9.8배치관리자없는컨테이너
9.9여러컴포넌트를가진복잡한GUI만들기
요약
OpenChallenge
연습문제

CHAPTER10자바의이벤트처리
10.1이벤트기반프로그래밍
10.2이벤트객체
10.3이벤트리스너
10.4어댑터(Adapter)클래스
10.5KeyEvent와KeyListener
10.6MouseEvent와MouseListener,MouseMotionListener,MouseWheelListener
요약
OpenChallenge
연습문제

CHAPTER11기본적인스윙컴포넌트와활용
11.1스윙컴포넌트소개
11.2JLabel,레이블컴포넌트
11.3JButton,버튼컴포넌트
11.4JCheckBox,체크박스컴포넌트
11.5JRadioButton,라디오버튼컴포넌트
11.6JTextField,텍스트필드컴포넌트
11.7JTextArea,텍스트영역컴포넌트
11.8JList〈E〉,리스트컴포넌트
11.9JComboBox〈E〉,콤보박스컴포넌트
11.10JSlider,슬라이더컴포넌트
요약
OpenChallenge
연습문제

CHAPTER12그래픽
12.1스윙컴포넌트그리기
12.2Graphics
12.3도형그리기와칠하기
12.4이미지그리기
12.5클리핑(Clipping)
12.6스윙의페인팅메커니즘
요약
OpenChallenge
연습문제

CHAPTER13스레드와멀티태스킹
13.1멀티태스킹
13.2자바의멀티스레딩
13.3스레드만들기
13.4스레드생명주기와스케줄링
13.5스레드종료
13.6스레드동기화(ThreadSynchronization)
13.7wait(),notify(),notifyAll()을이용한스레드동기화
요약
OpenChallenge
연습문제

CHAPTER14고급스윙컴포넌트
14.1메뉴만들기
14.2툴바
14.3툴팁
14.4다이얼로그만들기
14.5팝업다이얼로그
14.6파일다이얼로그
14.7컬러다이얼로그
14.8탭팬
14.9자바오디오다루기
요약
OpenChallenge
연습문제

CHAPTER15네트워크
15.1TCP/IP
15.2소켓프로그래밍
15.3서버-클라이언트채팅프로그램만들기
15.4수식계산서버-클라이언트만들기실습
요약
OpenChallenge
연습문제
CheckTime정답

CHAPTER16JDBC프로그래밍
16.1데이터베이스
16.2MySQL
16.3MySQLWorkbench를이용한데이터베이스활용
16.4자바의JDBC프로그래밍
요약
OpenChallenge
연습문제

출판사 서평

이책의특징

첫째,자바프로그래밍개념과방법을충실히정리하고적절한예제를수록하였다.
둘째,많은그림과삽화로개념을쉽게이해하도록하였다.
셋째,각절마다CheckTime문제를두어배운내용을확인할수있도록하였다.
넷째,연습문제는이론문제와실습문제로나누었고,홀수번과짝수번을유사한문제로꾸며,반복연습해볼수있도록구성하였다.
다섯째,각장마다OpenChallenge문제를두어도전하는과정을두었다.


개정5판에서추가되거나달라진부분

1.본문을수정하였다.1장에는자바플랫폼의환경변화와관련하여최신내용으로갱신하였다.6장에는Calendar활용,7장에는HashMap활용,9장에는여러컴포넌트로구성되는GUI만들기등의예제를추가하였다.
2.연습문제중실습문제를새롭게출제하였다.연속되는홀수번과짝수번문제를유사하게출제하여반복연습할수있게하였다.
3.오픈챌린지문제는몇개의장에대해서만새로작성하였다.
4.예제나실습문제정답등모든소스코드는utf-8로인코딩된이클립스프로젝트로제공한다.이는이클립스가2022년6월부터자바프로젝트의기본인코딩을utf-8로하고있기때문이다.


이책의내용

1장에서는자바가태어난배경과그발전과정을알아보고,자바의특징및자바가사용되는다양한분야에대해알아본다.2장에서는자바프로그램의기본구성과그요소에대해알아본다.즉,자바프로그래밍을위한클래스,변수,메소드,상수에이름을붙이고,이들을선언하는방법에대해알아보고,산술연산자,비트연산자,논리연산자등연산자와프로그램제어를위한if,if-else,switch등의조건문에대해알아본다.3장에서는반복문과배열에대해알아본다.또한배열을다루다보면인덱스가배열의범위를벗어나는경우가생기는데,이러한예외상황을자바가어떻게처리하는지도간단히알아본다.4장에서는객체지향언어의기본이라할수있는클래스와객체에대한개념과객체생성방법,객체의구성등에대해다룬다.5장에서는상속의개념을설명하고,서브클래스를작성하는방법,동적바인딩등의내용을설명한다.또한추상클래스와인터페이스에대한내용을설명한다.
6장에서는패키지를만들고사용하는방법을자세히설명한다.모듈개념,모듈기반자바실행환경,모듈화의목적등을간략히소개하였다.또한자바응용프로그램작성시많이사용하는JDK에서제공하는기본패키지와클래스의사용에대해설명한다.7장에서는여러개의객체들을저장하고다루는컬렉션에대해설명한다.또한코드의재사용과관련된제네릭(generic)의개념과활용에대해설명한다.8장에서는자바에서의입출력스트림의기본개념을설명한다.또한다양한API를소개하고자바응용프로그램이키보드,콘솔등여러입출력장치로부터데이터를입출력하거나파일을입출력하는방법을설명한다.9장에서는메뉴나이미지,그래픽을이용하여화면에보여주고사용자로부터마우스를이용한다양한입력을받을수있는GUI방법을소개한다.그리고자바와스윙(Swing)패키지를대상으로기본적인GUI응용프로그램을작성하는방법을설명한다.또한자바GUI의기본체제인컨테이너와컴포넌트의구성을이해하고프레임을만드는방법과컨테이너가컴포넌트를배치하는여러가지방법,여러컴포넌트를가진복잡한GUI만들기를다룬다.10장에서는어떤이벤트가발생하고,이벤트를처리하는리스너는어떻게작성하며,이벤트리스너는발생한이벤트에관한정보를어떻게얻는지등제반사항을배운다.
11장에서는많이사용되는기본적인스윙컴포넌트들을소개하며,Item이벤트와Change이벤트를활용하는방법도소개한다.12장에서는화면에자유롭게도형이나이미지를출력할수있는Graphics의기능을이해하고활용하는방법을다룬다.13장에서는스레드개념,스레드만들기,JVM와스레드,스레드변이,스레드동기화등을다룬다.14장에서는사용하기쉬운몇몇고급스윙컴포넌트를소개한다.또한응용프로그램을작성하는데필수적인메뉴,툴바,툴팁,다양한팝업다이얼로그,파일입출력을위한파일열기/저장다이얼로그,색상선택을위한컬러다이얼로그,다수의팬을가지는탭팬등을다룬다.디지털오디를제어하는방법을배운다.15장에서는TCP/IP프로토콜에대해간단히알아보고,자바의소켓을이용하여클라이언트와서버가어떻게데이터를주고받는지알아보며,프로그래밍하는기법을설명한다.그리고웹과관련된URL클래스를이용한네트워크프로그래밍과웹을비롯한기타네트워크응용프로그램의기초가되는소켓프로그래밍을공부한다.16장에서는데이터베이스에대해간단히알아본후자바의JDBC를이용하여데이터베이스를생성하고,접속하고,데이터를생성·수정·삭제·검색등을수행하는자바응용프로그램을작성하는기법에대해서설명한다.