Thumbnail
신규 강의 오픈 기념 할인 중(D-2)
BEST
개발 · 프로그래밍 프로그래밍 언어

김영한의 실전 자바 - 중급 1편 대시보드

(5)
283개의 수강평 ∙  5,073명의 수강생

30%

46,200원

66,000원
지식공유자: 김영한
총 103개 수업 (19시간 20분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유
김영한 프로필
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 오픈 공지
김영한 12일 전 (12일 전 수정됨)

안녕하세요. 여러분^^! 자바 고급1편 - 멀티스레드와 동시성 강의를 드디어 오픈했습니다.
오픈 기념으로 스프링, JPA를 포함한 저의 모든 강의를 30% 할인합니다^^!

강의 링크: https://inf.run/RYNoL

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
* 강의 시간: 20시간 48분
* 강의 수: 118강
* 강의 PDF 자료: 약 500장
* 그림: 270장

이번 강의는 멀티스레드와 동시성을 CS 기본기부터 실무에 필요한 활용 기술까지 완전히 마스터하는 것을 목표로 합니다. 그리고 복잡한 멀티스레드를 최대한 쉽게 설명하기 위해 약 500장의 PDF 자료와 그 안에 270장의 그림이 들어갑니다!

단순히 스레드의 기초를 아는 것을 넘어서, 실무에 필요한 자바 멀티스레드 기술과 동시성 문제를 정말 깊이있게 제대로 이해하고, 또 실무에서 제대로 활용할 수 있게 가르쳐 드리겠습니다.

제 목표는 단순히 자바 문법 교육에 그치지 않고, 실무에서 필요한 탄탄한 자바 기본기를 갖춘 유능한 개발자를 양성하는 것입니다. 이를 위해 자바에 대해 깊이 있고 체계적인 자바 로드맵을 진행합니다. 기대해주세요.

 

김영한 프로필
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 오픈 일정 확정
김영한 19일 전 (19일 전 수정됨)

안녕하세요. 여러분
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오픈 일정이 7월 15일(월)로 확정 되었습니다.

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
* 강의 시간: 20시간 48분
* 강의 수: 118강
* 강의 PDF 자료: 약 500장
* 그림: 270장

고급1편은 멀티스레드와 동시성을 CS 기본기부터 실무에 필요한 활용 기술까지 완전히 마스터하는 것을 목표로 합니다. 그리고 복잡한 멀티스레드를 최대한 쉽게 설명하기 위해 무려 270장의 그림이 들어갑니다!

[앞으로의 계획]
고급편은 1,2,3편으로 나누어 출시될 예정입니다.
* 고급 1편: 멀티스레드와 동시성 (7/15)
* 고급 2편: I/O, 네트워크, 리플렉션, 애노테이션 (10월 중 예정)
* 고급 3편: 람다, 스트림, 모던 자바 (12월 중 예정)

[강의 소개]

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

강의 목표

단순히 스레드의 기초를 아는 것을 넘어서, 실무에 필요한 자바 멀티스레드 기술과 동시성 문제를 정말 깊이있게 제대로 이해하고, 또 실무에서 제대로 활용할 수 있게 가르쳐 드리겠습니다.

강의 내용

기반을 다지는 CS 이론 학습
* 프로세스와 스레드
* 멀티태스킹
* 스케줄링2

스레드의 기본기
* 스레드 제어
* 스레드 생명 주기
* 메모리 가시성, volatile
* synchronized 동기화
* ReentrantLock - 고급 동기화
* 스레드 제어 - 다양한 예제

스레드의 고급 기술들
* 생산자 소비자 문제
* CAS
* 동기화 컬렉션

실무에서 사용하는 멀티스레드 실전 기술들
* Future의 작동 원리
* 스레드 풀과 Executor 프레임워크 - 원리
* 스레드 풀과 Executor 프레임워크 - 실전 활용


[강의 전체 목차]

1. 프로세스와 스레드 소개
* 멀티태스킹과 멀티프로세싱
* 프로세스와 스레드
* 스레드와 스케줄링
* 컨텍스트 스위칭

2. 스레드 생성과 실행
* 프로젝트 환경 구성
* 스레드 시작1
* 스레드 시작2
* 데몬 스레드
* 스레드 생성 - Runnable
* 로거 만들기
* 여러 스레드 만들기
* Runnable을 만드는 다양한 방법
* 문제와 풀이
* 정리

3. 스레드 제어와 생명 주기1
* 스레드 기본 정보
* 스레드의 생명 주기 - 설명
* 스레드의 생명 주기 - 코드
* 체크 예외 재정의
* join - 시작
* join - 필요한 상황
* join - sleep 사용
* join - join 사용
* join - 특정 시간 만큼만 대기
* 문제와 풀이

4. 스레드 제어와 생명 주기2
* 인터럽트 - 시작1
* 인터럽트 - 시작2
* 인터럽트 - 시작3
* 인터럽트 - 시작4
* 프린터 예제1 - 시작
* 프린터 예제2 - 인터럽트 도입
* 프린터 예제3 - 인터럽트 코드 개선
* yield - 양보하기
* 프린터 예제4 - yield 도입
* 정리

5. 메모리 가시성
* volatile, 메모리 가시성1
* volatile, 메모리 가시성2
* volatile, 메모리 가시성3
* volatile, 메모리 가시성4
* 자바 메모리 모델(Java Memory Model)
* 정리

6. 동기화 - synchronized
* 출금 예제 - 시작
* 동시성 문제
* 임계 영역
* synchronized 메서드
* synchronized 코드 블럭
* 문제와 풀이
* 정리

7. 고급 동기화 - concurrent.Lock
* LockSupport1
* LockSupport2
* ReentrantLock - 이론
* ReentrantLock - 활용
* ReentrantLock - 대기 중단
* 정리

8. 생산자 소비자 문제1
* 생산자 소비자 문제 - 소개
* 생산자 소비자 문제 - 예제1 코드
* 생산자 소비자 문제 - 예제1 분석 - 생산자 우선
* 생산자 소비자 문제 - 예제1 분석 - 소비자 우선
* 생산자 소비자 문제 - 예제2 코드
* 생산자 소비자 문제 - 예제2 분석
* Object - wait, notify - 예제3 코드
* Object - wait, notify - 예제3 분석 - 생산자 우선
* Object - wait, notify - 예제3 분석 - 소비자 우선
* Object - wait, notify - 한계
* 정리

9. 생산자 소비자 문제2
* Lock Condition - 예제4
* 생산자 소비자 대기 공간 분리 - 예제5 코드
* 생산자 소비자 대기 공간 분리 - 예제5 분석
* 스레드의 대기
* 중간 정리 - 생산자 소비자 문제
* BlockingQueue - 예제6
* BlockingQueue - 기능 설명
* BlockingQueue - 기능 확인
* 정리

10. CAS - 동기화와 원자적 연산
* 원자적 연산 - 소개
* 원자적 연산 - 시작
* 원자적 연산 - volatile, synchronized
* 원자적 연산 - AtomicInteger
* 원자적 연산 - 성능 테스트
* CAS 연산1
* CAS 연산2
* CAS 연산3
* CAS 락 구현1
* CAS 락 구현2
* 정리

11. 동시성 컬렉션
* 동시성 컬렉션이 필요한 이유1 - 시작
* 동시성 컬렉션이 필요한 이유2 - 동시성 문제
* 동시성 컬렉션이 필요한 이유3 - 동기화
* 동시성 컬렉션이 필요한 이유4 - 프록시 도입
* 자바 동시성 컬렉션1 - synchronized
* 자바 동시성 컬렉션2 - 동시성 컬렉션
* 정리

12. 스레드 풀과 Executor 프레임워크1
* 스레드를 직접 사용할 때의 문제점
* Executor 프레임워크 소개
* ExecutorService 코드로 시작하기
* Runnable의 불편함
* Future1 - 소개
* Future2 - 분석
* Future3 - 활용
* Future4 - 이유
* Future5 - 정리
* Future6 - 취소
* Future7 - 예외
* ExecutorService - 작업 컬렉션 처리
* 문제와 풀이
* 정리

13. 스레드 풀과 Executor 프레임워크2
* ExecutorService 우아한 종료 - 소개
* ExecutorService 우아한 종료 - 구현
* Executor 스레드 풀 관리 - 코드
* Executor 스레드 풀 관리 - 분석
* Executor 전략 - 고정 풀 전략
* Executor 전략 - 캐시 풀 전략
* Executor 전략 - 사용자 정의 풀 전략
* Executor 예외 정책
* 정리

감사합니다.

김영한 프로필
자바 중급 2편 강의 오픈
김영한 2달 전 (2달 전 수정됨)

안녕하세요. 여러분^^! 자바 중급 2편 강의를 드디어 오픈했습니다.
오픈 기념으로 스프링, JPA를 포함한 저의 모든 강의를 30% 할인합니다^^!

강의 링크: https://inf.run/NevkE

김영한의 실전 자바 중급 2편 - 제네릭과 컬렉션

* 강의 시간: 19시간 24분
* 강의 수: 약 90강
* 강의 PDF 자료: 355장

이번 강의에서는 실무에 필요한 제네릭, 자료구조, 컬렉션 프레임워크를 깊이있게 다룹니다.

특히 컬렉션에 쓰이는 다양한 자료 구조를 직접 구현하면서 원리를 깊이 있게 이해합니다. 그래서 각각의 자료 구조가 어떤 경우에 성능이 좋고, 어떤 경우에 성능이 나쁜지 근본적인 이유를 제대로 이해하고 실무에서 활용할 수 있게 됩니다.

제 목표는 단순히 자바 문법 교육에 그치지 않고, 실무에서 필요한 탄탄한 자바 기본기를 갖춘 유능한 개발자를 양성하는 것입니다. 이를 위해 자바에 대해 깊이 있고 체계적인 자바 로드맵을 진행합니다. 기대해주세요.

다른 댓글 보기(6)
김영한 프로필
김영한의 실전 자바 중급 2편 - 제네릭과 컬렉션 오픈 일정 확정
김영한 2달 전 (2달 전 수정됨)

안녕하세요. 여러분
김영한의 실전 자바 중급 2편 - 제네릭과 컬렉션
오픈 일정이 5월 8일(수)로 확정 되었습니다.

김영한의 실전 자바 - 중급 2편 제네릭과 컬렉션
* 강의 시간: 19시간 24분
* 강의 수: 약 90강
* 강의 PDF 자료: 355장

[자바 중급 2편 강의 내용]

[제네릭]
자바(Java)에서 제네릭을 제대로 이해하는 것은 참 어렵습니다.
이 강의에서는 제네릭을 최대한 쉽게 설명하기 위해 먼저 제네릭을 전혀 사용하지 않고 코드를 작성합니다. 그리고 이런 코드에 제네릭을 점진적으로 도입하면서 기존 방식으로는 해결이 어려운 코드 중복을 제네릭이 어떻게 해결하는지 자연스럽게 이해할 수 있습니다.

[자료 구조의 이해]
이 강의는 자료 구조를 제대로 이해할 수 있도록 자료 구조의 기초 이론을 설명하고, 또 실무에서 자주 사용하는 핵심 자료 구조들을 코드로 직접 구현해봅니다.

* 배열 리스트 (ArrayList)
* 연결 리스트 (LinkedList)
* 해시 구조 (Hash)
* 해시 알고리즘과 해시 테이블 (Hash)
* 트리 구조 (Tree)
* 세트(셋)와 맵 구조 (Set, Map)
* 스택과 큐 구조 (Stack, Queue)

[컬렉션 프레임워크]
자바의 컬렉션 프레임워크는 자료 구조의 모음입니다.
실무에서 자료 구조는 정말 자주 쓰이고 성능 문제와도 직결되는 만큼 자료 구조를 제대로 이해하고 사용하는 것이 정말 중요합니다.
이 강의에서는 컬렉션에 쓰이는 다양한 자료 구조를 직접 구현하면서 원리를 깊이 있게 이해합니다. 그래서 각각의 자료 구조가 어떤 경우에 성능이 좋고, 어떤 경우에 성능이 나쁜지 근본적인 이유를 제대로 이해하고 실무에서 활용할 수 있게 됩니다.
각 챕터에서는 다양한 자료 구조를 이론과 실제 구현을 통해 학습합니다. 이렇게 해서 자바 컬렉션 프레임워크 전반을 완성하고, 또 어떤 자료 구조를 어디에 사용해야 할지 제대로 이해할 수 있게 됩니다.

[강의 전체 목차]

1. 제네릭 - Generic1

* 프로젝트 환경 구성

* 제네릭이 필요한 이유

* 다형성을 통한 중복 해결 시도

* 제네릭 적용

* 제네릭 용어와 관례

* 제네릭 활용 예제

* 문제와 풀이1

 

2. 제네릭 - Generic2

* 타입 매개변수 제한1 - 시작

* 타입 매개변수 제한2 - 다형성 시도

* 타입 매개변수 제한3 - 제네릭 도입과 실패

* 타입 매개변수 제한4 - 타입 매개변수 제한

* 제네릭 메서드

* 제네릭 메서드 활용

* 와일드카드1

* 와일드카드2

* 타입 이레이저

* 문제와 풀이2

* 정리

 

3. 컬렉션 프레임워크 - ArrayList

* 배열의 특징1 - 배열과 인덱스

* 빅오(O) 표기법

* 배열의 특징2 - 데이터 추가

* 직접 구현하는 배열 리스트1 - 시작

* 직접 구현하는 배열 리스트2 - 동적 배열

* 직접 구현하는 배열 리스트3 - 기능 추가

* 직접 구현하는 배열 리스트4 - 제네릭1

* 직접 구현하는 배열 리스트5 - 제네릭2

* 정리

 

4. 컬렉션 프레임워크 - LinkedList

* 노드와 연결1

* 노드와 연결2

* 노드와 연결3

* 직접 구현하는 연결 리스트1 - 시작

* 직접 구현하는 연결 리스트2 - 추가와 삭제1

* 직접 구현하는 연결 리스트3 - 추가와 삭제2

* 직접 구현하는 연결 리스트4 - 제네릭 도입

* 정리

 

5. 컬렉션 프레임워크 - List

* 리스트 추상화1 - 인터페이스 도입

* 리스트 추상화2 - 의존관계 주입

* 리스트 추상화3 - 컴파일 타임, 런타임 의존관계

* 직접 구현한 리스트의 성능 비교

* 자바 리스트

* 자바 리스트의 성능 비교

* 문제와 풀이1

* 문제와 풀이2

* 정리

 

6. 컬렉션 프레임워크 - 해시(Hash)

* 리스트(List) vs 세트(Set)

* 직접 구현하는 Set0 - 시작

* 해시 알고리즘1 - 시작

* 해시 알고리즘2 - index 사용

* 해시 알고리즘3 - 메모리 낭비

* 해시 알고리즘4 - 나머지 연산

* 해시 알고리즘5 - 해시 충돌 설명

* 해시 알고리즘6 - 해시 충돌 구현

 

7. 컬렉션 프레임워크 - HashSet

* 직접 구현하는 Set1 - MyHashSetV1

* 문자열 해시 코드

* 자바의 hashCode()

* 직접 구현하는 Set2 - MyHashSetV2

* 직접 구현하는 Set3 - 직접 만든 객체 보관

* equals, hashCode의 중요성1

* equals, hashCode의 중요성2

* 직접 구현하는 Set4 - 제네릭과 인터페이스 도입

 

8. 컬렉션 프레임워크 - Set

* 자바가 제공하는 Set1 - HashSet, LinkedHashSet

* 자바가 제공하는 Set2 - TreeSet

* 자바가 제공하는 Set3 - 예제

* 자바가 제공하는 Set4 - 최적화

* 문제와 풀이1

* 문제와 풀이2

* 정리

 

9. 컬렉션 프레임워크 - Map, Stack, Queue

* 컬렉션 프레임워크 - Map 소개1

* 컬렉션 프레임워크 - Map 소개2

* 컬렉션 프레임워크 - Map 구현체

* 스택 자료 구조

* 큐 자료 구조

* Deque 자료 구조

* Deque와 Stack, Queue

* 문제와 풀이1 - Map1

* 문제와 풀이2 - Map2

* 문제와 풀이3 - Stack

* 문제와 풀이4 - Queue

* 정리

 

10. 컬렉션 프레임워크 - 순회, 정렬, 전체 정리

* 순회1 - 직접 구현하는 Iterable, Iterator

* 순회2 - 향상된 for문

* 순회3 - 자바가 제공하는 Iterable, Iterator

* 정렬1 - Comparable, Comparator

* 정렬2 - Comparable, Comparator

* 정렬3 - Comparable, Comparator

* 컬렉션 유틸

* 컬렉션 프레임워크 전체 정리

* 문제와 풀이

* 정리

 

감사합니다.

다른 댓글 보기(11)
김영한 프로필
자바 중급 1편 오픈 공지
김영한 4달 전 (4달 전 수정됨)

안녕하세요. 여러분^^! 자바 중급 1편 강의를 드디어 오픈했습니다.

오픈 기념으로 저의 모든 강의를 30% 할인합니다^^!

강의 링크: https://inf.run/mkzcm

김영한의 실전 자바 - 중급 1편

* 강의 시간: 19시간 20분
* 강의 수: 약 100강
* 강의 PDF 자료: 350장

[자바 중급 1편 강의 내용]

* Object 클래스
* 불변 객체
* String 클래스
* 열거형 - ENUM
* 날짜와 시간
* 중첩 클래스, 내부 클래스
* 예외 처리

제 목표는 단순히 자바 문법 교육에 그치지 않고, 실무에서 필요한 탄탄한 자바 기본기를 갖춘 유능한 개발자를 양성하는 것입니다. 이를 위해 자바에 대해 깊이 있고 체계적인 자바 로드맵을 진행합니다. 기대해주세요.

 

다른 댓글 보기(4)
채널톡 아이콘