BEST
개발 · 프로그래밍

/

프로그래밍 언어

이펙티브 자바 완벽 공략 1부

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

(4.9) 수강평 99개

수강생 2,795명

Thumbnail

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

이런 걸
배워요!

  • 객체 생성과 파괴와 관련있는 자바 기술

  • Object가 제공하는 메소드를 적절하게 재정의하는 방법

MS 시니어 개발자와 함께 배워요!
깊이가 남다른 이펙티브 자바 ✨

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

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


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

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

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


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

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

『이펙티브 자바』를 총 5부로 나눠서 학습합니다. 그중 1부에 해당하는 이 강의는 『이펙티브 자바』 2장 "객체 생성과 파괴"와, 3장 "모든 객체의 공통 메서드"를 다룹니다.

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

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

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

필수 학습 과정

권장 학습 과정


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

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

Step 1

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

Step 2

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

Step 3

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

Step 4

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


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

아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라.

  • 열거 타입
  • 플라이웨이트 패턴
  • 인터페이스와 정적 메소드
  • 서비스 제공자 프레임워크
  • 리플렉션

아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라.

  • 자바빈(JavaBean)이란?
  • 객체 얼리기 (freezing)
  • 빌더 패턴
  • IllegalArgumentException
  • 가변인수

아이템 3. 생성자나 열거 타입으로 싱글턴임을 보증하라.

  • 메소드 참조
  • 함수형 인터페이스
  • 객체 직렬화

아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라.

아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

  • 팩터리 메소드 패턴
  • 스프링 IoC

아이템 6. 불필요한 객체 생성을 피하라.

  • Deprecation
  • 정규 표현식
  • 가비지 컬렉션

아이템 7. 다 쓴 객체 참조를 해제하라.

  • NullPointerException
  • WeakHashMap
  • Soft, Weak, Phantom 레퍼런스
  • ScheduledThreadPoolExecutor

아이템 8. finalizer와 cleaner 사용을 피하라.

  • Finalizer 공격
  • AutoClosable

아이템 9. try-finally 보다 try-with-resouces를 사용하라.

아이템 10. equals는 일반 규약을 지켜 재정의하라.

  • Value 기반의 클래스
  • StackOverflowError
  • Stack과 Heap
  • 리스코프 치환 원칙

아이템 11. equals를 재정의하려거든 hashCode도 재정의하라.

  • 해시 충돌
  • 해시맵과 연결 리스트
  • 스레드 안전 (Thread Safety)

아이템 12. toString을 항상 재정의하라.

아이템 13. clone 재정의는 주의해서 진행하라.

  • UncheckedException
  • TreeSet

아이템 14. Comparable을 구현할지 고민하라.

  • 컴파일타임 vs 런타임
  • 타입 추론
  • 정수 오버플로
  • 부동소수점

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

공부는 왜 하는 걸까요? 우리는 왜 이런 어려운 것들을 이해하려고 노력하고 시간과 돈을 소비하는 걸까요? 그 답은 여러분의 "실력 향상"이라고 생각합니다. 이 강의는 스프링이나 자바를 공부할 때 사용하던 저의 학습 방식을 그대로 담고 있습니다. 우선 읽어보고, 이해가 되는 내용과 이해가 되지 않는 내용을 정리하고, 이해가 되지 않는 내용은 왜, 어떤 부분 때문인지 요약을 하고 그 부분에 필요한 추가 학습. 그리고 추가 학습에 이어지는 또 다른 추가 학습.

저는 그런 학습 과정을 통해서 진정한 실력이 길러진다고 믿고 있습니다. 초반엔 더디고 힘들겠지만 아이템 13과 14를 학습할 때 쯤의 여러분은 아이템 1과 2를 학습할 때의 여러분과 분명히 달라져 있을 겁니다. 한번 느껴보세요. 이 강의의 마지막 수업까지 본인의 실력이나 지식에 아무런 변화를 느끼지 못하겠다면 환불을 요청해 주세요. 이유를 불문하고 100% 환불해 드리겠습니다. 

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 현업에서 자바를 사용하고 있는 모든 개발자

  • 자바를 마스터 하고 싶은 개발자 또는 학생

  • 이펙티브 자바를 보다 완벽하게 학습하고 싶은 개발자 또는 학생

선수 지식,
필요할까요?

  • 자바 기초 (자바의 신, 자바의 정석, 헤드 퍼스트 자바 중 1권 필독)

  • 더 자바: 자바 8

  • 더 자바: 코드를 조작하는 다양한 방법

  • 코딩으로 학습하는 디자인 패턴

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

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

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

커리큘럼

전체

74개 ∙ (12시간 52분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!