Top

자바 7의 새로운 기능 [100가지가 넘는 예제로 살펴보는]

  • 원서명Java 7 New Features Cookbook (ISBN 9781849685627)
  • 지은이리차드 리스, 제니퍼 리스
  • 옮긴이남기혁
  • ISBN : 9788960775077
  • 30,000원
  • 2013년 12월 30일 펴냄
  • 페이퍼백 | 444쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

Try-with-resource 구문, 향상된 예외 처리 기능, 디렉토리 이벤트 모니터링, 비동기 IO와 GUI 관련 개선된 기능을 비롯한, 자바 7에서 새로 추가된 여러 가지 기능을 100가지가 넘는 많은 예제와 함께 중점적으로 소개한다. 각 기능에 대해 별도 장을 할애해 코드 예제와 함께 직접 실습할 수 있도록 구성되어 있다.

이 책에서 다루는 내용

■ 향상된 예외 처리와 리터럴 사용 등과 같은 자바 언어의 개선된 기능과 사용법
■ Path 클래스로 파일 속성이나 심볼릭 링크 같은 특수 파일을 효과적으로 다루는 방법
■ 파일 시스템 탐색과 파일 및 디렉토리 모니터링 방법
■ 비동기 IO 처리 방법
■ 향상된 윈도우 관련 메소드, JLayer 클래스, 다양한 다이얼로그 박스 관련 메소드 같은 GUI 개선 기능과 사용법
■ 새로운 RowSet 인터페이스와 데이터베이스 스키마 다루기
■ 운영체제의 프로세스를 다루고 SSL 관련 개선 기능

이 책의 대상 독자

이 책은 특히 자바 7에서 새로 도입된 기능을 재빨리 파악해 현업에 적용하려는 자바 개발자를 대상으로 집필했다.

이 책의 구성

1장. 자바 언어에 새로 추가된 기능 코인 프로젝트(Project Coin)에서 진행된 언어와 관련된 여러 가지 개선 사항을 다룬다. 자바 언어와 관련하여 리터럴에 언더스코어를 쓸 수 있게 된 것 같은 간단한 기능부터, 스위치 구문에서 스트링을 사용하는 기능에 이르기까지 다양한 부분이 개선됐다. 그 중에서도 try-with-resource 구문과 다이아몬드 연산자가 추가된 점은 가장 큰 변화로 손꼽을 수 있다.

2장. Path 오브젝트로 파일과 디렉토리의 경로 표현하기 Path 클래스에 대해 자세히 소개한다. 이 클래스는 자바 7에 새로 추가된 파일 관련 기능을 소개하는 다른 장에서도 자주 사용된다.

3장. 파일과 디렉토리 정보 알아내기 애플리케이션을 작성하다 보면 파일이나 디렉토리 정보를 가져와야 하는 경우가 많다. 이처럼 파일 속성이나 POSIX 속성, 파일의 접근 권한 리스트 등과 같은 파일 관련 정보를 가져오는 방법에 대해 설명한다.

4장. 파일과 디렉토리 다루기 파일을 생성하거나 삭제하는 등 파일과 디렉토리를 다루는 데 필요한 기본 원리를 소개한다. 또한 임시 파일을 사용하고, 심볼릭 링크를 관리하는 방법도 함께 설명한다.

5장. 파일시스템 다루기 파일 스토어 정보를 알아내거나, 파일 구조를 탐색하는 데 필요한 클래스나 파일시스템 오브젝트를 가져오는 방법을 살펴보고, 특정한 파일이나 디렉토리에 대해 발생하는 이벤트를 모니터링하거나, ZIP 파일 시스템을 다루는 방법 등을 소개한다.

6장. 스트림 IO NIO2에 대해 설명한다. 비동기 IO를 수행하기 위한 새로운 기법과, 랜덤 액세스 IO를 수행하는 방법, 그리고 보안 디렉토리 스트림을 사용하는 방법 등에 대해 자세히 설명한다.

