본문내용 바로가기
MD의선택 무료배송 사은품 소득공제

손안의 자바 초보자를 위한 자바 프로그래밍의 핵심 + 알파

김지훈 , 이현우 지음 | 에이콘출판 | 2018년 07월 17일 출간
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 : 카드/포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    09월 21일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내
장바구니 담기 바로구매

책 그리고 꽃 서비스
책 그리고 꽃 | 책과 꽃을 함께 선물하세요 자세히보기

닫기

바로드림 주문 선물하기 보관함 담기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 도서 판매량으로 본 프로그래밍 언어 순위를 살펴보세요!
    2018.08.14 ~ 2018.09.30
상품상세정보
ISBN 9791161751832(1161751831)
쪽수 660쪽
크기 190 * 235 * 37 mm /1210g 판형알림

책소개

이 책이 속한 분야

정보시스템 감리를 통해 70여 개 이상의 프로젝트 소스 코드를 검사했다. 이 소스코드 검사를 통해 실제 프로젝트에서 사용하는 문법이 무엇이며, 개발자들이 잘 실수하는 것이 무엇인지 알게 됐다.
본 책은 이러한 경험을 바탕으로 작성한 책이다. 초보 개발자들에게 실제 프로젝트에서 사용하는 핵심 문법 위주로 자바를 소개하며, 최신 버전의 자바의 기능과 관련해 앞으로 사용될 것 같다고 판단되는 장치들을 포함시켰다. 많은 자바 입문자가 이 책을 읽고 효율적인 길을 걸을 수 있기를 바란다.

★ 이 책에서 다루는 내용 ★

- 초보자를 위한 자바 문법 핵심 + 알파
- 실제 프로젝트에서 사용하는 문법 위주의 자바 프로그래밍
- 좋은 프로그램을 위한 기본적인 가이드
- 개발자들이 실수하기 쉬운 개념
- 정부가 주관하는 수십 개의 프로젝트에서 사용하지 않는 문법 제외

저자소개

저자 : 김지훈

저자 김지훈
동국대학교 컴퓨터공학과를 나왔으며, 홍익대학교 대학원 컴퓨터공학과에서 시스템 프로그래밍을 전공해 석사 학위를 받았다. LG CNS에서 SW 아키텍트를 수행했으며, KT ds에서 연구원을 지냈고 현재는 정보기술감리원에서 감리사로 근무 중이다.
안드로이드, HTML5, 빅데이터, 보안 분야에서 저술과 번역 작업을 수행했으며, 정보시스템 감리에서 주로 수행하는 분야는 시스템 구조 및 보안 분야이다.

저자 : 이현우

저자 이현우
대한민국 공군 장교로 방공전산서버 운영을 하면서 IT 관련 경력을 시작했다. 이후 LG CNS에서 차세대 응용개발 프로그램을 수행했으며, 모바일 개발에 관심을 가지고 KT ds 연구소의 모바일 플랫폼 개발을 수행했다.
이후 정보시스템감리사 자격증을 취득한 후 한국 공공기관의 정보시스템 감리업무를 수행하고 있으며, IBK기업은행, 삼성생명, 산업은행, 한국전력 등의 많은 공공기관의 감리 업무를 수행했다. IT 강의를 하는 것을 좋아하며 시큐어코딩 및 데이터베이스, 자바프로그램에 대한 강의를 한국전력 및 한국소프트웨어 기술진흥협회(KOSTA), 한국ICT융합협동조합 등에서 수행했다. 최근 화제가 되고 있는 워라벨을 중시하며, 매번 어제보다 나은 오늘이 되기 위해서 노력하지만 매번 부족함을 느끼고 있는 개발자이다.

작가의 말

