HOME > 상세정보

상세정보

자바를 다루는 기술 : 실무에서 알아야 할 기술은 따로 있다! (18회 대출)

자료유형
단행본
개인저자
김병부
서명 / 저자사항
자바를 다루는 기술 : 실무에서 알아야 할 기술은 따로 있다! / 김병부 지음
발행사항
서울 :   길벗,   2014  
형태사항
2책 : 삽화 ; 26 cm
ISBN
9788966185528 (set)
일반주기
현장 밀착 입문서  
색인과 부록수록  
내용주기
1. 기초 문법과 객체 지향 프로그래밍, 자바 고급 응용 기법 (467 p.) -- 2. 자바 프로젝트를 위한 오픈 소스 라이브러리와 클래스 활용 (315 p.)
000 00909camcc2200265 c 4500
001 000045791655
005 20140317170946
007 ta
008 140311s2014 ulka 001c kor
020 1 ▼a 9788966185528 (set)
035 ▼a (KERIS)BIB000013416002
040 ▼a 244026 ▼c 244026 ▼d 244026 ▼d 211009
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b J41 2014z1
100 1 ▼a 김병부
245 1 0 ▼a 자바를 다루는 기술 : ▼b 실무에서 알아야 할 기술은 따로 있다! / ▼d 김병부 지음
246 1 1 ▼a (The) technique of Java programming
260 ▼a 서울 : ▼b 길벗, ▼c 2014
300 ▼a 2책 : ▼b 삽화 ; ▼c 26 cm
500 ▼a 현장 밀착 입문서
500 ▼a 색인과 부록수록
505 0 0 ▼n 1. ▼t 기초 문법과 객체 지향 프로그래밍, 자바 고급 응용 기법 ▼g (467 p.) -- ▼n 2. ▼t 자바 프로젝트를 위한 오픈 소스 라이브러리와 클래스 활용 ▼g (315 p.)
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 J41 2014z1 1 등록번호 121228995 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 J41 2014z1 2 등록번호 121229027 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

자바 언어의 기초 문법서. 객체 지향 프로그래밍 개념은 물론, 자바의 자료구조, 제네릭(generics), 리플렉션(reflection) 등 고급 응용 기법들을 다양한 예제를 통해 익힐 수 있도록 구성하였다. 또한 저자의 실무 경험 속에서 얻은 노하우와 팁들을 제시하고, 오픈 소스 라이브러리 응용법 등을 통해 실무 적응력을 높여 독자들이 다양한 개발 현장에서 자바 프로젝트를 어려움 없이 수행할 수 있도록 하는데 이 책의 목적을 두었다.

자바 언어의 기초 문법을 친절하고 자세하게 설명한다. 객체 지향 프로그래밍 개념은 물론, 자바의 자료구조, 제네릭(generics), 리플렉션(reflection) 등 고급 응용 기법들을 다양한 예제를 통해 익힐 수 있도록 구성하였다. 또한 저자의 실무 경험 속에서 얻은 노하우와 팁들을 제시하고, 오픈 소스 라이브러리 응용법 등을 통해 실무 적응력을 높여 독자들이 다양한 개발 현장에서 자바 프로젝트를 어려움 없이 수행할 수 있도록 하는데 이 책의 목적을 두었다.

VOL.1과 VOL.2로 분권하여 가볍게 공부하세요.
VOL.1에서는 자바의 핵심 기초 문법을 집중적으로 설명합니다. 프로그래밍을 처음 접하는 사람들도 자바에 대한 큰 그림과 개념을 가질 수 있도록 쉽게 풀어서 설명합니다. 또한 객체 지향 프로그래밍과 함께 자바를 조금 더 고급스럽게 구사할 수 있는 응용 기법들을 다룹니다.

VOL.2에서는 실무 작업의 대부분을 차지하는 오픈 소스를 사용하기 위한 기본 지식과 JDK에 포함된 클래스들의 사용법을 다룹니다. 실제로 자바 응용 프로그램을 연습해봄으로써 다양한 현장(웹, 안드로이드 앱, 클라이언트 개발 등)에서 오픈 소스를 사용한 개발에 자신감을 얻게 될 것입니다.

저자의 프로젝트 경험에서 우러난 실무 노하우가 곳곳에!
책의 중간중간 ‘Knowhow’라는 별도의 코너를 만나게 될 텐데, 여기서는 저자가 현장에서 프로젝트를 수행하면서 경험한 에러들을 독자가 반복하지 않기를 바라는 선배의 마음으로 실무 노하우와 팁들을 아낌없이 알려줍니다. 실무에서 곁에 두고 참고한다면 시행착오를 줄일 수 있을 것입니다.