7장. 향상된 GUI 자바 7에서는 GUI와 관련된 여러 가지 기능이 개선됐다. 자바 7부터는 다양한 모양을 가지거나, 투명한 윈도우를 생성할 수 있다. 뿐만 아니라 윈도우에 오버레이 그래픽을 적용하는 데 필요한 JLayer 데코레이터 관련 개선 사항도 자세히 다룬다.

8장. 이벤트 처리 다양한 애플리케이션 이벤트를 다루기 위해 새로 추가된 메소드에 대해 살펴본다. 자바 7부터는 부가적인 마우스 버튼과 휠을 지원하는 기능이 추가됐다. 윈도우의 포커스를 제어하는 기능도 향상되고, 모달 대화창을 흉내내는 데 사용되는 세컨더리 루프에 대해서도 소개한다.

9장. 데이터베이스, 보안, 시스템 관련 향상된 기능 RowSetFactory 클래스와 같이 데이터베이스와 관련해 새로 추가된 기능과 보안을 위해 SSL과 관련해 새로 추가된 기능을 소개한다. 또한 MXBeans와 같이 시스템과 관련된 추가 기능도 함께 설명한다.

10장. 동시성 처리 스레드와 관련해 추가된 fork/join 관련 클래스와 페이저 모델, 개선된 디큐 클래스 등에 대해 소개한다. 또한 랜덤 숫자를 생성하기 위해 새로 추가된 ThreadLocalRandom 클래스도 소개한다.

11장. 여러 가지 개선 사항 달력이나 통화 단위와 관련해 개선된 기능을 예제를 통해 살펴본다. 이와 함께 자바 7에서 개선된 널 레퍼런스를 다루는 기능에 대해서도 알아본다.

저자/역자 소개

저자 서문

자바 7에서는 애플리케이션을 좀 더 쉽게 작성할 수 있는 여러 가지 새로운 기능이 추가됐다. 향상된 예외 처리 기능과 같은 언어적인 측면뿐만 아니라, 스레드를 비롯한 코어 라이브러리에도 다양한 기능이 추가됐다.
이 책에서는 각 기능을 별도의 장으로 구성했다. 이러한 기능을 어떤 상황에서 어떻게 사용하는지 쉽게 파악할 수 있도록, 각 장마다 한 개 이상의 기능을 실제 코드와 함께 처음부터 한 단계씩 작성하는 방식으로 설명한다.
언어의 개선 사항부터 시작하여 파일과 디렉토리 관리 기능을 비롯한 다양한 기능을 별도의 장으로 구분하여 소개한다. 따라서 이 책을 처음부터 차례대로 읽어도 괜찮고, 궁금한 기능에 대해 설명하는 장을 읽어도 무방하다. 하지만, 이 책에서 소개하는 기능들을 간략히 소개하는 첫 번째 장을 읽고 나서 다른 장으로 건너뛰는 것이 좋다. 내용을 설명하는 과정에서 다른 장에서 소개하는 기능이 나올 때는 언제든지 쉽게 찾아볼 수 있도록 관련 페이지를 명시했다.

저자 소개

리차드 리스(Richard M. Reese)

텍사스 주 스티븐빌 소재 탈튼 주립대학교에서 전산학 조교수로 재직 중이며, 항공 및 통신 업체에서 16년 이상 일한 경력을 보유하고 있다. 텍사스 A&M 대학교에서 전산학 박사를 취득한 후, 공군에서 4년간 복무했으며, 취미로 채소를 기르고 수족관을 꾸미고, 애견 조이와 달리기를 즐긴다. 가끔씩 SF 드라마 Firefly를 다시 보면서, 언젠가 후속편이 나오기를 기대한다.

제니퍼 리스(Jennifer L. Reese)

탈튼 주립대학교를 졸업하고, 지방 정부용 소프트웨어를 제작하는 텍사스 주 왁사해치 소재 Local Government Solutions에서 소프트웨어 엔지니어로 일하고 있다. 재학 중에는 CAE(Center for Agri-business Excellence)에서 농작물 수확량과 날씨 데이터를 분석하는 GIS 소프트웨어를 개발하면서 자바를 주로 사용했다. 여가 시간에는 독서와 요리, 여행을 즐기며, 특히 해변이 있는 곳이라면 어디든지 찾아간다.