필자가 자바를 처음 접한 시기는 벤처 붐이 한창 불던 2000년 초반이었다. KDN을 그만두고 벤처에서 일하고 있었는데, Brew라는 모바일 플랫폼에서 C언어로 메모리 할당, 해제를 하면서 한 땀 한 땀 프로그램을 작성하고 있었다. 그런데 그때 후배가 자기가 만들었다며 핸드폰에서 돌아가는 자바 프로그램을 보여줬다. 후배에게 메모리 관리는 어떻게 했는지 물어봤다. 그런데 그 후배는 눈을 깜빡이며 “메모리 관리? 그게 뭐예요?”하는 것이 아닌가. 그렇다. 자바는 메모리 관리가 필요 없었다.
처음 자바를 접했을 때 받은 인상은 한문만 사용하던 양반이 한글을 접했을 때의 느낌과 비슷했다. 그 당시에는 C는 전문가들이 사용하는 언어, 자바는 IT 노동자(?)들이 사용하는 언어 정도로 치부했다. 그러나 세월이 흘러 이제는 자바가 대세를 차지하고 있다. 변화가 느리다는 금융권에서 조차도 이제는 자바로 계정 시스템을 만드는 것이 흔한 일이 됐다. 필자 역시 대부분의 프로젝트를 자바로 수행하고 있다.
직장생활을 하며 자바를 이용해 대부분의 프로그램을 작성해왔지만, 책을 쓰는 것은 쉽지 않은 일이었다. 실무 경험이 많기는 하지만 그걸 전달하는 것은 어려운 작업이었다. 왜 이런 말도 있지 않은가. “그냥 내가 짜고 말지.” 하지만 작업을 끝내고 나니 단순히 지식을 글로 정리한 것뿐 아니라 스스로 쓰면서 배운 부분이 있었다는 생각이 든다.
처음 자바를 접한 이후 자바의 버전도 많이 높아졌다. 지금 자바를 보고 있자니, 어느 날 부쩍 다 커버린 자녀를 보는 느낌이랄까? 스레드 프로그램을 작성할 때 블로킹 큐까지 한 자 한 자 코딩을 하던 시절이 있었는데 이제는 자바가 제공하는 기본 기능을 사용하면 단 몇 줄로 끝낼 수 있게 됐다. 하긴 맨 처음 안드로이드 책을 쓸 때는 놀아주지 않는다고 칭얼대던 아이가 이제는 마감을 지키라고 닦달하는 청소년으로 컸으니 자바도 그럴 만하다.
이 책의 목표는 가능한 적은 분량 안에 실제 프로젝트에서 사용되고 있는 자바 문법과 API 그리고 프로그래밍 가이드를 담는 것이다. 자바 책이 날로 두꺼워지고 있는 요즘 이런 생각을 한 이유는 필자의 직업 때문이다. 필자는 LG CNS와 KT ds에서 소프트웨어 아키텍트 역할을 수행한 후, 현재는 TI 감리 법인에 근무하고 있다.
정보시스템 감리 직업의 특성상 1년이면 10~20여 개의 프로젝트를 점검한다. 필자는 최근 4년 동안 약 70여 개가 넘는 프로젝트를 감리했으며, 점검한 시스템의 소스는 약 100여 개에 달한다. 그러다 보니 자바 프로그래밍 요소 중 실제로 사용되고 있는 것들이 무엇인지 자연스럽게 경험하게 됐다. 그 경험을 바탕으로 자바 프로그래밍 중 실무에 사용되는 요소들만 책에 담을 수 있었다.
이 책은 자바 8까지의 내용을 주로 다루며, 그 이후에 버전에 대해서는 많이 다루지 않는다. 자바 입문자 대상으로는 불필요하다고 판단했기 때문이다. 그러나 자바 9를 일부 사용하기 때문에 개발 환경은 자바 9를 사용한다.

저자 김 지 훈 드림

