매주 화요일, 목요일 8:00 ~ 8:50
- 해당 회차의 모든 item을 공부해오기
- 자신이 맡은 아이템 요약 및 느낀 점 정리해오기
- 5분 간 발표 진행 후 5분 간 질문 및 토론 진행
| 순 | 아이템 | 회차 | 주제 | 담당 |
|---|---|---|---|---|
| 1 | 2장 객체 생성과 파괴 | 1회차 (2/27 목) | 생성자 대신 정적 팩터리 메서드를 고려하라 | 가현 |
| 2 | 생성자에 매개변수가 많다면 빌더를 고려하라 | 태훈 | ||
| 3 | private 생성자나 열거 타입으로 싱글턴임을 보증하라 | 은선 | ||
| 4 | 인스턴스화를 막으려거든 private 생성자를 사용하라 | 종헌 | ||
| 5 | 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 | 지승 | ||
| 6 | 2회차 (3/4 화) | 불필요한 객체 생성을 피하라 | 가현 | |
| 7 | 다 쓴 객체 참조를 해제하라 | 태훈 | ||
| 8 | finalizer와 cleaner 사용을 피하라 | 은선 | ||
| 9 | try-finally보다는 try-with-resources를 사용하라 | 종헌 | ||
| 10 | 3장 모든 객체의 공통 메서드 | equals는 일반 규약을 지켜 재정의하라 | 지승 | |
| 11 | 3회차 (3/6 목) | equals를 재정의하려거든 hashCode도 재정의하라 | 가현 | |
| 12 | toString을 항상 재정의하라 | 태훈 | ||
| 13 | clone 재정의는 주의해서 진행하라 | 은선 | ||
| 14 | Comparable을 구현할지 고려하라 | 종헌 | ||
| 15 | 4장 클래스와 인터페이스 | 클래스와 멤버의 접근 권한을 최소화하라 | 지승 | |
| 16 | 4회차 (3/11 화) | public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 | 가현 | |
| 17 | 변경 가능성을 최소화하라 | 태훈 | ||
| 18 | 상속보다는 컴포지션을 사용하라 | 은선 | ||
| 19 | 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 | 종헌 | ||
| 20 | 추상 클래스보다는 인터페이스를 우선하라 | 지승 | ||
| 21 | 5회차 (3/13 목) | 인터페이스는 구현하는 쪽을 생각해 설계하라 | 가현 | |
| 22 | 인터페이스는 타입을 정의하는 용도로만 사용하라 | 태훈 | ||
| 23 | 태그 달린 클래스보다는 클래스 계층구조를 활용하라 | 은선 | ||
| 24 | 멤버 클래스는 되도록 static으로 만들라 | 종헌 | ||
| 25 | 톱레벨 클래스는 한 파일에 하나만 담으라 | 지승 | ||
| 26 | 5장 제네릭 | 6회차 (3/18 화) | 로 타입은 사용하지 말라 | 가현 |
| 27 | 비검사 경고를 제거하라 | 태훈 | ||
| 28 | 배열보다는 리스트를 사용하라 | 은선 | ||
| 29 | 이왕이면 제네릭 타입으로 만들라 | 종헌 | ||
| 30 | 이왕이면 제네릭 메서드로 만들라 | 지승 | ||
| 31 | 7회차 (3/20 목) | 한정적 와일드카드를 사용해 API 유연성을 높이라 | 가현 | |
| 32 | 제네릭과 가변인수를 함께 쓸 때는 신중하라 | 태훈 | ||
| 33 | 타입 안전 이종 컨테이너를 고려하라 | 은선 | ||
| 34 | 6장 열거 타입과 애너테이션 | int 상수 대신 열거 타입을 사용하라 | 종헌 | |
| 35 | ordinal 메서드 대신 인스턴스 필드를 사용하라 | 지승 | ||
| 36 | 8회차 (3/25 화) | 비트 필드 대신 EnumSet을 사용하라 | 가현 | |
| 37 | ordinal 인덱싱 대신 EnumMap을 사용하라 | 태훈 | ||
| 38 | 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라 | 은선 | ||
| 39 | 명명 패턴보다 애너테이션을 사용하라 | 종헌 | ||
| 40 | @Override 애너테이션을 일관되게 사용하라 | 지승 | ||
| 41 | 9회차 (3/27 목) | 정의하려는 것이 타입이라면 마커 인터페이스를 사용하라 | 가현 | |
| 42 | 7장 람다와 스트림 | 익명 클래스보다는 람다를 사용하라 | 태훈 | |
| 43 | 람다보다는 메서드 참조를 사용하라 | 은선 | ||
| 44 | 표준 함수형 인터페이스를 사용하라 | 종헌 | ||
| 45 | 스트림은 주의해서 사용하라 | 지승 | ||
| 46 | 10회차 (4/1 화) | 스트림에서는 부작용 없는 함수를 사용하라 | 가현 | |
| 47 | 반환 타입으로는 스트림보다 컬렉션이 낫다 | 태훈 | ||
| 48 | 스트림 병렬화는 주의해서 적용하라 | 은선 | ||
| 49 | 8장 메서드 | 매개변수가 유효한지 검사하라 | 종헌 | |
| 50 | 적시에 방어적 복사본을 만들라 | 지승 | ||
| 51 | 11회차 (4/3 목) | 메서드 시그니처를 신중히 설계하라 | 가현 | |
| 52 | 다중정의는 신중히 사용하라 | 태훈 | ||
| 53 | 가변인수는 신중히 사용하라 | 은선 | ||
| 54 | null이 아닌, 빈 컬렉션이나 배열을 반환하라 | 종헌 | ||
| 55 | 옵셔널 반환은 신중히 하라 | 지승 | ||
| 56 | 12회차 (4/15 화) | 공개된 API 요소에는 항상 문서화 주석을 작성하라 | 가현 | |
| 57 | 9장 일반적인 프로그래밍 원칙 | 지역변수의 범위를 최소화하라 | 태훈 | |
| 58 | 전통적인 for 문보다는 for-each 문을 사용하라 | 은선 | ||
| 59 | 라이브러리를 익히고 사용하라 | 종헌 | ||
| 60 | 정확한 답이 필요하다면 float와 double은 피하라 | 지승 | ||
| 61 | 13회차 (4/17 목) | 박싱된 기본 타입보다는 기본 타입을 사용하라 | 가현 | |
| 62 | 다른 타입이 적절하다면 문자열 사용을 피하라 | 태훈 | ||
| 63 | 문자열 연결은 느리니 주의하라 | 은선 | ||
| 64 | 객체는 인터페이스를 사용해 참조하라 | 종헌 | ||
| 65 | 리플렉션보다는 인터페이스를 사용하라 | 지승 | ||
| 66 | 14회차 (4/22 화) | 기본 타입은 바꾸지 말고 그대로 두어라 | 가현 | |
| 67 | 인터페이스의 매개변수를 명확하게 하라 | 태훈 | ||
| 68 | 불변 클래스는 내부에서 불변 객체를 사용하라 | 은선 | ||
| 69 | 10장 예외 | 컬렉션은 직접 다루지 말고 필드를 다루라 | 종헌 | |
| 70 | 상속에서 문제가 생기지 않도록 하라 | 지승 | ||
| 71 | 15회차 (4/24 목) | 생성자 사용을 최소화하라 | 가현 | |
| 72 | 소스에서 상수에 접근하지 말고 변수로 참조하라 | 태훈 | ||
| 73 | 쓰지 않은 코드를 삭제하라 | 은선 | ||
| 74 | 주의사항을 명확하게 작성하라 | 종헌 | ||
| 75 | 재사용을 고려하라 | 지승 | ||
| 76 | 16회차 (4/29 화) | 반복 코드 피하라 | 가현 | |
| 77 | 구조적 코드를 작성하라 | 태훈 | ||
| 78 | 11장 동시성 | 시간 복잡도에 신경 써라 | 은선 | |
| 79 | 직관적으로 설계하라 | 종헌 | ||
| 80 | 메모리 관리에 신경 써라 | 지승 | ||
| 81 | 17회차 (5/1 목) | 컴퓨터 용량 최적화 | 가현 | |
| 82 | 트랜잭션 관리를 철저히 하라 | 태훈 | ||
| 83 | 인터페이스에서 발생하는 오류를 잡아라 | 은선 | ||
| 84 | 하드웨어 최적화를 고려하라 | 종헌 | ||
| 85 | 12장 직렬화 | 확장성과 유연성 확보 | 지승 | |
| 86 | 18회차 (5/8 목) | 상속 활용을 최적화하라 | 가현 | |
| 87 | 라이브러리 최적화 | 태훈 | ||
| 88 | 실시간 알림을 적용하라 | 은선 | ||
| 89 | 테스트 자동화에 집중하라 | 종헌 | ||
| 90 | 에러 핸들링 철저히 하라 | 지승 |