옮긴이의 말

자바 7에서는 평소 바라던 기능이 대거 추가됐습니다. 특히 try-with-resource 구문처럼 언어 차원에서 추가된 부분은 코드 작성 과정에서 껄끄럽게 느끼던 부분이 사라져 개인적으로 기쁘기도 합니다. 대학교 1학년 때 처음 접한 후, 지금까지도 종종 사용하는 자바 언어가 현재까지도 지속적인 발전을 거듭하고 있어서 다행이기도 하고, 한편으로는 끊임없이 배워야 하는 부담도 있습니다.
언어와 기본 클래스에 대해 어느 정도 익숙한 자바 개발자에게는, 이 책과 같이 주요 기능에 대해 예제 코드 중심으로 간결하게 설명하는 방식이 학습 시간도 절약할 뿐만 아니라, 장황한 설명보다 훨씬 친숙하게 느껴질 것입니다. 좋은 주제와 구성을 갖고 있지만 사소한 오탈자가 종종 발견되는 아쉬움도 있었습니다. 역자로서 최대한 걸러내려고 노력했으며, 혹시라도 편집 과정에서 걸러지지 않은 부분이 있으면, 언제든지 에이콘출판사의 홈페이지를 통해 피드백을 주시면 감사하겠습니다. 아무쪼록 자바 개발자들이 자바 7에서 개선된 기능을 쉽고 빠르게 익히는 데 미약하게나마 도움이 되길 바랍니다.

옮긴이 소개

남기혁

고려대 컴퓨터학과를 졸업하고 동 대학원 정형기법 연구실에서 석사 학위를 받았다. 한국전자통신연구원에서 선임연구원으로 재직 중이며, SDN 관련 기술로 창업을 준비하고 있다. 에이콘출판사에서 출간한 『Early Adopter Curl』(2002), 『GWT 구글 웹 툴킷』(2008)과 『코코아 터치 프로그래밍』(2010)을 번역했다.

목차

