Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
개발 · 프로그래밍

/

프로그래밍 언어

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

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

(4.9) 수강평 110개

수강생 2,912명

  • 백기선

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

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

  • 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

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

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

안녕하세요
입니다.

92,184

수강생

4,201

수강평

2,010

답변

4.8

강의 평점

20

강의

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

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

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

커리큘럼

전체

74개 ∙ (12시간 52분)

해당 강의에서 제공:

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

수강평

전체

110개

4.9

110개의 수강평

  • yoonjoy님의 프로필 이미지
    yoonjoy

    수강평 15

    평균 평점 4.9

    5

    19% 수강 후 작성

    Tôi nghĩ đặc điểm và ưu điểm lớn nhất trong bài giảng của Baek Ki-seon là bạn có thể tìm hiểu sâu sắc để tìm và chọn cách giải quyết vấn đề thay vì chỉ đưa ra đáp án đúng cho vấn đề. Trong hầu hết các bài giảng của Baek Ki-seon, phần Ki-seon thể hiện khoảnh khắc anh mắc lỗi hoặc gặp sự cố không mong muốn, tìm cách và giải quyết vấn đề thông qua debug mà không cần chỉnh sửa, khiến tôi có cảm giác như anh đang viết code trực tiếp. giống tôi và chỉ ra cách Ki-seon giải quyết vấn đề. Thật vui khi có thể nhìn thấy quan điểm của bạn về cách nhìn nhận mọi việc và giải quyết chúng. Khi mới bắt đầu phát triển, tôi chỉ có ước mơ mơ hồ là trở thành nhà phát triển Spring. Không biết công nghệ Spring được tạo ra để giải quyết vấn đề gì và nó mang lại giá trị gì cho các nhà phát triển của chúng tôi, nên nó đã trở nên phổ biến như vậy. Tuy nhiên, hai năm trước, tình cờ tôi xem được kênh YouTube của Baek Ki-seon và từ bài giảng REST-API đầu tiên tại Infron cho đến bài giảng Java hiệu quả hiện tại, tôi đã sống như một nhà phát triển bằng cách xem các bài giảng và YouTube của Ki-seon , nhưng công nghệ không phải là tất cả. Bằng cách nhận thức và suy ngẫm về bản thân, tôi đang tập trung vào việc học những kỹ năng và kiến ​​thức cơ bản không thay đổi, là nền tảng của vô số công nghệ thay đổi như một chiếc lò xo. Hãy nói ngắn gọn về không khí bài giảng trước đây có vẻ hơi cứng nhắc và hơi thiếu thân thiện, tôi nghĩ sẽ có khá nhiều người sẽ phản ứng nhạy cảm với điều này, nhưng bây giờ không khí bài giảng nói chung và chất lượng bài giảng đã được cải thiện. rất nhiều. Tôi cảm thấy nó rất nhiều. Đó là điều tốt nhất. Cuối cùng, đã hai năm kể từ khi tôi liên lạc với Baek Ki-seon thông qua YouTube và Infron, tôi đã có được một công việc và đang sống một cuộc sống công việc hạnh phúc. Tôi thực sự biết ơn Baek Ki-seon, người đã giúp tôi nhận ra danh tính của mình và cách học tập trong cuộc đời với tư cách là một nhà phát triển, và Infrun, người đã giúp tôi dễ dàng tiếp cận những bài giảng cao cấp này! Chúng tôi mong muốn có những bài giảng tốt hơn và dịch vụ tốt hơn trong tương lai!!

    • whiteship
      지식공유자

      Xin chào. Tôi rất vui khi nghe được tin tốt, Kidang Kong. Tôi hy vọng bài giảng của tôi đã giúp ích phần nào và tôi sẽ tiếp tục cải thiện nó trong tương lai. Cảm ơn

  • omg님의 프로필 이미지
    omg

    수강평 205

    평균 평점 5.0

    5

    100% 수강 후 작성

    Tôi thích cách cuốn sách dài chưa đến 100 trang được giải thích chi tiết với những điểm chính và chiến lược kỹ lưỡng trong khoảng 13 giờ. Sau khi đọc sách một lần và sau đó nghe giảng, tôi có thể hiểu rõ hơn khi xem bài giảng. Dù có tự mình đọc sách nhiều lần, nếu không có kiến ​​thức cơ bản thì tôi cũng không thể hiểu được nội dung, nhưng sách đã được giải thích. một cách chi tiết và các từ khóa trong cuốn sách đã được giải thích. Nó giúp tôi hiểu rất nhiều. Tuy nhiên, điều đáng thất vọng là có rất nhiều PPL trong suốt buổi học nên có nhiều lúc tôi bị mất tập trung. Có rất nhiều bài giảng tham khảo đến series Java và các bài giảng về mẫu thiết kế, và nếu có nhiều bài giảng được đề cập trong mỗi video (mình hiểu và hiểu rằng những bài giảng này quan trọng như kiến ​​thức sẵn có và nội dung tham khảo) thì nó giống như spring framework core Cũng giống như phần giới thiệu bài giảng và phần giới thiệu giảng viên, tôi nghĩ sẽ tốt hơn nếu làm một video riêng giải thích các bài giảng hiện có của Kiseon liên quan đến bài giảng này và chỉ giải thích nội dung được học trong bài giảng. Tôi nghĩ đó là một cách tuyệt vời để ôn tập, nghiên cứu và tham khảo kết nối bài giảng. Bất chấp những gì tôi đã viết về những thiếu sót, tôi chắc chắn dự định xem bài giảng tiếp theo khi nó được xuất bản. Mong thầy tiếp tục có những bài giảng hay ^^

    • whiteship
      지식공유자

      Cảm ơn bạn đã phản hồi của bạn. Tôi nghĩ rằng có rất nhiều bài giảng khác được đề cập ở phần đầu. Lần sau tôi sẽ chú ý hơn một chút.

  • gun님의 프로필 이미지
    gun

    수강평 7

    평균 평점 4.9

    5

    31% 수강 후 작성

    Tôi thích phong cách giảng của Ki-seon vì nó có cảm giác như một bài giảng thực sự, thỉnh thoảng có cảnh mọi người cười đùa và mắc lỗi chứ không cứng nhắc như những bài giảng trực tuyến khác. Ngay cả các nhà phát triển MS cũng mắc lỗi như vậy, điều này khiến tôi cảm thấy họ là con người chứ không phải robot. 🤣🤣🤣 Mình đã nghe rất nhiều bài giảng của Kiseon nhưng bài giảng này dựa trên những kiến ​​thức cơ bản tiên quyết nên mình không nghĩ có bài giảng nào khó hơn bài này (Anh ấy cũng đề cao các bài giảng khác nhưng làm mình nhớ đến. nội dung như một hương vị, nên mọi thiếu sót đều được khắc phục. Tôi nghĩ sinh viên có thể nhìn vào mục lục và lắng nghe nhận định của riêng mình.) Vì Java hiệu quả là một cuốn sách được dịch nên nó không dễ hiểu, nhưng tôi đã có thể hiểu được. tiếp cận nó một cách thoải mái như thể tôi đang dịch nó một lần nữa. (Nó vẫn khó, nhưng...) Không giống như những bài giảng trước đây, có nhiều câu hỏi và câu trả lời hơn, vì vậy tôi nghĩ đó là khoảng thời gian mà tôi có thể suy nghĩ sâu sắc hơn. Tôi thực sự thích phong cách này!! Nếu bạn không nhận thấy sự thay đổi cho đến khi hoàn thành khóa đào tạo, bạn sẽ được hoàn lại 100%, vì vậy hãy kiểm tra tất cả. Có lý do tại sao Kiseon lại tự tin như vậy. !! p.s) Khi nào phần tiếp theo sẽ ra mắt?

    • whiteship
      지식공유자

      Phần 2 dự kiến ​​ra mắt vào mùa hè năm nay (2022). Cảm ơn bạn đã phản hồi của bạn.

  • davideugen님의 프로필 이미지
    davideugen

    수강평 8

    평균 평점 5.0

    5

    7% 수강 후 작성

    Theo một cách nào đó, mặc dù tôi cần biết và sử dụng đúng các đặc điểm của Java khi làm việc, nhưng tôi cảm thấy như mình đang thụt lùi vì tôi chỉ sử dụng cùng một phương pháp mà tôi luôn sử dụng, vì vậy tôi đang cố gắng học lại thì tình cờ xem được bài giảng của Kiseon. Tôi đang xem xét nó cùng với các mẫu thiết kế và tái cấu trúc. Có nhiều phần trong bài giảng của Kiseon có thể áp dụng vào các lĩnh vực được sử dụng trong thực tế và vì anh ấy cũng cung cấp những thông tin cơ bản cần thiết nên tôi nghĩ nó rất hữu ích trong việc mở rộng kiến ​​thức của tôi. Và tôi nghĩ điều đặc biệt tốt là quá trình giải quyết các vấn đề xảy ra cùng nhau, thay vì tiến hành trong một khuôn khổ cố định, cũng là một trải nghiệm tốt. Tôi đã từng thử dùng Java hiệu quả qua một cuốn sách, nhưng tôi chỉ tiến bộ hơn và không thể tiếp thu nó một cách chính xác. Khi đọc sách, có nhiều nội dung cứng nhắc, khó hiểu nhưng tôi có cảm giác như Kiseon đang lấp đầy những khoảng trống giữa các dòng kiến ​​thức mà tôi không thể tìm thấy trong sách. Đặc biệt, có phải cảm giác bố cục ngày càng tốt hơn so với các video YouTube cũ không? Trước đây, dù là viết code trực tiếp, rất khó tập trung nhưng ngày nay, việc sắp xếp mọi thứ xen kẽ và đưa ra những vấn đề để suy nghĩ dường như đã giúp tôi sắp xếp kiến ​​thức của mình. Khó nhưng tôi nghĩ sẽ rất hữu ích nếu bạn làm theo từng mục một. Mình đang mong chờ 4 phần còn lại :)

    • junkim46857399님의 프로필 이미지
      junkim46857399

      수강평 4

      평균 평점 5.0

      5

      57% 수강 후 작성

      Tôi luôn thất vọng vì bài giảng trên YouTube của Baek Ki-seon về Java hiệu quả, được người dịch của cuốn sách Java hiệu quả, được coi là phải đọc đối với các nhà phát triển Java, chỉ kéo dài đến giữa. Khi Baek Ki-seon tiếp tục giảng bài, "Liệu có thể biến Java hiệu quả thành một bài giảng không?" Đó là những gì tôi nghĩ, nhưng khi tôi nghe nói rằng họ thực sự đang biến nó thành một bài giảng, tôi đã mua nó ngay lập tức. Tôi nghĩ rằng một bài giảng hay hơn được tạo ra nhờ kết hợp kinh nghiệm làm video giới thiệu nội dung sách trước đây của tôi và kinh nghiệm tạo bài giảng nhất quán cho Infron. Tôi thích những câu hỏi xuất hiện ở giữa bài giảng vì chúng khiến tôi phải suy nghĩ xem mình có bỏ lỡ điều gì hay thiếu sót gì không, và tôi cũng thích cách họ nói với tôi không chỉ về nội dung trong sách mà còn về những điều Tôi cần phải xem xét như một nhà phát triển. Và có thể nó không liên quan gì đến bài giảng này nhưng nếu xảy ra lỗi ở mã nguồn khi ghi bài giảng thì sẽ rất hữu ích khi có thể xem được quá trình giải quyết lỗi thay vì phải chỉnh sửa nội dung rồi thực hiện lại. . Mặc dù chỉ riêng bài giảng này không bao gồm hết nội dung của cuốn sách nhưng tôi cảm thấy như mình đã có cơ hội tìm hiểu chi tiết cuốn sách này. Và trong trường hợp của tôi, tôi nghĩ rằng tôi sẽ có thể dành thời gian để làm cho ít nhất những phần trong bài giảng này có thể hiểu được ở một mức độ nào đó cho đến khi bài giảng tiếp theo ra mắt. Vì lý do nào đó, các bài giảng/video của Baek Ki-seon dường như tạo ra niềm đam mê. Tôi luôn mong chờ bài giảng tiếp theo và bài giảng tiếp theo, đồng thời tôi sẽ làm quen lại với nội dung các bài giảng trước đây của Ki-seon Baek trước khi phần tiếp theo ra mắt. Cảm ơn bạn vì bài giảng tuyệt vời. ^^

      • whiteship
        지식공유자

        Có những điều thích và không thích khi sửa lỗi, vì vậy tôi đã cố gắng chỉnh sửa hầu hết các bài giảng gần đây của mình và trình bày chúng một cách gọn gàng. Sau này tôi chỉ có thể thu thập những phần có lỗi và đăng chúng lên YouTube, nhưng nhiều người rất nhạy cảm với những khía cạnh như vậy trong các bài giảng trả phí. Cảm ơn bạn đã phản hồi của bạn.

    월 ₩370,723

    5개월 할부 시

    ₩88,000

    백기선님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!