김영한의 실전 자바 중급 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
* 컬렉션 유틸
* 컬렉션 프레임워크 전체 정리
* 문제와 풀이
* 정리
감사합니다.