IT 전략본부에서 진행되는 '이펙티브 자바 3판' 발표 정보입니다.
예제 코드 및 영상 링크를 포함합니다.
(Since 2022年12月07日 ~ )
1) 매주 수요일 1주 2개의 아이템을 순환하여 발표한다.
> 단, 예외적 사항이 있는 경우 사전 협의를 통해 발표일을 조정할 수 있다.
2) 공유의 목표는 진도를 빠르게 달성하기나 완독이 아니다.
3) 주제에서 언급되는 세부적 내용을 탐구하고 공유한다.
[발표 이전]
1) 아이템별 예제 코드 및 문서(.MD) 파일을 작성하고 발표 이전에 PR(pull request) 한다.
> 가능한 이전 일에 PR하여 사전 내용 점검을 통해 누락 요소를 체크한다.
2) 문서는 책을 다시 읽지 않더라도 의도하는 바를 축약해서 이해할 수 있을 수준으로 작성한다.
3) 발표 진행 우선의 조건은 책에서 전달하는 의도에 집중한다.
> 가능하다면, +@ 부가적 정보를 첨부하여 전달한다. (본 내용의 전달을 우선한다.)
> ex: 아이템3 Singleton > 잘못된 Singleton 케이스를 책에서는 언급하지 않았다.
해당 내용은 부가적 정보라 볼 수 있다. (무작정 연계되는 주제는 끝이 없음을 경계)
[발표 ~ 발표 이후]
1) 정적인 서면을 통한 읽기식 발표는 지양한다.
> 서면이 표현하는 한계적 부분을 뛰어넘기 위해 공유 자리를 갖는 것이다.
> 설명 과정에서 라이브 코딩이 유리한 경우에 발표는 코딩을 통한 과정을 발표한다.
2) 발표 내용은 녹화하고 업로드 하여 링크 정보를 하기의 방식으로 공유한다.
3) README.md 파일에 발표 내용 문서 및 영상 정보를 추가한다.
* 본 내용은 진행 과정에서 더 나은 방안으로 수정될 수 있다.
documents: 아이템별 정리된 문서
src: 아이템별 정리된 소스
| Date | Subject | Speaker | Link |
|---|---|---|---|
| 22.12.7 | 아이템 1~2 | 김보성 | Youtube |
| 22.12.14 | 아이템 3 | 서태한 | - |
| 22.12.17 | 아이템 3 - Assist | 김보성 | Youtube |
| 22.12.21 | 아이템 4 | 유경호 | Youtube |
| 22.12.21 | 아이템 5 | 박상봉 | Youtube |
| 22.12.21 | 아이템 6 | 배성진 | Youtube |
| 22.12.28 | 아이템 7~8 | 김성열 | 아이템 7 아이템 8 |
| 23.1.4 | 아이템 9 | 윤은상 | Youtube |
| 23.1.4 | 아이템 10 | 김승현 | Youtube |
| 23.1.11 | 아이템 11 | 서태한 | Youtube |
| 23.1.11 | 아이템 12 | 배성진 | Youtube |
| 23.1.18 | 아이템 13 | 윤은상 | Youtube |
| 23.1.18 | 아이템 14 | 유경호 | Youtube |
| 23.2.1 | 아이템 15 | 김성열 | Youtube |
| 23.2.1 | 아이템 16 | 박상봉 | Youtube |
| 23.2.1 | 아이템 17 | 서태한 | Youtube |
| 23.2.8 | 아이템 18 | 윤은상 | Youtube |
| 23.2.8 | 아이템 19 | 염찬양 | Youtube |
| 23.2.8 | 아이템 20 | 배성진 | Youtube |
| 23.2.15 | 아이템 21 | 유경호 | Youtube |
| 23.2.15 | 아이템 22 | 박상봉 | Youtube |
| 23.2.21 | 아이템 23 | 김성열 | Youtube |
| 23.2.21 | 아이템 24 | 윤은상 | Youtube |
| 23.2.28 | 아이템 25 | 서태한 | Youtube |
| 23.2.28 | 아이템 26 | 배성진 | Youtube |
| 23.3.8 | 아이템 27 | 유경호 | Youtube |
| 23.3.8 | 아이템 28 | 염찬양 | Youtube |
| 23.3.15 | 아이템 29 | 박상봉 | Youtube |
| 23.3.15 | 아이템 30 | 김성열 | Youtube |
| 23.3.22 | 아이템 31 | 서태한 | Youtube |
| 23.3.22 | 아이템 32 | 배성진 | Youtube |
| 23.4.5 | 아이템 33 | 염찬양 | Youtube |
| 23.4.5 | DB 특집 1 | 윤은상 | |
| 23.4.12 | DB 특집 2 | 박상봉 | |
| 23.4.12 | DB 특집 3 | 김성열 |
아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라
아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라
아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라
아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 - v. Assist
아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
아이템 6. 불필요한 객체 생성을 피하라
아이템 7. 다 쓴 객체 참조를 해제하라
아이템 8. finalizer와 cleaner 사용을 피하라
아이템 9. try-finally보다는 try-with-resources를 사용하라
아이템 10. equals는 일반 규약을 지켜 재정의하라.
아이템 11. equals는 재정의하려거든 hashCode도 재정의하라
아이템 12. toString을 항상 재정의하라
아이템 13. clone 재정의는 주의해서 진행하라
아이템 14. Comparable을 구현할지 고려하라
아이템 15. 클래스와 멤버의 접근 권한을 최소화하라
아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
아이템 17. 변경 가능성을 최소화하라
아이템 18. 상속보다는 컴포지션을 사용하라
아이템 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라
아이템 20. 추상 클래스보다는 인터페이스를 우선하라
아이템 21. 인터페이스는 구현하는 쪽을 생각해 설계하라
아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라
아이템 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라
아이템 24. 멤버 클래스는 되도록 static으로 만들라
아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라
아이템 26. 로 타입은 사용하지 말라
아이템 27. 비검사 경고를 제거하라
아이템 28. 배열보다는 리스트를 사용하라
아이템 30. 이왕이면 제네릭 메서드로 만들라
아이템 31.한정적 와일드 카드를 사용해 API 유연성을 높이라
아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라
아이템 33. 타입 안전 이종 컨테이너를 고려하라