설명
딱 필요한 만큼,
자바 핵심 문법과 개념 이해 중심으로 배우는 새로운 자바 입문서
12년간 강의를 해보니 무엇을 이해하지 못하는지, 무엇을 어려워하는지, 현업 나가서 당장 쓸모 있는 기법과 그렇지 못한 기법이 무엇인지 알게 되었습니다. 프로그래머처럼 생각하고, 프로그래머로 안착할 분께 딱 필요한 만큼 알려드립니다. 초보자도 쉽고 명확하게 이해할 수 있도록 학습 목표를 일목요연하게 제시하고 핵심 내용을 정리해 보여줍니다. 이론도 실습으로 직접 체험하여 체득하게 했습니다. 단계별로 간단한 프로젝트를 구현합니다. 프로그래밍에 입문해 프로그래머로 취업하고 싶은 분들이라면 자바에 도전해보세요.
개발 27년, 강의 12년의 노하우를 담은 자바 입문서가 나타났다
추후 현업에서 자바로 개발하는 데 필요한 기술을 단계별로, 그리고 익히기 쉬운 순서로 예제를 통해 설명합니다. 예제를 직접 손으로 입력해서 실행해보고, 미니 프로젝트도 만들어보며 빠르고 쉽게 자바 프로그래밍을 익힐 수 있도록 구성했습니다. 초보자를 위한 쉬운 책이라는 이유로 어려운 개념을 생략하거나 모호한 용어를 사용해 억지로 외우게 하지 않습니다. 자바를 자바답게 이해하기 위해 필요하다면 어려운 개념도 다룹니다. 그림과 예제를 사용해 최대한 쉽게 설명하고 있습니다.
이 책의 구성
이 책은 설치 없이 자바 프로그래밍과 친숙해지는 〈선수 수업〉(별책 부록)과 본책으로 구성되어 있습니다. 본책은 1~3단계까지 ‘자바 기초 프로그래밍’, 객체지향 프로그래밍’, 응용 프로그래밍’을 차례대로 다룹니다.
_별책 부록 〈선수 수업〉
자바 선수 수업은 무작정 자바 코드를 보고 실행해보면서 프로그램이 어떻게 돌아가는지 눈과 손으로 확인하고 흥미를 유발하는 데 목적을 둡니다. 다른 언어를 익힌 현업 프로그래머라면 선수 수업을 건너뛰고 0장 ‘자바 개발 환경 구축’으로 이동해도 좋습니다. 프로그래밍 입문자라면 하나하나 타이핑해가며 실습하기 바랍니다.
_00장 자바 개발 환경 구축
윈도우에 자바 개발 환경을 구축해봅시다. 프로그래밍 입문자를 배려해 따라 하면 개발 환경이 구축되도록 안내합니다. 예제 코드를 내려받는 방법도 알아보겠습니다.
더 보기<1단계 자바 기초 프로그래밍>
모든 프로그램 언어에서 변수, 상수, 자료형, 표현식, 메서드 표현은 거의 유사합니다. 여기서는 자바를 통해 이런 프로그래밍의 기초를 배우게 됩니다. 여기서 배운 기초는 모든 프로그램 언어에서 거의 그대로 사용할 수 있습니다.
_01장 Hello Java World
프로그래밍 언어가 무엇인지, 자바와 JVM은 어떤 관계인지 알아봅니다. 첫 자바 프로젝트도 만들어보고 이클립스 사용법도 알아봅시다.
_02장 자료형
프로그래밍을 이해하려면 하드웨어 동작 원리를 알아야 할 필요가 있습니다. 하드웨어를 제어하는 코드의 묶음이 프로그래밍이기 때문입니다. 하드웨어의 동작 이해와 함께 자료형을 배워보겠습니다.
_03장 변수, 상수, 자료형의 형변환
선수 수업에서 배운 변수와 상수의 개념을 확장해봅니다. 그리고 자료형의 형변환이 무엇인지 알아봅니다.
_04장 연산자
흔히 연산이라고 하면 수학 시간에 배운 사칙연산을 떠올리겠지만, 프로그래밍에서 사용하는 연산은 그외에도 다양한 종류가 있습니다. 우리가 흔히 생각할 수 있는 산술연산 외에도 대입 연산, 비교 연산, 증감 연산, 논리 연산 등이 있습니다. 자바에서 다루는 다양한 연산을 알아보겠습니다.
05장 콘솔 출력과 입력
우리는 이미 System.out.println( )과 System.out.print( )로 출력을 많이 해보았습니다. 그래서 출력을 간단히 정리하고, 입력을 더 깊이 살펴봅니다. 입력까지 배우고 나면 더 재미있는 프로그램을 만들 수 있습니다.
_06장 제어문
자바에서 다루는 다양한 제어문(if문, switch문, 반복문)을 알아봅니다.
_07장 메서드와 변수의 사용 가능 범위
메서드를 만들고 사용하는 방법과 변수의 사용 가능한 범위를 알아보겠습니다.
_08장 Project 계산기 만들기(선수 수업 업그레이드) ★☆☆☆
선수 수업 맨 마지막 단계에서 계산기를 만들었습니다. 출력된 메뉴에서 사용자가 사칙연산 중 하나를 선택하고, 다시 사용자가 입력한 값으로 계산을 수행하여 결과를 출력하고 다시 메뉴를 출력하는 계산기였습니다. 지금부터 구현할 계산기는 선수 수업에서 만든 계산기와 기능이 같습니다. 하지만 지금까지 배운 모든 내용을 적용해서 더 완성도 높은 프로그램으로 만들어보겠습니다.
<2단계 자바 객체지향 프로그래밍>
자바에서 다루는 객체지향 이론을 알아봅니다. 객체지향 4대 요소인 추상화, 캡슐화, 상속, 다형성을 자바에서는 어떻게 사용하는지 익히면서 클래스 사용 방법도 배웁니다.
_09장 클래스의 기초
클래스의 기본 개념을 알아보고, 클래스를 통해 객체를 생성하고 사용하는 방법을 알아봅니다.
_10장 자바의 메모리 모델
자바에서 사용하는 메모리 모델의 구조를 알아봅니다. 자바에서 사용하는 메모리 모델의 구조를 이해하면 자바 프로그래밍에 큰 도움이 됩니다. 그러나 모든 것을 자세히 알 필요는 없습니다. 우리가 공부한 것과 연관해서 필요한 개념만 조금 이해하면 됩니다.
_11장 스태틱의 이해
예약어 static은 변수 및 메서드, 그리고 지정한 영역에 붙일 수 있습니다. 자바 프로그래밍에서 스태틱 예약어를 붙이면 동작이 어떻게 달라지는지 직접 보면서 이해해 봅니다. 스태틱의 다양한 사용 방법도 알아봅니다.
_12장 클래스의 상속
자바 클래스의 상속을 알아보고, 상속과 관련된 오버라이딩, 추상 클래스, 인터페이스, 다형성을 알아봅니다.
_13장 패키지와 클래스 패스
클래스의 경로를 지정하는 데 사용하는 클래스 패스와 패키지를 알아봅니다.
_14장 String 클래스
자바 String 클래스에서 다루는 다양한 메서드를 알아봅니다.
_15장 배열
자바의 배열을 알아보고, 배열을 다룰 때 사용하는 Array 클래스를 알아봅니다.
_16장 예외 처리
자바에서 다루는 다양한 예외 처리를 알아봅니다.
_17장 자바의 기본 클래스
Object 클래스와 Object 클래스를 상속받아 여러 기본 기능을 제공해주는 다양한 기본 클래스를 알아봅니다.
_18장 열거형, 가변 인수, 어노테이션
자바 프로그래밍을 할 때 큰 개념은 아니지만 프로그래밍을 편하게 해주는 소소한 요소들이 있습니다. 열거형, 가변 인수, 어노테이션 등이 그런 요소들입니다. 이번 장에서 가볍게 알아보겠습니다.
_19장 Project 정렬 알고리즘 만들기 ★★☆☆
버블 정렬과 삽입 정렬 알고리즘을 알아보고 구현하겠습니다.
<3단계 자바 클래스 응용 프로그래밍>
자바 클래스에서 가장 빈번하게 사용한다고 할 수 있는 컬렉션 프레임워크를 통해 자바에서 다루는 자료구조와 사용법을 익히고, 람다식을 통해 자바에서 다루는 함수형 프로그래밍 기법을 배웁니다.
_20장 제네릭
자바에서 다루는 제네릭을 알아봅니다.
_21장 컬렉션 프레임워크
예전에는 자바 기본 문법을 배우고 자료구조를 따로 더 배웠지만 지금의 자바에는 개발자들이 많이 사용하는 자료구조가 컬렉션 프레임워크에 구현되어 있습니다. 자바에서 제공하는 컬렉션 프레임워크를 알아봅니다.
_22장 내부 클래스, 람다식
자바에서 사용하는 내부 클래스와 람다식을 알아봅니다.
_23장 스트림
자바에서 다루는 스트림을 알아봅니다.
_24장 입출력 스트림
자바에서 다루는 입출력 스트림을 알아봅니다.
_25장 스레드
자바에서 다루는 스레드를 알아봅니다.
_26장 Project 주소록 만들기 ★★★☆
지금까지 배운 모든 내용을 활용해서 전화번호를 저장하고 조회하는 주소록을 단계별로 만들어보겠습니다.
목차
00장 자바 개발 환경 구축
[1 단계 자바 기초 프로그래밍]
01장 Hello Java World
_1.1 프로그래밍 언어
_1.2 자바
_1.3 JVM
_1.4 첫 자바 프로젝트 만들기
_학습 마무리
02장 자료형
_2.1 진수 계산법
_2.2 컴퓨터에서 데이터 처리 방식
_2.3 자바 기본 자료형
_학습 마무리
03장 변수, 상수, 자료형의 형변환
_3.1 변수
_3.2 상수
_3.3 자료형의 형변환
_학습 마무리
04장 연산자
_4.1 산술 연산자
_4.2 대입 연산자와 복합 대입 연산자
_4.3 부호 연산자와 증감 연산자
_4.4 비교 연산자(관계 연산자)
_4.5 논리 연산자
_4.6 조건 연산자
_4.7 단항 • 이항 • 삼항 연산자
_4.8 연산자 우선순위
_학습 마무리
05장 콘솔 출력과 입력
_5.1 콘솔 출력
_5.2 콘솔 입력
_학습 마무리
06장 제어문
_6.1 조건문
_6.2 반복문
_학습 마무리
07장 메서드와 변수의 사용 가능 범위
_7.1 메서드 정의하기
_7.2 메서드 종료하기
_7.3 변수의 사용 가능 범위
_학습 마무리
08장 Project 계산기 만들기(선수 수업 업그레이드)
_8.1 메뉴 만들기
_8.2 메뉴 출력 및 사용자 입력
_8.3 연산 기능 만들기
_8.4 선택 메뉴 실행하기
_8.5 유효성 검사
_학습 마무리
[2단계 자바 객체지향 프로그래밍]
09장 클래스의 기초
_9.1 객체
_9.2 클래스
_9.3 객체와 클래스
_9.4 오버로딩
_9.5 생성자
_9.6 접근 제한자
_학습 마무리
10장 자바의 메모리 모델
_10.1 자바의 메모리 모델
_10.2 디버깅하며 배우는 스택 영역 원리
_10.3 디버깅하며 배우는 힙 영역 원리
_10.4 디버깅하며 배우는 힙 영역 객체 참조
_학습 마무리
11장 스태틱의 이해
_11.1 스태틱
_11.2 전역 변수로 사용
_11.3 main()보다 먼저 실행
_11.4 유틸 메서드로 사용
_학습 마무리
12장 클래스의 상속
_12.1 상속
_12.2 오버라이딩
_12.3 상속이 제한되는 final
_12.4 추상 클래스
_12.5 인터페이스
_12.6 다형성
_12.7 instanceof 연산자
_학습 마무리
13장 패키지와 클래스 패스
_13.1 클래스 패스
_13.2 패키지
_13.3 패키지로 문제 해결
_13.4 임포트
_13.5 자바에서 기본 제공하는 패키지와 클래스
_학습 마무리
14장 String 클래스
_14.1 String을 선언하는 두 가지 방법
_14.2 문자열형 변수의 참조 비교
_14.3 문자열형 변수의 내용 비교
_14.4 String 클래스의 메서드
_14.6 문자열 결합
_14.7 문자열 분할
_학습 마무리
15장 배열
_15.1 1차원 배열
_15.2 for ~ each문
_15.3 다차원 배열
_15.4 배열 관련 유틸리티 메서드
_학습 마무리
16장 예외 처리
_16.1 예외와 에러
_16.2 예외 종류
_16.3 예외 처리하기
_16.4 예외 처리 미루기(던지기)
_학습 마무리
17장 자바의 기본 클래스
_17.1 java.lang 클래스
_17.2 Object 클래스
_17.3 래퍼 클래스
_17.4 Math 클래스
_17.5 Random 클래스
_17.6 Arrays 클래스
_학습 마무리
18장 열거형, 가변 인수, 어노테이션
_18.1 열거형
_18.2 가변 인수
_18.3 어노테이션
_학습 마무리
19장 Project 정렬 알고리즘 만들기
_19.1 버블 정렬
_19.2 퀴즈 : 삽입 정렬
_학습 마무리
[3단계 자바 클래스 응용 프로그래밍]
20장 제네릭
_20.1 제네릭의 필요성
_20.2 제네릭 기반의 클래스 정의하기
_20.3 제네릭 기반의 코드로 개선한 결과
_20.4 매개변수가 여러 개일 때 제네릭 클래스의 정의
_20.5 제네릭 클래스의 매개변수 타입 제한하기
_20.6 제네릭 메서드의 정의
_학습 마무리
21장 컬렉션 프레임워크
_21.1 자료구조
_21.2 컬렉션 프레임워크의 구조
_21.3 List 인터페이스를 구현하는 컬렉션 클래스들
_21.4 Set 인터페이스를 구현하는 컬렉션 클래스들
_21.5 Queue 인터페이스를 구현하는 컬렉션 클래스들
_21.6 Map<K, V> 인터페이스를 구현하는 컬렉션 클래스들
_21.7 컬렉션 기반 알고리즘
_학습 마무리
22장 내부 클래스, 람다식
_22.1 내부 클래스
_22.2 멤버 내부 클래스
_22.3 지역 내부 클래스
_22.4 익명 내부 클래스
_22.5 람다식
_22.6 함수형 인터페이스
_학습 마무리
23장 스트림
_23.1 스트림
_23.2 중간 연산, 최종 연산
_23.3 파이프라인 구성
_23.4 컬렉션 객체 vs 스트림
_23.5 여러 가지 연산들
_학습 마무리
24장 입출력 스트림
_24.1 자바의 입출력 스트림
_24.2 입출력 스트림의 구분
_24.3 파일 대상 입출력 스트림 생성
_24.4 보조 스트림
_24.5 문자 스트림
_학습 마무리
25장 스레드
_25.1 스레드의 이해
_25.2 스레드 생성과 실행
_25.3 스레드 동기화
_25.4 스레드 풀
_25.5 Callable & Future
_25.6 ReentrantLock 클래스 : 명시적 동기화
_25.7 컬렉션 객체 동기화
_학습 마무리
26장 Project 주소록 만들기
_26.1 프로젝트 구상하기
_26.2 PhoneInfo 클래스 만들기
_26.3 메인 메뉴 구성하기
_26.4 연락처 입력
_26.5 연락처 조회
_26.6 연락처 삭제
_26.7 프로그램 종료 시 연락처 저장
_26.8 프로그램 시작 시 연락처 로드
_학습 마무리
이재환
27년차 개발자로 최근 12여 년간 여러 교육 기관에서 자바와 모바일 앱 개발, 빅데이터 강의를 겸하고 있습니다. 인프런에서 〈예제로 배우는 스프링 부트 입문〉, 〈디자인 패턴 with JAVA(GoF)〉, 〈자바 : 클래스의 이해와 객체지향 프로그래밍〉 등의 온라인 강의도 진행합니다. 저서로는 《예제로 배우는 스프링 부트 입문》(비제이퍼블릭, 2020), 《핵심강좌! 유니티》(유페이퍼, 2018), 《핵심강좌! Cocos2d-X》(유페이퍼, 2017)가 있습니다.
CONTENT
관련 콘텐츠들

