IT/Java

백기선님의 이팩티브 자바 완주 후기

yeTi 2022. 6. 2. 18:14

안녕하세요. yeTi입니다.
오늘은 백기선님의 유튜브 강좌 중 하나인 이팩티브 자바 의 완주 후기를 공유하려고 합니다.

강의 수강 계기

지난 후기 이후로 요즘 너무 기초 강좌만 보고 있나 라는 생각이 들면서, 좀 더 발전적인 다른 무언가를 해야겠다는 생각을 막연하게 가지고 있었습니다.

그러던 차에 백기선님의 지금까지 만들었던 강의들은 결국 이 강의를 만들기 위한 준비 작업이었습니다. 라는 영상이 이목을 끌었고, 궁극의 강의의 주제는 무엇일까? 라는 궁금증으로 바로 영상을 보게 되었네요.

영상에서 이펙티브 자바 Effective Java 3/E - YES24모든 자바개발자에게 권장하는 필독서중 하나 이지만 모든 개발자가 소화하기는 힘든 어려운 책 이라고 하는데요.
그래서 이펙티브 자바를 주제로 강의를 만들었다고 합니다.

그래서 먼저 유튜브에서 무료로 제공하는 강의들을 먼저 들어보기로하여 강의를 수강하게 됐습니다.

배운점

객체 생성을 직관적이고 유연하게 할 수 있는 방법

생성자는 다양한 매개변수 타입을 지원하려면 많은 수의 생성자를 만들어 둬야한다는 단점본인의 객체 타입만 반환할 수 있다는 제한이 있습니다.

이를 좀더 유연하게 대응하게 하기 위해 static 메소드를 활용하여 객체 생성을 할 수 있습니다.

또한 매개변수가 많다면 객체를 생성할 때 코드를 읽기가 힘들수 있는데요.
이를 직관적으로 표현할 수 있는것이 빌더 패턴입니다.

물론 빌더 패턴을 적용하기 위한 공수도 들기 때문에 적절하게 이득이 되는 경우에만 사용하기는 추천드립니다.

싱글톤 패턴을 적용하려면 Enum을 활용할 것

Class 타입으로 싱글톤 패턴을 적용할 수 있지만 멀티 쓰레드 환경에서 단일 인스턴스에 대한 것을 100% 보장할 수 없습니다.
이에 Enum 타입을 활용하면 단일 인스턴스 생성에 대한 보장을 받을 수 있지만, 상속을 사용할 수 없다는 단점이 있습니다.

Util 클래스는 명시적으로 생성자를 만들지 못하도록 하자

유틸 클래스처럼 static 함수를 사용하는 클래스들은 private 생성자를 사용해서 인스턴스화를 못하도록 합니다.

느낀점

강의 내용들이 익숙한 개념들이 아니라서 강의를 들어도 기억에 잘 남지 않았던거 같습니다.
하지만 개발을 하면서 궁금했던 부분들에 대해서 해소할 수 있는 부분들이 있었고 해당 지식들을 내 지식으로 만들어두면 개발을 함에 있어서 좋은 무기가 될 수 있겠다는 생각이 들었습니다.

개발을 하면서 숙제를 가지고 있는 분들이 보면 좋을 강의로 생각되어 어느정도 숙련된 개발자분들께 추천드립니다.