직장생활을 하면서 초보자가 쉽게 접할 수 있는 실무경험이 담긴 자바 책을 집필하겠다는 욕심이 있었지만 책을 집필하기가 쉽지 않았던 것 같다. 이 책이 처음 개발을 하는 초보자들을 위해 집필됐음을 알아줬으면 좋겠다. 고민하고 집필한 내용들이 독자들에게 전달돼 실무 현장에서 도움이 될 것이라고 생각한다.
자바는 매년 변화해왔고 느리지만 성장해왔다. 필자가 자바를 처음 접했을 때와 이 책을 읽는 독자들이 접하는 현재의 시점과는 많은 차이가 있다. 예전에는 무엇인가를 좀 더 고민하고 코드를 길게 작성하던 일련의 일들이 이젠 간단한 한 줄 정도의 코딩으로도 마무리가 된다.
예전보다 쉬워졌다고 하지만 그래도 여전히 시작하는 이들에게는 어려움이 있을 것이다. 필자도 시작할 때는 벽에 부딪힌 듯 막막했고, 도와주는 사람도 없이 개발 서적을 가지고 학습을 했다. 그때 필자와 같은 사람들이 이 책의 독자층이라고 생각하고 집필했다.

저자 이 현 우 드림

목차

지은이 소개
지은이의 말
리뷰어의 말
들어가며

1부. 자바 기본
1장. 자바를 시작하며
__자바란?
__개발 환경 구축하기
__자바에서의 명명 규칙

2장. 변수와 상수
__변수의 이해와 활용
__변수의 타입
__논리형 - boolean
__문자형 - char
__정수형 - byte, short, int, long
__실수형 - float, double
__형변환
__상수

3장. 연산자
__연산자 종류와 우선순위
__단항 연산자
____증감 연산자 ++, --
____부호 연산자 +, -
____비트 전환 연산자 ~
____논리 부정 연산자 !
__산술 연산자
____사칙 연산자 +, -, ?, /
____나머지 연산자 %
____시프트 연산자 <<, >>, >>>
__비교 연산자
____대소비교 연산자 <, >, <=, >=
____등가비교 연산자 ==, !=
__논리 연산자
____논리 연산자 &&, ||
____비트 연산자 &, |, ^

4장. 실행흐름의 컨트롤
__조건문 if문, switch문
____if문
____switch문
__반복문 for, while, do~while
____for문
____while문
____do~while문
__break와 continue문
____break문
____continue문
__변수의 범위

5장. 배열
__배열(array)의 필요성
__배열의 선언과 생성 그리고 초기화
__배열의 사용
__배열의 복사
__다차원 배열
__가변 배열
__배열을 벗어난 인덱스
__System.arraycopy와 매뉴얼 복사 중 누가 빠른가?
__Arrays - 배열을 위한 유틸 클래스

6장. 객체 지향 프로그래밍의 개념
__객체 지향 프로그래밍이란?
__객체
__객체 간 상호작용
__캡슐화

7장. 클래스, 변수,메소드
__객체 클래스, 객체 참조자
__자바 10에서의 지역 변수 타입 추론
__클래스 선언
__클래스 사용
__클래스 구성 요소
__필드
__필드 선언
__필드 사용
__메소드
____Void
__메소드 오버로딩
__생성자

8장. 패키지와 임포트
__패키지
__임포트(import)

9장. 상속과 오버라이딩 그리고 다형성
__상속의 개념
__상속
__오버라이딩
__다형성
__상속과 생성자
__상속관계에서의 메소드 호출 순서

10장. 제어자
__접근 제어자
____Private
____(default)
____Protected
____Public
__프로그래밍 가이드 - 접근 제어자의 엄격한 적용
__프로그래밍 가이드 - 멤버변수에 대한 직접 접근을 막아라
__static 제어자
__정적 메소드의 재정의 불가
__final 제어자

11장. 추상 클래스와 인터페이스
__추상 클래스
__인터페이스
__인터페이스를 사용한 다중상속
__자바 8 이후의 인터페이스 변화
____인터페이스 디폴트(default) 메소드
____인터페이스 정적(static) 메소드
____인터페이스 private 메소드와 인터페이스 private 정적 메소드
__자바 8 이후의 인터페이스를 사용한 다중상속
__자바8 이후의 ::를 사용한 메소드 참조 그리고 함수형 인터페이스
____함수형 인터페이스
____빌트인 함수형 인터페이스

