우아한테크코스 6기 레벨 2 이펙티브 자바 스터디입니다.
켬미 | 도비 | 폰드 | 프람 |
초롱 | 제우스 | 배키 | 호티 |
💡 현재 레포지토리에서는 github Action이 작동 중 입니다.
main branch에 .md 형식의 파일이 push 될 때 작성된 README의
## 글 목록
이 자동으로 업데이트되고 있습니다.fork한 repo에서도 main brach에 commit + push를 하면 github Action으로 인해 README.md 파일이 업데이트 됩니다.
이로 인해
forked_repo/main
->main
으로 PR 요청 시에 conflict가 발생할 수 있으니 별도의 branch를 통해 PR을 요청하는 것을 권장합니다.
아이템🍳 | 주제 | 작성자의 글 |
---|---|---|
1 | 생성자 대신 정적 팩터리 메서드를 고려하라 | 제우스의 글, 배키의 글 |
2 | 생성자에 매개변수가 많다면 빌더를 고려하라 | 제우스의 글, 배키의 글 |
3 | private 생성자나 열거 타입으로 싱글턴임을 보증하라 | 폰드의 글, 켬미의 글 |
4 | 인스턴스화를 막으려거든 private 생성자를 사용하라 | 프람의 글, 호티의 글 |
5 | 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 | 프람의 글, 호티의 글 |
6 | 불필요한 객체 생성을 피하라 | 폰드의 글, 켬미의 글 |
7 | 다 쓴 객체 참조를 해제하라 | 초롱의 글, 도비의 글 |
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 | 배열보다는 리스트를 사용하라 | 배키의 글, 프람의 글 |
29 | 이왕이면 제네릭 타입으로 만들라 | 제우스의 글, 켬미의 글 |
30 | 이왕이면 제네릭 메서드로 만들라 | 제우스의 글, 켬미의 글 |
31 | 한정적 와일드카드를 사용해 API 유연성을 높이라 | 도비의 글 |
32 | 제네릭과 가변인수를 함께 쓸 때는 신중하라 | 초롱의 글 |
33 | 타입 안전 이종 컨테이너를 고려하라 | 폰드의 글, 초롱의 글 |
아이템🍳 | 주제 | 작성자의 글 |
---|---|---|
34 | int 상수 대신 열거 타입을 사용하라 | 제우스의 글, 배키의 글 |
35 | ordinal 메서드 대신 인스턴스 필드를 사용하라 | 배키의 글, 제우스의 글 |
36 | 비트 필드 대신 EnumSet을 사용하라 | 켬미의 글 |
37 | ordinal 인덱싱 대신 EnumMap을 사용하라 | 켬미의 글 |
38 | 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라 | 도비의 글 |
39 | 명명 패턴보다 애너테이션을 사용하라 | 폰드의 글, 호티의 글 |
40 | @Override 애너테이션을 일관되게 사용하라 | 폰드의 글, 호티의 글 |
아이템🍳 | 주제 | 작성자의 글 |
---|---|---|
42 | 익명 클래스보다는 람다를 사용하라 | 초롱의 글, 배키의 글 |
43 | 람다보다는 메서드 참조를 사용하라 | 배키의 글, 초롱의 글 |
45 | 스트림은 주의해서 사용하라 | 제우스의 글 |
46 | 스트림에서는 부작용 없는 함수를 사용하라 | 배키의 글 |
47 | 반환 타입으로는 스트림보다 컬렉션이 낫다 | 배키의 글 |
48 | 스트림 병렬화는 주의해서 적용하라 | 켬미의 글, 폰드의 글 |
아이템🍳 | 주제 | 작성자의 글 |
---|---|---|
49 | 매개변수가 유효한지 검사하라 | 프람의 글, 제우스의 글 |
50 | 적시에 방어적 복사본을 만들라 | 제우스의 글 |
51 | 메서드 시그니처를 신중히 설계하라 | 호티의 글, 초롱의 글 |
52 | 다중정의는 신중히 사용하라 | 호티의 글 |
53 | 가변 인수는 신중히 사용하라 | 폰드의 글 |
53 | 가변 인수는 신중히 사용하라 | 폰드의 글 |
- 페어로 나뉘어 매주 2개의 아이템을 선정 (유동적으로 학습량 변경)
- 선정된 아이템 2개를 각자 학습 후, 다음 모임 전까지 2개 모두 발표 준비
- 선정된 아이템 2개를 다음 모임 전 자정까지 (마감: 16시 00분)까지 레포지토리에 학습 내용 기록
- 모임 당일 무작위로 준비한 아이템 2개를 페어 나누어 발표(인당 7~8분 발표)
- 모든 발표가 마무리되면 15분의 백지 복습시간을 가지고 마무리한다.
- 본 저장소의
Discussions
를 활용한다. - 질답 Question의 제목 컨벤션은
[아이템 XX] {간략한 질문 내용}
- 기본은 모든 구성원이 답변이 가능하지만, 일주일 이상 문제 해결이 안될 시, 발표자들이 책임진다.
- 질문 사항이 해결되면 문제 해결 label 추가한다.
- 레포지토리를 개인 저장소로 fork한다.
- 자신이 맡은 'X장/아이템_XX' 폴더로 들어가서 README파일을 생성한다. (파일명 컨벤션 예시: 생성자_대신_정적_팩터리_메서드를_고려하라_{자신 닉네임}.md )
- fork된 개인 원격 저장소에서 해당 내용을 모두 작성한다.
- 작성을 완료하면 woowacourse-study:main 브랜치로 PR요청을 보낸다.