Skip to content

우아한테크코스 6기 레벨 2 이펙티브 자바 스터디입니다.

Notifications You must be signed in to change notification settings

woowacourse-study/2024-effective-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

우아한테크코스 6기 레벨 2 이펙티브 자바 스터디입니다.

Members

켬미 도비 폰드 프람
초롱 제우스 배키 호티

💡 현재 레포지토리에서는 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을 요청하는 것을 권장합니다.

글 목록

2 장

아이템🍳주제작성자의 글
1 생성자 대신 정적 팩터리 메서드를 고려하라 제우스의 글, 배키의 글
2 생성자에 매개변수가 많다면 빌더를 고려하라 제우스의 글, 배키의 글
3 private 생성자나 열거 타입으로 싱글턴임을 보증하라 폰드의 글, 켬미의 글
4 인스턴스화를 막으려거든 private 생성자를 사용하라 프람의 글, 호티의 글
5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 프람의 글, 호티의 글
6 불필요한 객체 생성을 피하라 폰드의 글, 켬미의 글
7 다 쓴 객체 참조를 해제하라 초롱의 글, 도비의 글
9 try-finally보다는 try-with-resources를 사용하라 초롱의 글, 도비의 글

3 장

아이템🍳주제작성자의 글
10 equals는 일반 규약을 지켜 재정의하라 도비의 글, 호티의 글
11 equals를 재정의하려거든 hashCode도 재정의하라 호티의 글, 도비의 글
12 toString을 항상 재정의하라 켬미의 글, 폰드의 글
13 clone 재정의는 주의해서 진행하라 폰드의 글, 켬미의 글
14 Comparable을 구현할지 고려하라 초롱의 글, 프람의 글

4 장

아이템🍳주제작성자의 글
15 클래스와 멤버의 접근 권한을 최소화하라 제우스의 글, 배키의 글
16 public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 제우스의 글, 배키의 글
17 변경 가능성을 최소화하라 초롱의 글, 프람의 글
18 상속보다는 컴포지션을 사용하라 켬미의 글
19 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 호티의 글, 프람의 글
20 추상 클래스보다는 인터페이스를 사용하라 도비의 글
21 인터페이스는 구현하는 쪽을 생각해 설계하라 폰드의 글, 배키의 글
22 인터페이스는 타입을 정의하는 용도로만 사용하라 폰드의 글, 배키의 글
23 태그 달린 클래스보다는 클래스 계층구조를 활용하라 호티의 글, 프람의 글
24 멤버 클래스는 되도록 static으로 만들라 호티의 글, 초롱의 글
25 톱 레벨 클래스는 한 파일에 하나만 담으라 초롱의 글, 호티의 글

5 장

아이템🍳주제작성자의 글
26 로 타입은 사용하지 말라 폰드의 글
27 비검사 경고를 제거하라 프람의 글, 배키의 글
28 배열보다는 리스트를 사용하라 배키의 글, 프람의 글
29 이왕이면 제네릭 타입으로 만들라 제우스의 글, 켬미의 글
30 이왕이면 제네릭 메서드로 만들라 제우스의 글, 켬미의 글
31 한정적 와일드카드를 사용해 API 유연성을 높이라 도비의 글
32 제네릭과 가변인수를 함께 쓸 때는 신중하라 초롱의 글
33 타입 안전 이종 컨테이너를 고려하라 폰드의 글, 초롱의 글

6 장

아이템🍳주제작성자의 글
34 int 상수 대신 열거 타입을 사용하라 제우스의 글, 배키의 글
35 ordinal 메서드 대신 인스턴스 필드를 사용하라 배키의 글, 제우스의 글
36 비트 필드 대신 EnumSet을 사용하라 켬미의 글
37 ordinal 인덱싱 대신 EnumMap을 사용하라 켬미의 글
38 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라 도비의 글
39 명명 패턴보다 애너테이션을 사용하라 폰드의 글, 호티의 글
40 @Override 애너테이션을 일관되게 사용하라 폰드의 글, 호티의 글

7 장

아이템🍳주제작성자의 글
42 익명 클래스보다는 람다를 사용하라 초롱의 글, 배키의 글
43 람다보다는 메서드 참조를 사용하라 배키의 글, 초롱의 글
45 스트림은 주의해서 사용하라 제우스의 글
46 스트림에서는 부작용 없는 함수를 사용하라 배키의 글
47 반환 타입으로는 스트림보다 컬렉션이 낫다 배키의 글
48 스트림 병렬화는 주의해서 적용하라 켬미의 글, 폰드의 글

8 장

아이템🍳주제작성자의 글
49 매개변수가 유효한지 검사하라 프람의 글, 제우스의 글
50 적시에 방어적 복사본을 만들라 제우스의 글
51 메서드 시그니처를 신중히 설계하라 호티의 글, 초롱의 글
52 다중정의는 신중히 사용하라 호티의 글
53 가변 인수는 신중히 사용하라 폰드의 글
53 가변 인수는 신중히 사용하라 폰드의 글

학습 방법

  • 페어로 나뉘어 매주 2개의 아이템을 선정 (유동적으로 학습량 변경)
  • 선정된 아이템 2개를 각자 학습 후, 다음 모임 전까지 2개 모두 발표 준비
  • 선정된 아이템 2개를 다음 모임 전 자정까지 (마감: 16시 00분)까지 레포지토리에 학습 내용 기록
  • 모임 당일 무작위로 준비한 아이템 2개를 페어 나누어 발표(인당 7~8분 발표)
  • 모든 발표가 마무리되면 15분의 백지 복습시간을 가지고 마무리한다.

질답

  • 본 저장소의 Discussions를 활용한다.
  • 질답 Question의 제목 컨벤션은 [아이템 XX] {간략한 질문 내용}
  • 기본은 모든 구성원이 답변이 가능하지만, 일주일 이상 문제 해결이 안될 시, 발표자들이 책임진다.
  • 질문 사항이 해결되면 문제 해결 label 추가한다.

PR 요청 방법

  • 레포지토리를 개인 저장소로 fork한다.
  • 자신이 맡은 'X장/아이템_XX' 폴더로 들어가서 README파일을 생성한다. (파일명 컨벤션 예시: 생성자_대신_정적_팩터리_메서드를_고려하라_{자신 닉네임}.md )
  • fork된 개인 원격 저장소에서 해당 내용을 모두 작성한다.
  • 작성을 완료하면 woowacourse-study:main 브랜치로 PR요청을 보낸다.

About

우아한테크코스 6기 레벨 2 이펙티브 자바 스터디입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published