추천 검색어

최근 검색어

도서 IT전문서/IT입문서 프로그래밍/오픈소스
실무에서 알아야 할 기술은 따로 있다 자바를 다루는 기술
정 가
29,000원
출 간
2014-02-24
지 은 이
김병부
I S B N
9788966185528
분 량
784쪽
난 이 도
초급
부 록
예제 소스

저자의 프로젝트 경험에서 우러난 실무 노하우가 곳곳에!

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


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

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 이클립스 활용 가이드
ㆍ지은이 김병부
지은이 소개

광운대학교에서 무선네트워크 분야를 전공하였으며, 광운대학교 네트워크 연구회(K-NET)의 일원으로 활동했다. 현재 CJ E&M에서 근무하고 있다. 그동안 3권의 책을 집필했으며, 주로 웹 프로그래밍과 서버 프로그래밍을 업으로 삼고 있다. 50대에도 개발자로 일하기 위해서 꾸준히 고민 중이다.


필요한 자료를 선택하세요.

추천도서