김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
김영한
₩77,000
30%
₩53,900
초급 / Java, 함수형 프로그래밍, Lambda, optional
5.0
(8)
최신 자바에 꼭 필요한 람다, 스트림, 자바를 활용한 함수형 프로그래밍 기술을 기초부터 실무 레벨까지 깊이있게 학습합니다.
초급
Java, 함수형 프로그래밍, Lambda
실무에 필요한 다양한 자바 중급 기능
Object, 불변 객체, String, 래퍼, 열거형
날짜와 시간, 중첩 클래스, 예외 처리
전 우아한형제들 기술이사, 누적 수강생 40만 명 돌파
김영한이 자바 강의를 만든 이유
•••
“진짜 실무에 필요한 제대로 된 개발자를 만드는, 제대로 된 자바 강의를 만들고 싶었습니다.”
Object 클래스
불변 객체
String 클래스
래퍼, Class 클래스
열거형 : ENUM
날짜와 시간
중첩 클래스, 내부 클래스
예외 처리
여러분, 기본기가 정말 중요합니다. 그런데 기본기가 뭘까요? 단순히 자바의 문법과 기능을 잘 아는 걸까요?
실무에서 많은 주니어 개발자 분들 가운데 잘 성장하지 못하는 분들을 보면, 대부분 자바 문법과 기능은 알지만 이 기능이 왜 필요한지 본질적인 이해를 못하는 경우가 많았습니다.
반대로, 잘 성장하는 주니어 개발자들을 보면 자바의 문법과 기능을 아는 수준을 넘어 이 기술이 왜 필요한지 본질적인 이해를 하고 있습니다. 그런 이해를 바탕으로 기능을 잘 활용하고 여러 가지 시도를 해보면서 빠르게 성장하는 모습을 보았습니다. 이러한 차이는 어디서 오는 걸까요?
지금까지 나온 많은 책과 강의를 보면 자바가 제공하는 기술들이 왜 필요한지 본질적인 이유를 설명하기보다는 단순히 자바의 문법과 기능 위주로 가르치는 경우가 많았기 때문입니다.
이 강의는 단순히 문법 위주의 강의가 아니라, 예제 코드를 통해 이 기능이 왜 필요한지 단계적으로 이해시켜 드립니다.
그리고 여러분이 배운 내용을 실무에서 잘 활용할 수 있게 실무에서 주로 사용하는 방식도 함께 알려드립니다.
실무에 꼭 필요한 자바 기술을 깊이있게 제대로 가르쳐드리겠습니다.
이 강의는 김영한의 실전 자바 로드맵의 세 번째 강의로, 자바 기본 문법을 학습한 분들을 대상으로 합니다.
>> 목적에 맞게 효과적으로 학습할 수 있도록 자바 로드맵 가이드를 소개합니다.
본질적 이해의 중요성
자바의 문법과 기능을 단순히 알기만 하는 것이 아니라, 그 기능이 왜 필요하고 어떻게 실무에 적용할 수 있는지에 대해 깊이 있게 탐구합니다.
실무적 접근 방식
단순한 이론 전달이 아닌, 예제 코드를 통해 자바 기술의 필요성을 단계적으로 이해시킵니다. 또한 다양한 예제를 통해 각 기술이 실무에서 어떻게 활용되는지 이해할 수 있습니다.
이 강의는 단순한 문법 전달을 넘어, 자바(Java) 기술이 실무에서 왜 중요한지에 대한 본질적인 이해를 목표로 합니다. 여러분이 자바 기본기를 튼튼히 다지고, 이를 바탕으로 실무에서 좋은 개발자로 잘 성장할 수 있도록 돕겠습니다.
제네릭(Generic)과 컬렉션(Collection)을 깊이있게 다룹니다.
특히 컬렉션의 경우 컬렉션을 직접 구현하면서 원리를 이해합니다. 그래서 각각의 자료구조가 어떤 경우에 성능이 좋고, 어떤 경우에는 성능이 나쁜지 근본적인 이유들을 이해하고 활용할 수 있게 됩니다.
제네릭 및 컬렉션 프레임워크를 배우기에 앞서 실무에 필요한 여러 자바 중급 기능을 학습합니다.
실전 예제 코드를 통해 각각의 기능이 왜 필요한지에 대해 본질적인 이해를 할 수 있습니다.
Object 클래스는 모든 클래스의 최상위 부모입니다.
이 강의에서는 Object 클래스가 필요한 이유와 Object 클래스가 제공하는 기능들을 알아봅니다. 또한 equals()를 통해 자바의 동일성과 동등성 개념도 함께 학습합니다.
한번 생성하면 그 이후로 변하지 않는 객체를 불변 객체라 합니다.
이후에 설명할 String, 래퍼, 날짜와 시간을 포함해서 자바가 제공하는 많은 객체들은 불변 객체로 제공됩니다. 여기서는 불변 객체가 왜 필요한지, 그리고 어떻게 불변 객체를 만드는지 알아봅니다.
String 클래스는 자바에서 문자열을 다룰 때 사용되는 클래스입니다. 여기서는 String 객체의 기본 기능 뿐만 아니라, StringBuilder와 String의 기능과 성능 차이도 알아봅니다. 또한 자바가 String 클래스를 어떻게 최적화하는지 깊이있게 알아봅니다.
자바 기본형의 한계를 알아보고 그 한계를 극복하기 위한 래퍼 클래스를 학습합니다. 래퍼 클래스의 오토 박싱, 주요 메서드도 학습합니다.
추가로 클래스의 정보를 나타내는 Class 클래스, 시스템의 정보를 제공하는 System 클래스, 자주 사용하는 Math, Random 같은 클래스도 함께 알아봅니다.
열거형은 높은 타입 안전성을 제공하는 훌륭한 기능입니다.
여기서는 단순히 열거형의 문법을 배우는 것이 아니라 본질적으로 열거형이 왜 필요한지 이야기합니다. 그리고 열거형이 없던 시절 직접 구현했던 타입 안전 열거형 패턴도 구현해봅니다. 또한 다양한 예제 코드를 통해 열거형을 실무에서 어떻게 잘 활용할 수 있는지 알아봅니다.
날짜와 시간을 계산하는 일은 겉으로는 단순해 보이지만 매우 어렵습니다. 그래서 자바가 제공하는 라이브러리를 사용해야 합니다.
자바 날짜와 시간 라이브러리의 역사부터 시작해 어떤 상황에 어떤 날짜와 시간 클래스를 사용해야 하는지 다양한 예제를 통해 정리해 드립니다.
클래스 내부에 클래스를 두는 것을 중첩 클래스 또는 내부 클래스라 합니다. 여기서는 모든 중첩 클래스를 완전히 마스터하는 것을 목표로 합니다.
정적 중첩 클래스, 내부 클래스, 지역 클래스, 익명 클래스까지 모든 중첩 클래스를 설명합니다. 단순히 문법 위주로 설명하는 것이 아니라 어떻게 활용되는지 코드와 예제로 설명합니다. 특히 어려운 개념인 지역 변수 캡처에 대해서도 그림으로 쉽게 풀어서 설명합니다.
자바에서 예외 처리 문법은 단순하지만 예외 처리가 왜 필요하고 또, 실무에서 어떻게 활용해야 할지 제대로 이해하는 건 어렵습니다.
여기서는 먼저 예외 처리가 없던 시절로 돌아갑니다. 그리고 예제 코드를 점진적으로 개선해가면서 본질적으로 예외 처리가 왜 필요한지 그 이유를 하나씩 찾아갑니다.
마지막으로 실무에서 어떤 방식으로 예외를 처리하는 게 좋은지 실무 베스트 프랙티스에 대해서도 알려드립니다.
“어떤 걸 더 가르쳐야 하는지보다도, 반드시 알아야 할 내용이 무엇인지를 더욱 깊이 고민했습니다.”
이번 ‘김영한의 실전 자바 Java 로드맵’ 에서 저의 목표는 진짜 실무에 필요한 기본기가 탄탄하게 갖춰진 실력 있는 개발자를 만드는 것입니다. ‘왜 이런 기능이 필요하지?’ 하는 본질적인 질문을 던질 수 있는, 그럼으로써 응용하며 성장해 나갈 수 있는 자바 개발자로 발돋움할 수 있도록 도와드리겠습니다.
학습 대상은
누구일까요?
실무에 필요한 자바를 더 깊이있게 이해하고 싶은 개발자
자바 공부를 했지만 기본기를 제대로 다지고 싶은 분
개발자 취업 준비생
선수 지식,
필요할까요?
김영한의 실전 자바 - 기본편
493,964
명
수강생
31,013
개
수강평
8,749
개
답변
5.0
점
강의 평점
22
개
강의
교육자
전: 우아한형제들 기술이사, 카카오, SK플래닛
진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.
EO 인터뷰 영상
개발바닥 - 시골 청년 개발왕 되다
전체
103개 ∙ (19시간 20분)
해당 강의에서 제공:
프로젝트 환경 구성
06:10
java.lang 패키지 소개
03:44
Object 클래스
12:18
Object 다형성
11:42
Object 배열
07:17
toString()
19:56
Object와 OCP
13:09
equals() - 2. 구현
13:44
문제와 풀이
06:37
정리
11:31
기본형과 참조형의 공유
14:31
공유 참조와 사이드 이펙트
14:58
불변 객체 - 도입
14:50
불변 객체 - 예제
09:26
불변 객체 - 값 변경
12:13
문제와 풀이
12:03
정리
11:43
String 클래스 - 기본
15:10
String 클래스 - 비교
13:29
String 클래스 - 불변 객체
05:17
String 클래스 - 주요 메서드1
16:02
String 클래스 - 주요 메서드2
20:07
String 최적화
11:21
문제와 풀이1
09:30
문제와 풀이2
05:29
정리
05:25
래퍼 클래스 - 기본형의 한계1
12:42
래퍼 클래스 - 기본형의 한계2
11:03
래퍼 클래스 - 자바 래퍼 클래스
12:15
래퍼 클래스 - 오토 박싱
05:32
래퍼 클래스 - 주요 메서드와 성능
18:37
Class 클래스
14:57
System 클래스
10:54
Math, Random 클래스
13:19
문제와 풀이1
04:57
문제와 풀이2
06:23
정리
05:16
문자열과 타입 안전성1
11:39
문자열과 타입 안전성2
09:21
타입 안전 열거형 패턴
19:35
열거형 - Enum Type
12:09
열거형 - 주요 메서드
08:19
열거형 - 리팩토링1
08:13
열거형 - 리팩토링2
07:06
열거형 - 리팩토링3
11:30
문제와 풀이1
08:46
문제와 풀이2
08:44
정리
07:37
날짜와 시간 라이브러리가 필요한 이유
21:57
자바 날짜와 시간 라이브러리 소개
10:17
타임존 - ZonedDateTime
14:18
기계 중심의 시간 - Instant
11:13
날짜와 시간의 핵심 인터페이스
19:08
날짜와 시간 조회하고 조작하기1
15:53
날짜와 시간 조회하고 조작하기2
07:45
날짜와 시간 문자열 파싱과 포맷팅
09:12
문제와 풀이1
12:10
문제와 풀이2
10:54
정리
07:53
중첩 클래스, 내부 클래스란?
13:25
정적 중첩 클래스
09:33
정적 중첩 클래스의 활용
08:53
내부 클래스
12:14
내부 클래스의 활용
14:48
같은 이름의 바깥 변수 접근
03:51
지역 클래스 - 시작
07:39
지역 클래스 - 지역 변수 캡처1
13:55
지역 클래스 - 지역 변수 캡처2
08:44
지역 클래스 - 지역 변수 캡처3
10:50
익명 클래스 - 시작
09:19
익명 클래스 활용1
06:39
익명 클래스 활용2
10:55
익명 클래스 활용3
11:43
문제와 풀이1
06:34
문제와 풀이2
16:00
정리
15:57
예외 처리가 필요한 이유1 - 시작
12:02
자바 예외 처리1 - 예외 계층
05:26
자바 예외 처리2 - 예외 기본 규칙
04:18
자바 예외 처리3 - 체크 예외
31:55
자바 예외 처리4 - 언체크 예외
15:46
예외 처리 도입1 - 시작
13:54
예외 처리 도입2 - 예외 복구
05:30
예외 처리 도입5 - finally
06:38
예외 계층1 - 시작
13:02
예외 계층2 - 활용
12:34
실무 예외 처리 방안1 - 설명
17:25
실무 예외 처리 방안2 - 구현
18:58
try-with-resources
11:17
정리
12:18
다음으로
27:27
전체
617개
5.0
617개의 수강평
₩46,200
30%
₩66,000