정보제공 : Aladin

저자소개

김병부(지은이)

광운대학교 전파공학과 무선인터넷 연구실 석사 과정을 마치고, NHN 엔터테인먼트, 넷마블 등 대기업과 중견기업 그리고 스타트업까지 다양한 회사에서 개발자로 활동하였다. 저서로 《리눅스 바이블, 영진닷컴》, 《AS.NET 30일 완성, 영진 닷컴》, 《자바를 다루는 기술, 길벗》등이 있다.

정보제공 : Aladin

목차

첫째마당 자바 개발자가 꼭 알아야 할 기본기 다지기

1장 이클립스로 시작하는 자바 첫걸음
01 개발자에게 사랑받는 언어, 자바와 친해지기 
- 자바 언어에 대한 소개 
- 자바의 여섯 가지 특징 
02 자바에서 JVM의 역할은 무엇일까? 
- 자바 실행을 위한 가상 서버 
- 구조로 알아보는 JVM의 동작 원리 
03 JDK 설치하고 환경 변수 설정하기 
- 자바 개발 도구 JDK 설치 
- 편리한 개발 환경을 위한 환경 변수 설정 
04 프로그래밍의 시작, Hello World 예제를 만들어 보자 
- HelloWold.java 실행하기 
- 동작 원리 분석 
05 실무에 적합한 개발 도구, 이클립스와 친해지자 
- 이클립스 설치 따라하기 
- 이클립스 화면 구성 
- 프로젝트 만들 

2장 자바 프로그래밍을 위한 변수와 데이터형
01 변수, 제대로 알고 넘어가자 
- 변수의 선언과 사용 
- 모두를 위한 변수명 규칙 
02 데이터형의 종류와 사용법 익히기 
- 정수를 담기 위한 정수형 
- 명시적 선언을 위한 정수 리터럴
03 char형이 곧 문자형이다 
04 부동 소수형 이해하기
- float과 double 
- 부동 소수형 리터럴 
05 불리언형과 참조형 변수도 잊지 말자
- 참 또는 거짓, 불리언 형 
- 참조형 변수
06 형 변환으로 데이터 형태를 변경하자
07 JVM에 저장된 데이터 위치 확인하기 
[Knowhow] null 키워드로 메모리를 효율적으로 관리하자! 

3장 자바에서 사용하는 연산자 & 연산
01 기본 연산자 익히기
- 대입 연산자 
- 사칙 연산을 위한 산술 연산자
- 간결한 코드 작성을 위한 단항 연산자
- 다양한 비교를 위한 비교 연산자 
02 논리 연산자와 비트 연산자 익히기 
- true/false 판단을 위한 논리 연산자
- 2진수 연산을 위한 비트 연산자
03 알아두면 편리한 시프트 연산자와 3항 연산자
- 시프트 연산자 
- 조건식을 간단하게 해주는 3항 연산자
04 String을 사용한 기본 문자열 연산 익히기
- 문자열 연산을 위한 기본 메소드 
- 문자열을 비교하는 방법 
- 특정 문자열의 위치 파악 
- 문자열로 형 변환하는 법
- 특정 형식으로 문자열 포매팅하는 법 
- 포맷 지시자
[Knowhow] 자바 개발자는 Java doc을 활용할 줄 알아야 한다 

4장 자바에서 사용하는 조건문 & 반복문
01 논리적인 흐름 제어를 위한 if 조건문 만들기
- if 조건문
- 중첩된 if 구문
- 변수의 유효 범위를 지정하는 중괄호
02 논리 흐름 제어를 위한 또 다른 방법, switch-case 조건문
- Switch 구문의 사용 방법
- String형을 반환하는 조건문
03 for, while, do-while 반복문 비교하기
- for 반복문
- while과 do-while 구문
04 continue와 break 키워드로 흐름 제어하기
- 무한 반복 탈출을 위한 break 키워드
- 다음 루프로 넘어가는 continue 키워드
[Knowhow] 버그를 줄여주는 코딩 습관을 들이자 
[Knowhow] 이클립스에서 error와 warning을 없애자
[Knowhow] 이클립스에서 포매터를 사용하자 

둘째마당 객체 지향 자바, 내 것으로 만들기

