백기선님의 이팩티브 자바 완주 후기
안녕하세요. yeTi입니다.
오늘은 백기선님의 유튜브 강좌 중 하나인 이팩티브 자바 의 완주 후기를 공유하려고 합니다.
강의 수강 계기
지난 후기 이후로 요즘 너무 기초 강좌만 보고 있나
라는 생각이 들면서, 좀 더 발전적인 다른 무언가를 해야겠다는 생각을 막연하게 가지고 있었습니다.
그러던 차에 백기선님의 지금까지 만들었던 강의들은 결국 이 강의를 만들기 위한 준비 작업이었습니다. 라는 영상이 이목을 끌었고, 궁극의 강의의 주제는 무엇일까?
라는 궁금증으로 바로 영상을 보게 되었네요.
영상에서 이펙티브 자바 Effective Java 3/E - YES24 는 모든 자바개발자에게 권장하는 필독서중 하나
이지만 모든 개발자가 소화하기는 힘든 어려운 책
이라고 하는데요.
그래서 이펙티브 자바를 주제로 강의를 만들었다고 합니다.
그래서 먼저 유튜브에서 무료로 제공하는 강의들을 먼저 들어보기로하여 강의를 수강하게 됐습니다.
배운점
객체 생성을 직관적이고 유연하게 할 수 있는 방법
생성자
는 다양한 매개변수 타입을 지원하려면 많은 수의 생성자를 만들어 둬야한다는 단점
과 본인의 객체 타입만 반환할 수 있다는 제한
이 있습니다.
이를 좀더 유연하게 대응하게 하기 위해 static 메소드
를 활용하여 객체 생성을 할 수 있습니다.
또한 매개변수가 많다면 객체를 생성할 때 코드를 읽기가 힘들수 있는데요.
이를 직관적으로 표현할 수 있는것이 빌더 패턴
입니다.
물론 빌더 패턴을 적용하기 위한 공수도 들기 때문에 적절하게 이득이 되는 경우에만 사용하기는 추천드립니다.
싱글톤 패턴을 적용하려면 Enum을 활용할 것
Class
타입으로 싱글톤 패턴을 적용할 수 있지만 멀티 쓰레드 환경에서 단일 인스턴스에 대한 것을 100% 보장할 수 없습니다.
이에 Enum
타입을 활용하면 단일 인스턴스 생성에 대한 보장을 받을 수 있지만, 상속을 사용할 수 없다는 단점이 있습니다.
Util 클래스는 명시적으로 생성자를 만들지 못하도록 하자
유틸 클래스처럼 static 함수를 사용하는 클래스들은 private 생성자
를 사용해서 인스턴스화를 못하도록 합니다.
느낀점
강의 내용들이 익숙한 개념들이 아니라서 강의를 들어도 기억에 잘 남지 않았던거 같습니다.
하지만 개발을 하면서 궁금했던 부분들에 대해서 해소할 수 있는 부분들이 있었고 해당 지식들을 내 지식으로 만들어두면 개발을 함에 있어서 좋은 무기가 될 수 있겠다는 생각이 들었습니다.
개발을 하면서 숙제를 가지고 있는 분들이 보면 좋을 강의로 생각되어 어느정도 숙련된 개발자분들께 추천드립니다.