목차
  • 1장 자바 언어에 새로 추가된 기능
    • 들어가며
    • switch 문에서 스트링 리터럴 사용하기
    • 리터럴에 언더스코어를 사용하여 코드의 가독성 높이기
    • try-with-resources 구문으로 깔끔하게 예외 처리하는 방법
    • try-with-resources 구문에 사용할 리소스 생성하기
    • 여러 종류의 예외를 한 구문에서 처리하기
    • 자바 7부터 추가된 예외 re-throw 기능
    • 다이아몬드 연산자를 이용한 생성자 타입 추론
    • @SafeVarags 애노테이션 사용법

  • 2장 Path 오브젝트로 파일과 디렉토리의 경로 표현하기
    • 들어가며
    • Path 오브젝트 만들기
    • java.io.File과 java.nio.file.Files의 연동 방법
    • 상대 경로를 절대 경로로 바꾸기
    • 정규화를 통한 경로의 군더더기 제거하기
    • 여러 경로를 하나로 합치기
    • 상대 경로 만들기
    • 경로 타입 변환하기
    • 경로의 동치 여부 확인하기
    • 심볼릭 링크 다루기

  • 3장 파일과 디렉토리 정보 알아내기
    • 들어가며
    • 파일 콘텐트 타입 확인하기
    • getAttribute 메소드로 어트리뷰트를 한 번에 하나씩 가져오기
    • 파일 어트리뷰트에 대한 맵 구하기
    • 파일과 디렉토리 정보 구하기
    • OS에서 지원하는 어트리뷰트 뷰
    • 클래스 인자를 지정하여 supportsFileAttributeView 메소드 호출하기
    • 스트링 인자를 지정하여 supportsFileAttributeView 메소드 호출하기
    • BasicFileAttributeView로 파일의 기본 속성 구하기
    • PosixFileAttributeView로 POSIX 파일 속성 구하기
    • DosFileAttributeView로 FAT 테이블 속성 구하기
    • FileOwnerAttributeView로 파일 소유권 정보 구하기
    • AclFileAttributeView로 파일의 ACL 정보 구하기
    • UserDefinedFileAttributeView로 사용자 정의 파일 속성 다루기

  • 4장 파일과 디렉토리 다루기
    • 들어가며
    • 파일이나 디렉토리 생성하기
    • 파일 복사하기
    • 임시 파일/디렉토리 다루기
    • 파일이나 디렉토리의 시간 관련 속성 설정하기
    • 파일 소유권 다루기
    • ACL 파일 접근권한 다루기
    • POSIX 속성 다루기
    • 파일이나 디렉토리 옮기기
    • 파일이나 디렉토리 삭제하기
    • 심볼릭 링크 다루기

  • 5장 파일시스템 다루기
    • 들어가며
    • FileStore 정보 구하기
    • FileSystem 정보 구하기
    • SimpleFileVisitor 클래스로 파일시스템 탐색하기
    • SimpleFileVisitor 클래스로 디렉토리 삭제하기
    • SimpleFileVisitor 클래스로 디렉토리 복사하기
    • DirectoryStream 인터페이스로 디렉토리에 담긴 항목 다루기
    • 글로빙으로 디렉토리 필터링하기
    • 커스텀 디렉토리 필터 만들기
    • WatchEvents로 파일 이벤트 감시하기
    • ZIP 파일시스템

  • 6장 스트림 IO
    • 들어가며
    • 작은 파일 다루기
    • 버퍼를 사용한 IO로 파일 다루기
    • SeekableByteChannel를 이용한 랜덤 엑세스 IO
    • AsynchronousServerSocketChannel로 비동기 통신하기
    • AsynchronousFileChannel로 파일 쓰기
    • AsynchronousFileChannel로 파일 읽기
    • SecureDirectoryStream 클래스

  • 7장 향상된 GUI
    • 들어가며
    • AWT와 Swing 혼용하기
    • 윈도우 타입 지정하기
    • 윈도우의 투명도 조절하기
    • 다양한 색조로 윈도우의 투명도 표현하기
    • 독특한 형태의 윈도우 만들기
    • 자바 7에서 추가된 새로운 경계선 타입
    • FileDialog 클래스로 여러 개의 파일을 한 번에 선택하기
    • 프린트 대화창 다루기
    • 패스워드 필드에 JLayer 데코레이터 적용하기

  • 8장 이벤트 처리
    • 들어가며
    • 마우스 버튼과 고해상도 마우스 휠 다루기
    • 윈도우의 포커스 제어하기
    • SecondaryLoop으로 모달 다이얼로그 박스 흉내내기
    • 비정상적으로 깨어나는 스레드 다루기
    • 이벤트 핸들러로 애플릿 초기화 상태 다루기

  • 9장 데이터베이스, 보안, 시스템 관련 향상된 기능
    • 들어가며
    • RowSetFactory 클래스 사용법
    • 데이터베이스 관련 개선 사항
    • ExtendedSSLSession 인터페이스
    • MXBeans로 JVM과 시스템 프로세스 로드 모니터링하기
    • OS 프로세스의 입력과 출력 리다이렉션하기
    • HTML 페이지에 JNLP 파일 임베딩하기

  • 10장 동시성 처리
    • 들어가며
    • 자바에서 제공하는 join/fork 프레임워크
    • Phaser 사용법
    • 멀티스레드 환경에서 안전하게 ConcurrentLinkedDeque 클래스를 사용하는 방법
    • LinkedTransferQueue 클래스
    • ThreadLocalRandom 클래스로 멀티스레드 지원하기

  • 11장 여러 가지 개선 사항
    • 들어가며
    • 자바 7에서 주 단위 다루기
    • 자바 7에서 통화 단위 다루기
    • NumericShaper.Range 열거형으로 화면에 숫자 표시하기
    • 자바 7에서 개선된 자바빈 기능
    • 자바 7에서 로케일과 Locale.Builder 클래스 다루기
    • null 레퍼런스

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안