5장 객체 지향 프로그래밍의 시작
01 클래스와 객체, 인스턴스 개념 구별하기 
- 객체는 무엇인가?
- 기능 명세서와 같은 클래스 
- 인스턴스란? 
02 클래스를 구성하는 메소드와 생성자, 그리고 속성 
- 클래스를 구성하는 핵심 요소
- 명령 구문들의 묶음인 메소드
- 메소드 사용 방법
- 객체를 생성하기 위한 특별한 메소드, 생성자
03 속성으로 객체의 상태 표현하기
- 클래스 속성의 선언과 사용
04 package와 import 키워드로 명시적 선언하기
- 소속을 밝히는 package 키워드
- 참조를 위한 import 키워드
05 객체 지향 프로그램 설계하기
- 추상화, 객체를 설계하는 기초 단계
- 부모-자식 관계를 맺는 상속
- 캡슐화, 관련된 것들을 따로 모은 클래스 
- 다형성
[Knowhow] 코딩할 때 지켜야 하는 명명 규칙

6장 객체 지향 프로그래밍, 한 걸음 더!
01 상속을 알아야 유연한 설계를 할 수 있다
- 상속 관계임을 알려주는 extends 키워드
- 상속은 언제, 왜 사용할까? 
- 다중 상속 vs 단일 상속
- 클래스의 조상, Object 클래스 
[Knowhow] 이클립스에서 클래스 상속 구조를 파헤쳐보자
02 오버로딩과 오버라이딩 기법 구분하기
- 다형성을 구현하는 오버로딩
- 재정의를 가능하게 해주는 오버라이딩 
03 super와 this 키워드를 사용해 명시적으로 객체 지칭하기
- super와 this 키워드 정의
04 객체 형 변환하기 
- 업캐스팅과 다운캐스팅 
- instanceof 키워드
- 객체끼리 비교하는 3가지 방법 
05 제어자로 특별한 의미 부여하기
- 접근 제어자(public, default, protected, private) 
- 수정을 금지하는 final 제어자
- static 제어자
06 클래스를 디자인하는 방법1 : 추상 클래스 
- Abstract 키워드와 추상 클래스
07 클래스를 디자인하는 방법2: 인터페이스
- 메소드 선언부만 존재하는 인터페이스
- 인터페이스의 다중 상속
- 인터페이스를 사용하는 이유 
08 클래스 안의 클래스 선언하기
- 인스턴스 내부 클래스
- 정적 내부 클래스
- 지역 내부 클래스
- 일회용으로 사용되는 익명 클래스
[Knowhow] 메모리 사용을 줄이기 위한 StringBuffer 클래스 

7장 자바의 자료구조 : 배열과 컬렉션 
01 배열로 다수의 객체 관리하기 
- 멤버 객체 접근을 위한 index
- 다차원 배열 사용법
- 배열의 형 변환 
Knowhow 난수를 만들어주는 Random 클래스 
02 자바에는 컬렉션이라는 편리한 것이 있다 1
- 컬렉션 프레임워크의 핵심 인터페이스들 
- 자바 기본 인터페이스인 Collection 인터페이스 
- 순차 처리를 위한 List 인터페이스 
- List 인터페이스를 구현하는 ArrayList와 Vector 클래스 
03 자바에는 컬렉션이라는 편리한 것이 있다 2 
- 비중복 처리를 위한 Set 인터페이스 
- HashSet 구현 클래스
- Key/Value 데이터 관리를 위한 Map 인터페이스 
- 컬렉션과 관련 있는 알고리즘 
- 반복 처리를 위한 Iterator와 Enumeration 
[Knowhow] NullPointerException 에러를 방지하는 세 가지 방법 
[Knowhow] Value Object 디자인 패턴과 Get/Set 메소드 
[Knowhow] 이클립스에서 get/set 메소드 편하게 선언하기

8장 예외 상황을 처리하는 기술
01 프로그램 실행 중 발생하는 예외 
- 예외 처리 맛보기 
02 try-catch-finally 구문만 알면 된다
- try-catch-finally 구문 사용법 
03 Throwable 클래스와 계층도 이해하기
- 자바에서 제공하는 오류 관련 클래스
- 오류 클래스의 조상, Throwable 클래스
- 예외 처리에서 사용되는 스택 
- 예외들의 집합, Exception 클래스
04 throws와 throw 키워드로 예외 던지기
- throw 키워드로 새로운 예외 던지기
- throws 키워드로 발생한 예외 다시 던지기
05 새로운 Exception 클래스 생성하기
06 처리해야 할 예외와 처리하지 않는 예외 구분하기
[Knowhow] 무조건적인 예외 처리는 좋은 것일까? 