12장. 중첩 클래스
__중첩 클래스 사용 이유
__중첩 클래스 분류
__내부 클래스
__정적 내부 클래스
__메소드 로컬 내부 클래스
__익명 내부 클래스
__유사 중첩 클래스

13장. 오류 처리
__오류 처리 소개
__오류 클래스 구조 및 기본 동작 방식
__예외 캐치 처리 순서
__비즈니스 예외
__실 프로젝트에서 많이 사용되는 예외 처리 방안
__finally 문장
__try-with-resources 문장
__인터페이스나 추상 클래스에서의 예외 쓰로우 선언

14장. 자주 사용하는 자바 기본 API
__Object 클래스
____toString ()
____equals ()
____clone ()
____프로그래밍 가이드 - Object의 toString()을 재정의하라
__String 클래스
__StringBuffer 클래스
__Math 클래스
__래퍼 클래스
__Random 클래스
__java.util.regex 패키지
__BigInteger
__BigDecimal
__Calendar와 Date 그리고 DateFormat
__자바 8부터 지원하는 새로운 날짜 지원 API
____날짜 및 시간 알아내기
____날짜 및 시간 객체에서 정보 조회하기
____날짜와 시간 더하거나 빼기
__날짜와 시간 변경하기
__특정 날짜 계산하기
____날짜 및 시간 비교
____날짜 및 시간 차이 계산
____Period를 사용한 날짜 기반 차이
____Duration을 사용한 초, 나노초 기반 차이
____날짜 포맷팅
__ZonedDateTime으로 세계시 다루기

15장. 제네릭
__들어가면서
__제네릭의 필요성
__제네릭을 이용한 첫번째 클래스 작성하기
__제네릭 동작 방식
__제네릭 기본 문법
____제네릭 클래스의 new 불가
____제네릭 타입 구체화 시 배열 불가
____구체화 타입의 자식 타입 사용 가능
____정적 요소에 제네릭 타입 사용 불가
____제네릭 타입에 제약 조건 두기
__제네릭 인터페이스
__제네릭 메소드
__제네릭 와일드카드
__좀 더 복잡한 제네릭 메소드와 와일드카드의 예
____파라미터에는 와일드카드가 없는 경우
____파라미터에 와일드카드가 한개 있는 경우
____파라미터에 와일드카드가 두개 있는 경우
__다이아몬드 연산자

16장. 컬렉션 프레임워크
__HashSet
__ArrayList
__Vector
__HashMap과 Hashtable
__Iterator
__리스트 대 배열
__Comparator를 사용한 목록 정렬하기
__목록에 요소 추가 및 삭제하기
____foreach문에서의 추가 및 삭제 시 예외발생
____Iterator를 사용한 요소 삭제
____인덱스를 사용한 for문에서의 삭제 시 정합성 문제
____인덱스를 사용한 요소 삭제 및 추가

17장. 열거형(Enum 타입)
__들어가면서
__처음 만나는 열거형
__열거형에 데이터 연결하기
__여러 형태의 열거형 정의 방법
__열거형에 관한 유용한 메소드

18장. 어노테이션
__들어가면서
__어노테이션 맛보기
__JDK가 제공하는 표준 어노테이션
__커스텀 어노테이션 작성을 위한 기초 지식
____@Target
____@Retention
____@Documented
____@Inherited
____@Repeatable
__커스텀 어노테이션 작성하기
__프로그래밍 가이드 - 네이밍 규칙보다는 어노테이션을 사용해 식별하라

19장. 람다식
__들어가면서
__람다식 개념
__람다식 활용 예
__함수형 인터페이스
____람다 캡처링
____람다식을 조합하기 위한 빌트인 함수형 인터페이스의 장치

