Java

Effective Java - 1회독 요약

iksadnorth 2023. 8. 15. 11:07

해당 게시물은 책 'Effective Java'를 참고하고 작성했습니다.

👣 개요

빠르게 훑어보며 각 부분이 큰 그림 속의 어떤 위치에 있는지 파악하는 단계.

Effective Java는 총 480쪽으로 이뤄져 하루에 100쪽을 읽는다는 목표로 1주일 내에 읽을 예정이다.

해당 회독은 글쓴이가 주로 어떤 전략으로 효율적인 코드를 작성하는지 집중하고
동시에 어떤 코드를 지양하는지에 집중할 계획이다. 
물론 위 계획은 독서 중에 수정될 수 있다.

 

👣 지향하는 코드

1. 의도를 알기 쉬운 함수, 변수명.

2. 불필요한 객체 생성이 없는 코드

 

👣 제 2장 - 객체 생성과 파괴

 

Effective Java 제 2장 - 객체 생성과 파괴

생성자보다 정적 팩토리 메서드! 오버로딩으로 다양하게 표현한다해도 각 생성자의 구체적인 내용을 알기 어렵다. 정적 팩토리 메서드를 통해 인스턴스 생성 메서드를 구성하면 다양한 타입,

ikadnorth.tistory.com

 

👣 제 3장 - 모든 객체의 공통 메서드

 

Effective Java 제 3장 - 모든 객체의 공통 메서드

Object.equals() 메서드를 재정의할 때, 주의해야 한다! 해당 내용은 2 회독 때, 더 자세히 정리할 계획이다. 내용이 굉장히 많다. Object.equals()를 재정의하거든 Object.hashCode()도 재정의해라! HashMap이나 H

ikadnorth.tistory.com

 

👣 제 4장 - 클래스와 인터페이스

 

Effective Java 제 4장 - 클래스와 인터페이스

클래스와 멤버의 접근 권한을 가능하다면 최소화해라! 필요한 부분만 외부 API로 노출시켜야 유지보수가 편하다. 모든 부분을 노출시키면 모든 부분을 지속적으로 지원해야 한다. public 클래스의

ikadnorth.tistory.com

 

👣 제 5장 - 제네릭

 

Effective Java 제 5장 - 제네릭

로 타입[List가 아니라 List로만 사용하는 형태]는 절대 사용마라! 컴파일러가 인지하지도 못하고 표현력도 떨어지므로 절대 사용하지 않아야 한다. 자바 측에서 로 타입을 문법적 오류로 규정짓

ikadnorth.tistory.com

 

👣 제 6장 - 열거 타입과 애너테이션

 

Effective Java 제 6장 - 열거 타입과 애너테이션

Enum 타입의 ordinal 메서드는 가급적 사용하지 말기! 이는 클래스 소스 코드 내의 열거 타입 순서가 바뀌면 변경되기에 지양해야 한다. 비트 필드 대신 EnumSet을 사용해라! 비트 필드란 Enum 타입을

ikadnorth.tistory.com

 

👣 제 7장 - 람다와 스트림

 

Effective Java 제 7장 - 람다와 스트림

가독성을 위해 익명 클래스보다 람다식을 사용해라! 만약 구현해야 하는 인터페이스의 메서드가 1개뿐이라면 익명 클래스와 람다식은 동일하다. 람다식은 최소의 표현으로 작동 방식에 대해 서

ikadnorth.tistory.com

 

👣 제 8장 - 메서드

 

Effective Java 제 8장 - 메서드

매개변수 유효성 검사를 필히 진행하라! 메서드에 입력된 값은 때때로 null인지, 양수인지, 허용한 범위 내에 있는지 등등을 검사해야 한다. 이 때, java 7부터 추가된 requireNonNull, checkFromToIndex 등등

ikadnorth.tistory.com

 

 

👣 제 9장 - 일반적인 프로그래밍 원칙

 

Effective Java 제 9장 - 일반적인 프로그래밍 원칙

정확한 답이 필요하다면 float와 double과 같은 타입은 사용하지 마라! 해당 타입은 부동소수점 연산에 사용되며, 근사값으로 계산할 수 있게 설계된 타입이다. 금융 관련 계산에서는 절대 사용하

ikadnorth.tistory.com

 

👣 제 10장 - 예외

 

Effective Java 제 10장 - 예외

예외를 흐름제어와 같은 예외가 아닌 상황에서 사용하지 말라! 아래와 같이 흐름제어를 위해 if문을 대체하는 코드를 사용하지 않아야 한다. 성능적으로 손해를 많이 볼 수 있고 무엇보다도 가

ikadnorth.tistory.com

 

👣 제 11장 - 동시성

 

Effective Java 제 11장 - 동시성

공유 중인 가변 데이터는 동기화해 사용해라! Synchronized 키워드로 데이터 변경은 하나의 쓰레드만 수행할 수 있도록 만들어라. 최대한 동기화 블럭 크기를 줄여라! 동기화 블럭을 크게 잡아두면

ikadnorth.tistory.com

 

👣 제 12장 - 직렬화

 

Effective Java 제 12장 - 직렬화

직렬화는 최대한 사용하지 말자! 직렬화는 코드 변경에 유연하지도 못하고 보안적으로 매우 위험하기 때문에 직렬화를 이용하면 허용하지 않는 방식으로 객체 인스턴스를 만들어낼 수 있기 때

ikadnorth.tistory.com

 

'Java' 카테고리의 다른 글

Effective Java 제 3장 - 모든 객체의 공통 메서드  (0) 2023.08.22
Effective Java 제 2장 - 객체 생성과 파괴  (0) 2023.08.22
Effective Java - 책 읽기 전략  (0) 2023.08.15
JUnit  (0) 2023.07.30
Thread in Java  (0) 2023.07.17