9장 협력해서 더 빠르게! 멀티 스레딩
01 스레드 프로그래밍을 시작하기에 앞서 
- 이해하고 넘어가야 할 용어들
- 스레드 생성을 위한 Thread 클래스와 Runnable 인터페이스
- run( ) 메소드와 start( ) 메소드 
- 싱글 스레드 vs 멀티 스레드 
02 스레드 직접 만들고 다뤄보기
- Thread 클래스와 생성자
- 스레드 상태 전이도
- 스레드 스케줄러가 하는 일
- 스레드의 우선 순위와 실행 시간
03 스레드 종료하기 
- 스레드 강제 종료
- 인터럽트가 발생했을 경우
- 데몬 스레드
04 스레드 그룹으로 스레드 한 번에 제어하기 
05 멀티 스레딩의 핵심, 스레드 동기화하기
- 공유 자원 동시에 사용할 경우 발생하는 문제
- 해결책 : 동기화 
- 은행 서비스 구현 예제 
- 동기화의 부작용 : 병목 현상
06 폴링과 인터럽트 방식 구현하기
- Producer - Consumer 패턴
- 스레드를 제어하는 wait( ), notify( ), notifyAll( ) 메소드
[Knowhow] “오류: 기본 클래스 ????을(를) 찾거나 로드할 수 없습니다”가 나올 때! 

10장 JVM의 핵심, 자바 클래스 로더
01 자바는 동적으로 클래스를 읽어온다
- 동적 클래스 로딩 
- 클래스 네임스페이스 
02 질서정연하게 클래스를 로딩하는 클래스 로더 
- 델리게이션 모델
- URL 클래스 로더
- 사용자 정의 클래스 로더

11장 동적인 프로그래밍을 위한 리플렉션 기법
01 리플렉션으로 클래스 정보 확인하기 
02 클래스 파일의 정보를 얻기 위한 java.lang.Class
- Class 객체 생성하는 방법 
- Class 클래스에서 제공하는 메소드들 
03 java.lang.reflect 패키지에서 제공하는 클래스들
- 생성자를 의미하는 Constructor 클래스
- 특정 메소드를 가리키는 Method 클래
- 클래스 변수를 의미하는 Field 클래스

12장 다형성을 위한 제네릭 기법
01 제네릭 기법으로 클래스 디자인하기
- 제네릭의 특징 
02 와일드 카드와 다이아몬드 지시자로 제네릭 클래스 만들기 
- 와일드 카드와 다이아몬드 지시자
- 제네릭 클래스 확장 문법

13장 JDK의 유용한 클래스들
01 자주 사용하는 Object 슈퍼 클래스 활용하기 
02 날짜와 관련된 Date & Calendar 클래스 활용하기
- 날짜를 관리는 Date 클래스
- Date 클래스의 정보를 처리하는 Calendar 클래스 
- Calendar 객체로 특정일 지정하기
03 문자열 관련 클래스 연습하기
- StringBulider와 StringBuffer, 그리고 StringTokenizer 클래스 
04 SimpleDateFormat 클래스로 날짜 데이터 형식 변경하기


셋째마당 자바 프로젝트에서 자주 사용하는 라이브러리 익히기

14장 실무 자바 개발에 앞서 꼭 알아야 할 내용
01 자바 오픈 소스 라이브러리를 활용하자
- 오픈 소스를 사용하는 이유
- 알아두면 유용한 아파치 프로젝트들 
02 단위 테스트를 위한 JUnit 프레임워크는 어떻게 사용할까? 
- 이클립에서 JUnit 라이브러리 추가하기 
- JUnit으로 단위테스트 직접 해보기
- JUnit 프레임워크의 유용한 클래스들
03 여러 클래스 공용을 위한 클래스 패스 이해하기 
- 클래스 패스 지정하는 방법 

15장 디버깅의 핵심, 로깅
01 로그 프레임워크로 개발 정보를 기록하자
- 로그를 남기기 위한 일련의 과정, 로깅 
- Jar 클래스 패스 설정 
02 Log4j 라이브러리 분석하기 
- 로그 작성을 위한 Logger 객체 
03 로그 출력을 위한 Appender 객체 
- 로그 메시지의 형태를 지정하는 Layout 객체 
03 로깅 예제 실습하기 
- log4j.properties 설정 
- 로깅 시 주의할 점

