Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

이펙티브 자바 완벽 공략 2부 대시보드

(4.9)
20개의 수강평 ∙  1,492명의 수강생

66,000원

지식공유자: 백기선
총 54개 수업 (8시간 54분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

중급자를 위해 준비한
[프로그래밍 언어] 강의입니다.

자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상시킬 수 있습니다.

✍️
이런 걸
배워요!
클래스와 인터페이스를 쓰기 편하고, 견고하며, 유연하게 만드는 방법
제네릭의 장점을 살리고 단점을 최소화하는 방법

마이크로소프트 시니어 개발자, 백기선의 
깊이가 남다른 이펙티브 자바 🚢 

자바 공부의 끝, 이펙티브 자바.

 Effective Java?

모든 자바 개발자가 한번쯤 공부를 시도하지만  
결코 아무나 정복할 수 없는 책, "이펙티브 자바" 
이 강의가 완벽하게 공략해 드립니다.


수준 높은 백엔드 개발자가 
되고 싶은 당신을 위해.

『이펙티브 자바(Efftective Java 3/E)』는 모든 자바 개발자에게 권하는 책이지만 역설적이게도 모든 자바 개발자가 쉽게 학습할 수 있는 책은 아닙니다. 제일 첫 번째 아이템부터 제대로 소화하려면 "열거 타입", "플라이웨이트 패턴", "인터페이스의 정적 메서드", "서비스 제공자 프레임워크", "리플렉션" 이라는 배경 지식이 필요합니다. 이런 배경 지식 없이 책의 내용을 100% 이해하기는 어렵습니다. 그만큼 학습하기 어려운 책이지만, 하나씩 학습을 했을때 뒤따르는 보상도 남다릅니다. 

『이펙티브 자바』의 내용을 이해하면 여러분의 실력과 지식은 이전에 비해 많이 향상될 것이며, 새로운 시야를 밝혀줄 것입니다. 심지어 다른 프로그래밍 언어를 공부하거나 사용한다 하더라도 말이죠. (마치 이 책을 열심히 공부했었지만 지금은 마이크로소프트에서 C#과 Powershell을 사용하며 일하고 있는 지금의 저처럼 말이죠.)


시리즈로 도전하는
이펙티브 자바 완벽 공략

이펙티브 자바 완벽 공략 - Part 2시리즈 연재 중

『이펙티브 자바』를 총 5부로 나눠서 학습합니다. 2부에 해당하는 이 강의는 『이펙티브 자바』 4장 "클래스와 인터페이스"와, 5장 "제네릭"을 다룹니다.

『이펙티브 자바』 학습을 어려워하는 개발자 또는 학생 또는 보다 완벽하게 학습하고 싶은 분들을 위해 각 아이템을 코드와 함께 요약하고, 각 아이템 별로 학습하는 데 도움이 되는 배경 지식을 전달해 드립니다. 여러분의 『이펙티브 자바』 학습이 훨씬 재미있고, 쉽고 또 유익할 것입니다.

자바 심화 학습이 필요한 분들께.

이 강의는 프로그래밍 초급자 또는 입문자를 위한 강의가 아닙니다. 자바를 사용해 일을 하고 있는 개발자 또는 기본적인 자바 공부를 마치고 보다 수준높은 심화 학습을 통해 실력을 올리고 싶은 개발자 또는 학생을 위한 강의입니다. 다음 강의를 수강했거나 그에 준하는 학습을 했다면 이번 강의를 들어도 좋습니다. (자세한 내용은 섹션 0 - 강의 소개 수업을 참고해 주세요.)

필수 학습 과정

권장 학습 과정


강의에서 제안하는
4-Step 학습 순서 

이 강의는 이펙티브 자바 2부과 3부에서 다루는 총 14개의 아이템을 다루며, 완벽한 공략을 위해 총 30개에 달하는 배경 지식을 전달합니다. 또한 이펙티브 자바가 책에서 글로만 설명한 부분도 여러분이 보다 쉽게 이해할 수 있도록 추가적인 소스 코드를 제공하고 있습니다. 권장하는 학습 방법은 다음과 같습니다.

Step 1

"이펙티브 자바"를 교재 삼아 구매하고, 아이템을 하나 먼저 읽습니다.

Step 2

"이펙티브 자바 완벽 공략 1부"에 해당하는 아이템의 "핵심 정리" 수업을 수강합니다.

Step 3

이어지는 "완벽 공략" 수업을 수강하고 부족한 부분은 보충 학습을 이어갑니다.

Step 4

추가로 학습한 부분을 개인 블로그에 정리하시고 "질문 답변" 게시판에 링크를 남겨두시면 리뷰를 해드립니다.


14개 아이템별 완벽 공략,
학습 커리큘럼 📚

아이템 15. 클래스와 멤버의 접근 권한을 최소화하라.

  • 정보 은닉
  • 접근 제한자 사용 원칙
  • 자바 플랫폼 모듈 시스템

아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라.

  • 내부를 공개한 Dimension 클래스의 성능 이슈

아이템 17. 변경 가능성을 최소화하라.

  • 불변 클래스
  • 불변 클래스의 장점과 단점
  • final과 자바 메모리 모델  
  • java.util.concurrent 패키지
  • CountDownLatch

아이템 18. 상속보다는 컴포지션을 사용하라.

  • 상속의 단점
  • 컴포지션의 장점
  • 데코레이터 패턴
  • 콜백 프레임워크와 셀프 문제

아이템 19-20. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라.

  • @implSpec
  • 인터페이스의 장점
  • 인터페이스와 추상 골격(skeletal) 클래스
  • 템플릿 메서드 패턴
  • 디폴트 메서드와 Object 메서드

아이템 21. 인터페이스는 구현하는 쪽을 생각해 설계하라.

  • 디폴트 메서드 추가시 주의할 점
  • ConcurrentModificationException

아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라.

  • 상수를 정의하는 용도로 인터페이스를 사용하지 말 것!
  • 상수를 정의하는 방법

아이템 23. 태그 달린 클래스보다는 클래스 계층 구조를 활용하라.

  • 태그 달린 클래스의 단점
  • 계층 구조 활용하기

아이템 24. 멤버 클래스는 되도록 static으로 만들라.

  • 정적 멤버 클래스
  • 비정적 멤버 클래스
  • 익명 클래스
  • 지역 클래스
  • 어댑터 패턴

아이템 25. 톱 레벨 클래스는 한 파일에 하나만 담으라.

아이템 26. 로 타입은 사용하지 말라.

  • 제네릭 용어 정리
  • 매개변수화 타입을 사용해야 하는 이유
  • GenericRepository

아이템 27. 비검사 경고를 제거하라.

  • 비검사(unchecked) 경고
  • @SuppressWarning
  • 애너테이션

아이템 28. 배열보다는 리스트를 활용하라.

  • 공변 vs 불공변
  • @SafeVarangs

아이템 29. 이왕이면 제네릭 타입으로 만들라.

  • 배열을 사용하는 코드를 제네릭으로 변경하기
  • 한정적 타입 매개변수

아이템 30. 이왕이면 제네릭 메서드로 만들라.

  • 제너릭 싱글턴 팩터리
  • 재귀적 타입 한정

아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라.

  • PECS(Producer-Extends, Consumer-Super)
  • 와일드카드
  • 타입 추론

아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라.

  • 제네릭 가변인수
  • ThreadLocal
  • ThreadLocalRandom

아이템 33. 타입 안전 이종 컨테이너를 고려하라.

  • 타입 안전 이종 컨테이너
  • 타입 토큰
  • 수퍼 타입 토큰
  • 한정적 타입 토큰

모든 자바 개발자의 필독서
함께 읽어나갈 수 있도록 💌

이펙티브 자바를 보다 쉽고 완벽하게 공부할 수 있는 가이드를 제공합니다. 이펙티브 자바에서 소개하는 핵심적인 내용을 정리하고 보다 완벽하게 이해하는 데 필요한 배경 지식을 자세히 전달하고 있습니다.

총 5부에 걸쳐서 진행하는 “이펙티브 자바 완벽 공략” 시리즈의 이번 강의는 시리즈 중 두 번째 강의입니다. 첫 번째 강의를 먼저 수강한 다음 이어서 학습해 주세요.

백기선의 “이펙티브 자바 완벽 공략” 지난 강의 📖

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
현업에서 자바를 사용하고 있는 모든 개발자
자바를 마스터 하고 싶은 개발자 또는 학생
이펙티브 자바를 보다 완벽하게 학습하고 싶은 개발자 또는 학생
📚
선수 지식,
필요할까요?
자바 기초 (자바의 신, 자바의 정석, 헤드 퍼스트 자바 중 1권 필독)
더 자바: 자바 8
더 자바: 코드를 조작하는 다양한 방법
코딩으로 학습하는 디자인 패턴
이펙티브 자바 완벽 공략 1부

안녕하세요
백기선 입니다.
백기선의 썸네일

네이버와 아마존을 거쳐 현재 Microsoft에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

아인슈타인은 "교육이란 사실을 가르치는 것이 아니라, 생각할 수 있는 힘을 기르는 것이다."라고 말했습니다. 그리고 저도 그 말에 깊이 공감하며 강의를 만들고 있습니다.

유튜브:
'백기선' 채널에서 개발자 고민 상담 및 개발자에게 유용한 지식 공유
번역: 스프링 및 하이버네이트 관련 서적 다수 번역
저술: 쉽게 따라하는 자바 웹 개발

커리큘럼 총 54 개 ˙ 8시간 54분의 수업
이 강의는 영상, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 이펙티브 자바 완벽 공략 2
강의 소개 미리보기 01:18
수업 자료
소스 코드
섹션 1. 아이템 15. 클래스와 멤버의 접근 권한을 최소화하라.
아이템 15. 핵심 정리 - 구현과 API를 분리하는 “정보 은닉”의 장점 04:54
아이템 15. 핵심 정리 - 클래스와 인터페이스의 접근 제한자 사용 원칙 20:12
아이템 15. 핵심 정리 - 멤버(필드, 메서드, 중첩 클래스/인터페이스)의 접근 제한자 원칙 16:16
아이템 15. 완벽 공략 요약 10:59
아이템 15. 완벽 공략 - 자바 플랫폼 모듈 시스템 1 미리보기 12:44 아이템 15. 완벽 공략 - 자바 플랫폼 모듈 시스템 2 미리보기 18:00
섹션 2. 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라.
아이템 16. 핵심 정리 10:33
아이템 16. 완벽 공략 05:24
섹션 3. 아이템 17. 변경 가능성을 최소화 하라.
아이템 17. 핵심 정리 - 불변 클래스 15:43
아이템 17. 핵심 정리 - 불변 클래스의 장점과 단점 20:49
아이템 17. 핵심 정리 - 불변 클래스 만들 때 고려할 것 12:52
아이템 17. 완벽 공략 요약 05:27
아이템 17. 완벽 공략 - final과 자바 메모리 모델(JMM) 13:43
아이템 17. 완벽 공략 - CountDownLatch 09:29
섹션 4. 아이템 18. 상속보다는 컴포지션을 사용하라.
아이템 18 - 핵심 정리 13:41
아이템 18 - 완벽 공략 요약 03:32
아이템 18. 완벽 공략 - 데코레이터 패턴 05:24
아이템 18. 완벽 공략 - 콜백 프레임워크와 셀프 문제 06:38
섹션 5. 아이템 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라.
아이템 19. 핵심 정리 17:22
섹션 6. 아이템 20. 추상 클래스보다 인터페이스를 우선하라.
아이템 20. 핵심 정리 - 인터페이스의 장점 13:47
아이템 20. 핵심 정리 - 인터페이스와 추상 골격(skeletal) 클래스 08:36
아이템 20. 완벽 공략 - 템플릿 메서드 패턴 07:23
아이템 20. 완벽 공략 - 디폴트 메서드와 Object 메서드 08:26
섹션 7. 아이템 21. 인터페이스는 구현하는 쪽을 생각해 설계하라.
아이템 21. 핵심 정리 07:51
아이템 21. 완벽 공략 - ConcurrentModificationException 08:46
섹션 8. 아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라.
아이템 22. 핵심 정리 04:50
섹션 9. 아이템 23. 태그 달린 클래스보다는 클래스 계층 구조를 활용하라.
아이템 23. 핵심 정리 08:34
섹션 10. 아이템 24. 멤버 클래스는 되도록 static으로 만들라.
아이템 24. 핵심 정리 - 네 종류의 중첩 클래스와 각각의 쓰임 11:40
아이템 24. 완벽 공략 - 어댑터 패턴 04:12
섹션 11. 아이템 25. 톱 레벨 클래스는 한 파일에 하나만 담으라
아이템 25. 핵심 정리 03:06
섹션 12. 아이템 26. 로 타입은 사용하지 말라.
아이템 26. 핵심 정리 - 제네릭 용어 정리 12:58
아이템 26. 핵심 정리 - 로(raw) 타입은 사용하지 말라. 13:04
아이템 26. 완벽 공략 - GenericRepository 08:44
섹션 13. 아이템 27. 비검사 경고를 제거하라
아이템 27. 핵심 정리 10:38
아이템 27. 완벽 공략 - 애너테이션 07:25
섹션 14. 아이템 28. 배열보다는 리스트를 사용하라
아이템 28. 핵심 정리 1 미리보기 16:09
아이템 28. 핵심 정리 2 07:37
아이템 28. 완벽 공략 @SafeVarargs 05:37
섹션 15. 아이템 29. 이왕이면 제네릭 타입으로 만들라
아이템 29. 핵심 정리 10:22
아이템 29. 완벽 공략 - 한정적 타입 매개변수 08:25
섹션 16. 아이템 30. 이왕이면 제네릭 메서드로 만들라
아이템 30. 핵심 정리 11:16
섹션 17. 아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라
아이템 31. 핵심 정리 - Chooser와 Union API 개선 11:25
아이템 31. 핵심 정리 - Comparator와 Comparable은 소비자 08:28
아이템 31. 핵심 정리 - 와일드카드 활용 팁 08:11
아이템 31. 완벽 공략 - 타입 추론 06:27
섹션 18. 아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라.
아이템 32. 핵심 정리 17:25
아이템 32. 완벽 공략 - ThreadLocal 미리보기 08:09
아이템 32. 완벽 공략 - ThreadLocalRandom 09:27
섹션 19. 아이템 33. 타입 안전 이종 컨테이너를 고려하라.
아이템 33. 핵심 정리 - 타입 토큰을 사용한 타입 안전 이종 컨테이너 18:46
아이템 33. 완벽 공략 - 수퍼 타입 토큰 17:17
아이템 33. 핵심 정리 - 한정적 타입 토큰 04:39
강의 게시일 : 2022년 10월 19일 (마지막 업데이트일 : 2022년 10월 19일)
수강평 총 20개
수강생분들이 직접 작성하신 수강평입니다.
4.9
20개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
kjh48001 thumbnail
5
이펙티브자바는 설명을 예를 드는데 그 예를 모르는 경우가 많은데 어려운부분을 설명해주셔서 효자손 같은 강의 입니다
2023-05-04
뿡이 thumbnail
5
정말 도움이 많이 되었습니다 다음 편도 기대됩니다!
2023-04-08
카토의남자 thumbnail
5
이번 이펙티브 시리즈는 너무 알차네요 책에서 다 이해못한 내용과 그냥 넘긴 것들도 코드 타이핑하며 확인하는 과정이 너무 좋습니다. 늘 감사합니다.
2023-01-27
노형률 thumbnail
5
잘보겠습니다.
2023-04-03
고세윤 thumbnail
5
유튜브 개발자 고민 상담 때 뵙고, 댓글로 질문을 작성했었는데, 정말 정성스럽게 답변해주시는 모습에 감동해서 더 개발자 가이드를 수강하고 있고, 포트폴리오 작성하는데 정말 도움을 많이 받고 있습니다.! 얼리버드 이벤트가 떠서 자바를 명확하고 정확하게 배우자라는 생각에 얼른 바로 수강하고 있습니다! 라이브 코딩 과정에서 어려운 부분이나 혹은 짚고 넘어가야하는 부분들을 상세하게 설명해주셔서 정말 감사합니다! 간혹 왜 final을 써야하는지, 접근 제한자를 왜 쓰는지? 헷갈리고 이해 안되는 부분이 많았는데, 강의 듣고 이해할 수 있었습니다.!!
2022-10-25