20장. 자바 8의 스트림
__들어가면서
____스트림을 왜 사용하는가?
__스트림 동작 방식
____Stream의 인스턴스 메소드 filter()
____Stream의 인스턴스 메소드 sorted()
____Stream의 인스턴스 메소드 map()
____Stream의 인스턴스 메소드 collect()
__스트림 예제 분석하기
__스트림 좀더 알아보기
__다양한 스트림 메소드
____Stream의 Reduce() 메소드
____Stream의 mapToInt(), mapToLong(), mapToDouble() 메소드
____필터 기능을 제공하는 메소드 - filter(), distinct(), limit(), skip()
____중복 요소를 제거하는 메소드 - distinct()
____최대 요소의 개수를 제한하는 메소드 - limit()
____특정 개수를 건너띄는 메소드 - skip()
____Finding과 Matching 메소드
____복합객체의 스트림을 세부 객체의 스트림으로 분해하는 flatMap() 메소드
____Collectors.groupingBy() 메소드
____foreach 메소드
____병렬처리를 위한 parallelStream

21장. 스레드
__들어가면서
__스레드란?
__동시성와 병렬성
__첫 번째 스레드 프로그램
__다양한 스레드 생성 방법
__스레드 세이프
__동기화 메소드 및 동기화 블록
__멀티스레드 프로그래밍의 일반적인 패턴 - 스레드 풀
__서버(Was)의 스레드 프로그래밍 모델
__스레드 로컬
__결과 값이 있는 동시 수행
__Fork/Join 프레임워크의 필요성
__ForkJoin을 사용한 동시 처리

22장. I/O 스트림 및 파일
__들어가면서
__I/O 스트림 개념
__다양한 I/O 스트림
__FileInputStream
__FileOutputStream
__ByteArrayInputStream /ByteArrayOutputStream
__버퍼링 개념
__BufferedInputStream/BufferedOutputStream
__파일 다루기
____File 생성자
____파일 생성하기
____디렉터리 생성하기
____마지막으로 수정된 날짜 구하기
____파일/디렉터리 존재 여부 확인
____이름 변경하기
____파일 사이즈 구하기
____마지막 수정 날짜 변경하기
____파일 삭제하기
____I/O 스트림 등에서 파일이름 문자열 대신 File 사용하기
____기존 파일에 스트링 덧붙이기

23장. 네트워크 프로그래밍
__들어가면서
__네트워크 환경 이해
____방화벽
____라우터
____스위치
____MAC
__도메인
__TCP/IP 4 계층
__소켓 서버 기본 구조 이해하기
__소켓 클라이언트 프로그램 기본 구조 이해하기
__개선된 소켓 서버 프로그램
__UDP 소개 및 예제

24장. Java NIO
__들어가면서
__NIO 이유
__채널과 버퍼 그리고 셀렉터 개념 알아보기
__버퍼 좀더 알아보기
____버퍼 생성
____버퍼 위치 속성
__채널과 버퍼 사용 패턴
__NIO 소켓 서버 프로그램
__IO vs NIO 선택

2부. 자바 확장
1장. 생성자 관련 프로그래밍 가이드
__들어가면서
__프로그래밍 가이드 - 생성자 대신 정적 팩토리 메소드 사용을 검토하라
__프로그래밍 가이드 - 생성자 대신 빌더 사용을 검토하라
__프로그래밍 가이드 - 유틸리티 클래스 생성자를 private로 하라

2장. 가비지 컬렉션 관련 가이드
__들어가면서
__프로그래밍 가이드 - 쓸모없는 객체참조를 제거하라
__프로그래밍 가이드 - 종결자를 중요 작업에 사용하지 않아야 한다

3장. 객체 복사하기
__들어가면서
__클론을 이용한 복사
____복사 생성자나 복사 정적 팩토리 메소드 사용한 복사방법을 고려하라

4장. 클래스 설계 가이드
__들어가면서
__프로그래밍 가이드 - 가능한 불변 클래스로 설계하라
__프로그래밍 가이드 - 상속보다는 컴포지션을 사용하라

5장. 그 밖의 기타 사항
__클래스패스를 고려한 클래스 실행
__java로 클래스 실행 시 인수 전달하기
__라이브러리란?
__Maven 환경 소개

맺으며
찾아보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기+

이 분야의 신간

더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품