16장 이메일 전송을 위한 CommonsEmail 컴포넌트
01 서버 프로그래밍 기본 지식 배우기 
- 서버-클라이언트 모델 
- SMTP 프로토콜
- 준비 환경 설정
02 주요 클래스와 API 사용하기 
- 가장 기본이 되는 Email 클래스 
- 텍스트 전송을 위한 SimpleEmail 클래스 
- 메시지와 파일을 함께 전송하는 MultiPartEmail 클래스 
- 첨부 파일을 위한 EmailAttachment 클래스
- HTML 형식의 HtmlEmail 클래스
- 예외 처리를 위한 EmailException 클래스 
03 이메일 전송 예제 실습하기 
- 이메일 전송 기능 구현
- 파일 첨부 기능 추가

17장 입출력 담당 Java Io Package
01 File 클래스 사용하기
- File 클래스와 파일 시스템이란? 
- File 클래스의 관리 메소드들 
- File 클래스의 권한과 관련된 메소드들 
- File 클래스의 파일 정보 메소드들 
- File 클래스의 경로 관련 메소드들
02 IO와 스트림 개념 이해하기 
- 입출력 처리를 위한 매개체, 스트림 
03 바이트 스트림으로 데이터 읽고 쓰기
- 바이트 단위 입력을 위한 InputStream 클래스
- 바이트 단위 출력을 위한 OutputStream 클래스
- Input Stream, Output Stream의 자식 클래스들 
- InputStream과 OutputStream을 이용한 예제 : 파일 복사 
04 문자 데이터를 읽어 들일 때 편리한 문자 스트림 
- 문자 데이터를 읽기 위한 Reader 클래스 
- 문자 데이터를 쓰기 위한 Writer 클래스
- Reader와 Writer의 자식 클래스들 
- Reader와 Wirter을 이용한 예제 : 파일 복사 

18장 PDF 핸들링을 위한 iText 라이브러리
01 iText 라이브러리로 PDF 문서 만들기
- iText 라이브러리 설정
- iText 라이브러리 주요 클래스들 
02 iText 라이브러리 추가 기능 활용하기 
- PDF 문서에 이미지를 추가하는 방법
- 백그라운드 이미지를 삽입하는 방법
- PDF 파일을 암호화하는 방법


03 Timer 클래스 활용하기
- Timer & TimerTask 클래스
- PDF 파일 암호화 JOB 만들기

19장 XML 핸들링
01 XML에 대한 개요 
- XML이 사용되는 분야 
- XML을 구성하는 요소들
- 간단한 XML 예제
02 DOM XML 파서는 언제 사용할까? 
- XML 파서란? 
- 문서 객체 모델 DOM 
- DOM 파서 관련 주요 클래스들 
- DOM 파서 관련 주요 메소드들
03 DOM XML 파서 다루기 
- DOM을 구성하는 Node 관련 클래스와 메소드
- DOM Parsing 예제
- DOM 관련 XML 생성 예제 
04 SAX XML 파서도 기억하자
- SAX 파서 관련 주요 클래스와 메소드 
- SAX 파싱 예제 
05 DOM 파서 vs SAX 파서 비교하기 

20장 JSON 핸들링
01 JSON 기본 문법 익히기 
- JSON 객체 
- JSON 배열 
02 json-simple 라이브러리 활용하기 
- 빌드 패스에 추가하는 방법 
- json-simple 라이브러리의 주요 클래스들
03 jSONMapper 클래스 예제 실습하기 
- JSONMapper 클래스의 메소드들 
- 테스트를 위한 TestValue 클래스
- TestJSONMapper 클래스 

21장 Apache Http 컴포넌트
01 HTTP 프로토콜 알고 넘어가자
- HTTP 프로토콜이란?
- HTTP 프로토콜의 4단계 동작 과정
- 요청-응답 메시지와 상태 코드 
02 HTTP Client 클래스를 직접 사용해보자 
- HTTPClient의 특징 
- HTTPClient 환경 설정
- HTTPClient 모듈의 주요 클래스
- HttpPost/HttpGet 방식으로 데이터 추가하기
03 HTTP 기반의 Open API 연동하기 
- 네이버 Open API 준비 사항 
- Open API 예제 

22장 향상된 Java 7
01 Java 7, 무엇이 달라졌을까? 
- 편리한 코딩을 위한 Project Coin 
- NIO2 클래스들 

부록
A API DOC에서 클래스에 대한 설명을 얻자 
B 이클립스 활용 가이드

관련분야 신착자료