[JSP] 내장 객체(Implicit Object)란?
내장 객체를 사용하지 않는 JSP 프로그래밍은 상상할 수 없습니다. 웹 프로그래밍의 근간이 되는 요청과 응답부터 출력, 세션, 페이지와 애플리케이션 등 없어서는 안 될 개념들을 내장 객체로 제공하므로 수시로 광범위하게 활용됩니다.
Read More
[Spring] 스프링 시큐리티란?
스프링 기반의 애플리케이션의 보안(인증, 인가)을 담당하는 스프링 하위 프레임워크인 스프링 시큐리티가 무엇인지 정리했습니다.
Read More
[촬영 바이블] 구도에 사용되는 벡터의 종류
영상을 디스플레이 장치로 재현되는 것을 시청할 때 통일성·조화·대비·비례·대칭·균형·평형·다양성·속도감·연속성 등과 같은 다양한 벡터(에너지)들에 의해 구도를 인식하고 심리적으로도 영향을 받는다. 다양한 벡터들의 각각 특성에 대해 구체적으로 이해해보자.
Read MoreQ&A
묻고 답해요beta
책을 읽다 이해가 되지 않거나 막히면 이곳에 질문을 남겨주세요. 저자님이 직접 답해드립니다.
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
공지사항 |
질문을 올려주세요 🙂
god
|
2021.08.25
|
추천 0
|
조회 5174
|
god | 2021.08.25 | 0 | 5174 |
1 |
160페이지 유효성검사 (1)
수능독해
|
2022.04.14
|
추천 1
|
조회 2614
|
수능독해 | 2022.04.14 | 1 | 2614 |
SUBSCRIPTION
책 이야기를 들려드립니다.
『이재환의 자바 프로그래밍 입문』이 만들어지는 집필, 편집, 베타리딩 등의 출간 소식뿐 아니라,
관련 주제의 책 소식, 저자와의 만남, 강의, 오탈자 등 책 관련 소식을 전해드립니다.
Reviews
There are no reviews yet.