책 소개
초판 발행 이후 윈도우 운영체제가 바뀌고, 자바 언어와 플랫폼에도 여러 변화들이 있어 왔다. Java 7, 8을 지나면서 자바 언어에 새로운 기능들이 추가되었고 2017년 9월 Java 9에서는 모듈화(modularity)를 도입하는 획기적인 변화가 있었으며, 2018년 3월에는 Java 10이 출시되었다. 자바의 변화한 부분 중에서 꼭 알아야 하는 부분만 개정판에 반영하였다. 추가되거나 달라진 부분은 다음과 같다.
1. 1장과 6장에 모듈의 개념을 언급하고, Java 9부터는 자바 API와 플랫폼이 모두 모듈화되었기 때문에 6.4절을 추가하여 모듈 개념, 모듈 기반 자바 실행 환경, 모듈화의 목적을 간략히 소개하였다.
2. 2.3절에 var 키워드로 변수 타입을 추론하는 기능(Java 10)에 대한 설명과 예제를 추가하였다.
3. Java 8, 9를 거치면서 인터페이스의 정의가 바뀌었기 때문에 5장 인터페이스 부분을 수정하였다.
4. 6.7절 Wrapper 클래스 부분을 갱신하였다. Java 9부터는 Wrapper 객체를 생성자와 new 연산자를 사용하는 방법이 폐기되었기 때문이다.
5. 14장 자바 소켓 프로그래밍을 추가하였다.
6. 실습문제를 추가하였다.
7. 소스 코드는 모두 JDK 10에서 이클립스 Oxygen4.7.3a 버전의 프로젝트로 만들었다.
본문에 넣기에 어려운 내용은 홈페이지에서 제공한다.
1. 자바의 람다식 기초.pdf: 자바로 람다식을 만드는 기초를 설명한다.
2. 이클립스로 모듈 만들기.pdf: 모듈을 만드는 과정을 간단히 작성하였다.
3. jlink로 응용프로그램 맞춤형 실행 환경 만들기.pdf: 커스텀 JRE를 만드는 사례를 소개하고, 크기와 실행 시간 메모리의 성능이 향상됨을 보였다.
1장에서는 자바 언어와 플랫폼에 대해 전반적으로 이해하고, 이클립스를 이용한 자바 프로그램 개발을 다룬다.
2장에서는 자바 프로그램의 기본 구조를 이해하고, 화면 출력 및 키 입력 방법을 습득한다.
3장에서는 자바의 반복문을 이해하고, 자바의 독특한 배열의 구조를 알고 활용한다. 자바의 기초적인 예외 처리를 다룬다.
4장에서는 자바 클래스 작성, 객체와 객체 배열 생성, 객체 소멸과 가비지 컬렉션에 대해 이해한다. static 멤버의 사용과 활용, final 키워드의 용도를 알아본다.
5장에서는 상속의 개념을 이해하고 서브 클래스를 작성한다. 오버라이딩과 동적 바인딩을 알아보고 추상 클래스와 인터페이스를 다룬다.
6장에서는 자바 모듈과 패키지에 대한 개념을 이해하고 사용자 패키지를 만든다. 자바의 다양한 패키지를 다룬다.
7장에서는 컬렉션과 제네릭의 개념을 이해하고, 컬렉션을 활용한 프로그램을 작성한다.
8장에서는 자바 스윙을 이용한 GUI 프로그래밍의 기초를 이해하고 스윙 프로그램을 작성한다.
9장에서는 자바의 이벤트 기반 프로그래밍을 이해하고, 이벤트 리스너를 작성한다. 스윙으로 키보드와 마우스를 다룬다.
10장에서는 다양한 스윙 컴포넌트를 활용하여 GUI 프로그램을 작성한다.
11장에서는 선, 원, 이미지 그리기 등 스윙 그래픽을 이해하고 그래픽을 활용한 스윙 프로그램을 작성한다.
12장에서는 자바 스레드, 멀티스레드, 스레드 동기화에 대한 기초 개념을 이해하고, 스레드를 작성한다.
13장에서는 자바의 표준 입출력 스트림의 개념을 이해하고, 텍스트, 바이너리 파일 입출력 프로그램을 작성한다.
14장에서는 소켓을 이용한 자바 통신 프로그램을 작성하는 방법을 이해한다.
1. 1장과 6장에 모듈의 개념을 언급하고, Java 9부터는 자바 API와 플랫폼이 모두 모듈화되었기 때문에 6.4절을 추가하여 모듈 개념, 모듈 기반 자바 실행 환경, 모듈화의 목적을 간략히 소개하였다.
2. 2.3절에 var 키워드로 변수 타입을 추론하는 기능(Java 10)에 대한 설명과 예제를 추가하였다.
3. Java 8, 9를 거치면서 인터페이스의 정의가 바뀌었기 때문에 5장 인터페이스 부분을 수정하였다.
4. 6.7절 Wrapper 클래스 부분을 갱신하였다. Java 9부터는 Wrapper 객체를 생성자와 new 연산자를 사용하는 방법이 폐기되었기 때문이다.
5. 14장 자바 소켓 프로그래밍을 추가하였다.
6. 실습문제를 추가하였다.
7. 소스 코드는 모두 JDK 10에서 이클립스 Oxygen4.7.3a 버전의 프로젝트로 만들었다.
본문에 넣기에 어려운 내용은 홈페이지에서 제공한다.
1. 자바의 람다식 기초.pdf: 자바로 람다식을 만드는 기초를 설명한다.
2. 이클립스로 모듈 만들기.pdf: 모듈을 만드는 과정을 간단히 작성하였다.
3. jlink로 응용프로그램 맞춤형 실행 환경 만들기.pdf: 커스텀 JRE를 만드는 사례를 소개하고, 크기와 실행 시간 메모리의 성능이 향상됨을 보였다.
1장에서는 자바 언어와 플랫폼에 대해 전반적으로 이해하고, 이클립스를 이용한 자바 프로그램 개발을 다룬다.
2장에서는 자바 프로그램의 기본 구조를 이해하고, 화면 출력 및 키 입력 방법을 습득한다.
3장에서는 자바의 반복문을 이해하고, 자바의 독특한 배열의 구조를 알고 활용한다. 자바의 기초적인 예외 처리를 다룬다.
4장에서는 자바 클래스 작성, 객체와 객체 배열 생성, 객체 소멸과 가비지 컬렉션에 대해 이해한다. static 멤버의 사용과 활용, final 키워드의 용도를 알아본다.
5장에서는 상속의 개념을 이해하고 서브 클래스를 작성한다. 오버라이딩과 동적 바인딩을 알아보고 추상 클래스와 인터페이스를 다룬다.
6장에서는 자바 모듈과 패키지에 대한 개념을 이해하고 사용자 패키지를 만든다. 자바의 다양한 패키지를 다룬다.
7장에서는 컬렉션과 제네릭의 개념을 이해하고, 컬렉션을 활용한 프로그램을 작성한다.
8장에서는 자바 스윙을 이용한 GUI 프로그래밍의 기초를 이해하고 스윙 프로그램을 작성한다.
9장에서는 자바의 이벤트 기반 프로그래밍을 이해하고, 이벤트 리스너를 작성한다. 스윙으로 키보드와 마우스를 다룬다.
10장에서는 다양한 스윙 컴포넌트를 활용하여 GUI 프로그램을 작성한다.
11장에서는 선, 원, 이미지 그리기 등 스윙 그래픽을 이해하고 그래픽을 활용한 스윙 프로그램을 작성한다.
12장에서는 자바 스레드, 멀티스레드, 스레드 동기화에 대한 기초 개념을 이해하고, 스레드를 작성한다.
13장에서는 자바의 표준 입출력 스트림의 개념을 이해하고, 텍스트, 바이너리 파일 입출력 프로그램을 작성한다.
14장에서는 소켓을 이용한 자바 통신 프로그램을 작성하는 방법을 이해한다.
작가 소개
저 : 황기태
서울대학교 컴퓨터공학과 학사, 서울대학교 컴퓨터공학과 석사, 서울대학교 컴퓨터공학과 박사를 졸업하였다. California University in Irvine의 방문교수로 있었다. 현재는 한성대학교 컴퓨터공학과 교수로 재직 중이다.
목 차
chapter 01 자바 시작
1.1 컴퓨터와 프로그래밍
1.2 자바의 출현과 WORA
1.3 개발 도구와 자바 플랫폼
1.4 자바 프로그램 개발 과정
1.5 이클립스를 이용한 자바 프로그램 개발
1.6 자바 응용프로그램의 종류
1.7 자바의 특징
요약
Open Challenge
연습문제
chapter 02 자바 기본 프로그래밍
2.1 자바 프로그램의 구조
2.2 식별자
2.3 자바의 데이터 타입
2.4 자바의 키 입력
2.5 연산자
2.6 조건문
요약
Open Challenge
연습문제
chapter 03 반복문과 배열 그리고 예외 처리
3.1 반복문
3.2 continue 문과 break 문
3.3 자바의 배열
3.4 다차원 배열
3.5 메소드의 배열 리턴
3.6 자바의 예외 처리
요약
Open Challenge
연습문제
chapter 04 클래스와 객체
4.1 객체 지향과 자바
4.2 자바 클래스 만들기
4.3 생성자
4.4 객체 배열
4.5 메소드 활용과 객체 치환
4.6 객체의 소멸과 가비지 컬렉션
4.7 접근 지정자
4.8 static 멤버
4.9 final
요약
Open Challenge
연습문제
chapter 05 상속
5.1 상속의 개념
5.2 클래스 상속과 객체
5.3 protected 접근 지정
5.4 상속과 생성자
5.5 업캐스팅과 instanceof 연산자
5.6 메소드 오버라이딩
5.7 추상 클래스
5.8 인터페이스
요약
Open Challenge
연습문제
chapter 06 모듈과 패키지 개념, 자바 패키지 활용
6.1 패키지
6.2 패키지 만들기
6.3 모듈 개념
6.4 자바 JDK에서 제공하는 패키지
6.5 Object 클래스
6.6 Wrapper 클래스
6.7 String과 StringBuffer 클래스
6.8 StringTokenizer 클래스
6.9 Math 클래스
요약
Open Challenge
연습문제
chapter 07 컬렉션과 제네릭
7.1 컬렉션과 제네릭 개념
7.2 제네릭 컬렉션 활용
7.3 제네릭 만들기
요약
Open Challenge
연습문제
chapter 08 자바 GUI 스윙 기초
8.1 자바의 GUI
8.2 자바 GUI 패키지
8.3 스윙 GUI 프로그램 만들기
8.4 컨테이너(Container)와 배치(Layout)
8.5 FlowLayout 배치관리자
8.6 BorderLayout 배치관리자
8.7 GridLayout 배치관리자
8.8 배치관리자 없는 컨테이너
요약
Open Challenge
연습문제
chapter 09 자바의 이벤트 처리
9.1 이벤트 기반 GUI 프로그래밍
9.2 이벤트 객체
9.3 사용자 이벤트 리스너 작성
9.4 어댑터(Adapter) 클래스
9.5 Key 이벤트와 KeyListener
9.6 Mouse 이벤트와 MouseListener, MouseMotionListener
요약
Open Challenge
연습문제
chapter 10 스윙 컴포넌트 활용
10.1 스윙 컴포넌트 소개
10.2 JLabel로 문자열과 이미지 출력
10.3 JButton으로 버튼 만들기
10.4 JCheckBox로 체크박스 만들기
10.5 JRadioButton으로 라디오버튼 만들기
10.6 JTextField로 한 줄 입력 창 만들기
10.7 JTextArea로 여러 줄의 입력 창 만들기
10.8 JListE로 리스트 만들기
10.9 JComboBoxE로 콤보박스 만들기
10.10 메뉴 만들기
10.11 팝업 다이얼로그
요약
Open Challenge
연습문제
chapter 11 그래픽
11.1 스윙 컴포넌트 그리기
11.2 Graphics
11.3 도형 그리기와 칠하기
11.4 이미지 그리기
11.5 repaint()와 그래픽 응용
요약
Open Challenge
연습문제
chapter 12 자바 스레드 기초
12.1 멀티태스킹
12.2 자바 스레드 만들기
12.3 스레드 종료
12.4 스레드 동기화
요약
Open Challenge
연습문제
chapter 13 입출력 스트림과 파일 입출력
13.1 자바의 입출력 스트림
13.2 문자 스트림과 텍스트 파일 입출력
13.3 바이트 스트림과 바이너리 파일 입출력
13.4 File 클래스
13.5 파일 복사 응용프로그램 작성
요약
Open Challenge
연습문제
chapter 14 자바 소켓 프로그래밍
14.1 TCP/IP 기초
14.2 소켓 프로그래밍
14.3 서버-클라이언트 채팅 프로그램 만들기
14.4 수식 계산 서버-클라이언트 만들기 실습
요약
Open Challenge
연습문제
CHECK TIME 정답
1.1 컴퓨터와 프로그래밍
1.2 자바의 출현과 WORA
1.3 개발 도구와 자바 플랫폼
1.4 자바 프로그램 개발 과정
1.5 이클립스를 이용한 자바 프로그램 개발
1.6 자바 응용프로그램의 종류
1.7 자바의 특징
요약
Open Challenge
연습문제
chapter 02 자바 기본 프로그래밍
2.1 자바 프로그램의 구조
2.2 식별자
2.3 자바의 데이터 타입
2.4 자바의 키 입력
2.5 연산자
2.6 조건문
요약
Open Challenge
연습문제
chapter 03 반복문과 배열 그리고 예외 처리
3.1 반복문
3.2 continue 문과 break 문
3.3 자바의 배열
3.4 다차원 배열
3.5 메소드의 배열 리턴
3.6 자바의 예외 처리
요약
Open Challenge
연습문제
chapter 04 클래스와 객체
4.1 객체 지향과 자바
4.2 자바 클래스 만들기
4.3 생성자
4.4 객체 배열
4.5 메소드 활용과 객체 치환
4.6 객체의 소멸과 가비지 컬렉션
4.7 접근 지정자
4.8 static 멤버
4.9 final
요약
Open Challenge
연습문제
chapter 05 상속
5.1 상속의 개념
5.2 클래스 상속과 객체
5.3 protected 접근 지정
5.4 상속과 생성자
5.5 업캐스팅과 instanceof 연산자
5.6 메소드 오버라이딩
5.7 추상 클래스
5.8 인터페이스
요약
Open Challenge
연습문제
chapter 06 모듈과 패키지 개념, 자바 패키지 활용
6.1 패키지
6.2 패키지 만들기
6.3 모듈 개념
6.4 자바 JDK에서 제공하는 패키지
6.5 Object 클래스
6.6 Wrapper 클래스
6.7 String과 StringBuffer 클래스
6.8 StringTokenizer 클래스
6.9 Math 클래스
요약
Open Challenge
연습문제
chapter 07 컬렉션과 제네릭
7.1 컬렉션과 제네릭 개념
7.2 제네릭 컬렉션 활용
7.3 제네릭 만들기
요약
Open Challenge
연습문제
chapter 08 자바 GUI 스윙 기초
8.1 자바의 GUI
8.2 자바 GUI 패키지
8.3 스윙 GUI 프로그램 만들기
8.4 컨테이너(Container)와 배치(Layout)
8.5 FlowLayout 배치관리자
8.6 BorderLayout 배치관리자
8.7 GridLayout 배치관리자
8.8 배치관리자 없는 컨테이너
요약
Open Challenge
연습문제
chapter 09 자바의 이벤트 처리
9.1 이벤트 기반 GUI 프로그래밍
9.2 이벤트 객체
9.3 사용자 이벤트 리스너 작성
9.4 어댑터(Adapter) 클래스
9.5 Key 이벤트와 KeyListener
9.6 Mouse 이벤트와 MouseListener, MouseMotionListener
요약
Open Challenge
연습문제
chapter 10 스윙 컴포넌트 활용
10.1 스윙 컴포넌트 소개
10.2 JLabel로 문자열과 이미지 출력
10.3 JButton으로 버튼 만들기
10.4 JCheckBox로 체크박스 만들기
10.5 JRadioButton으로 라디오버튼 만들기
10.6 JTextField로 한 줄 입력 창 만들기
10.7 JTextArea로 여러 줄의 입력 창 만들기
10.8 JListE로 리스트 만들기
10.9 JComboBoxE로 콤보박스 만들기
10.10 메뉴 만들기
10.11 팝업 다이얼로그
요약
Open Challenge
연습문제
chapter 11 그래픽
11.1 스윙 컴포넌트 그리기
11.2 Graphics
11.3 도형 그리기와 칠하기
11.4 이미지 그리기
11.5 repaint()와 그래픽 응용
요약
Open Challenge
연습문제
chapter 12 자바 스레드 기초
12.1 멀티태스킹
12.2 자바 스레드 만들기
12.3 스레드 종료
12.4 스레드 동기화
요약
Open Challenge
연습문제
chapter 13 입출력 스트림과 파일 입출력
13.1 자바의 입출력 스트림
13.2 문자 스트림과 텍스트 파일 입출력
13.3 바이트 스트림과 바이너리 파일 입출력
13.4 File 클래스
13.5 파일 복사 응용프로그램 작성
요약
Open Challenge
연습문제
chapter 14 자바 소켓 프로그래밍
14.1 TCP/IP 기초
14.2 소켓 프로그래밍
14.3 서버-클라이언트 채팅 프로그램 만들기
14.4 수식 계산 서버-클라이언트 만들기 실습
요약
Open Challenge
연습문제
CHECK TIME 정답
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |