본문 바로가기
책/effective java

[effective java] 1장. 들어가기

by 2245 2023. 7. 17.
  • 이 책의 규칙 대부분은 아주 핵심적인 기본 원칙 몇 개에서 파생된다.
  • 바로 명료성(clartiy)과 단순성(simplicity)이다. 
  • 컴포넌트는 사용자를 놀라게 하는 동작을 해서는 절대 안된다. (정해진 동작이나 예측할 수 있는 동작만 수행해야 한다.)
  • 컴포넌트는 가능한 작되, 그렇다고 너무 작아서는 안 된다. (이 책에서 컴포넌트란 개별 메서드부터 여러 패키지로 이뤄진 복잡한 프레임워크까지 재사용 가능한 모든 소프트웨어 요소를 뜻한다.)
  • 코드는 복사되는 게 아니라 재사용되어야 한다.
  • 컴포넌트 사이의 의존성은 최소로 유지해야 한다.
  • 오류는 만들어지자마자 가능한 한 빨리 (되도록 컴파일 타임에) 잡아야 한다.
  • 이 규칙들을 맹종하진 말아야 하나, 어겨야 할 때는 합당한 이유가 있어야 한다.
  • 대다수 규율과 마찬가지로, 프로그래밍 고수 경지에 오르려면 먼저 정석이 되는 규칙들을 배운 후, 언제 그 규칙을 깨도 되느냐를 익혀야 한다. 

 

기술 용어

기술 용어는 대부분 자바 8용 언어 명세를 따르며, 주요 사항은 다음과 같다.

  • 자바가 지원하는 타입(type: 자료형)은 인터페이스(interface), 클래스(class), 배열(array), 기본 타입(primitive)까지 총 네 가지다.
  • 애너테이션(annotation)은 인터페이스의 일종이다.
  • 열거 타입(enum)은 클래스의 일종이다.
  • 네 가지 타입 중 처음 세 가지는 참조 타입(reference type)이라 한다. 즉, 클래스의 인스턴스와 배열은 객체(object)인 반면, 기본 타입 값을 그렇지 않다.
  • 클래스의 멤버로는 필드(field), 메서드(method), 멤버 클래스, 멤버 인터페이스가 있다.
  • 메서드 시그니처는 메서드 이름과 입력 매개변수(parameter)의 타입들로 이뤄진다(반환값의 타입은 시그니처에 포함되지 않는다.)
참고 애너테이션
코드에 메타데이터를 추가하는 방법입니다. 주석과 다르게 컴파일러에게 정보를 전달하거나 실행 시점에 특정 동작을 지정하는데 사용합니다. 
'@' 기호를 사용하여 표시하며, 다음과 같은 기능을 수행합니다.
1. 코드 문서화 2. 컴파일러 경고 및 에러 제어 3. 런타임 동작 지정 4. 리플렉션을 위한 메타데이터 추출
ex) @Override, @Deprecated

 

단, 일부 용어는 자바 언어 명세와 다르게 사용한다.

  • 상속(inheritance)을 서브클래싱(subclassing)과 동의어로 쓴다.
  • 인터페이스 상속 대신 "클래스가 인터페이스를 구현한다(implement)" 혹은 "인터페이스가 다른 인터페이스를 확장한다(extend)"고 표현한다.
  • 아무것도 명시하지 않은 접근 수준(access level)을 이야기할 때는 (기술적으로 정확한 이름인) 패키지 접근(package access) 대신 전통적인 패키지-프라이빗(package-private)을 쓴다.

 

또한, 자바 언어 명세가 정의하지 않은 기술 용어도 몇 개 사용하려 한다.

  • 공개 API(exported API), 줄여서 API(application programming interface)는 프로그래머가 클래스, 인터페이스, 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬화된 상태(serialized form)을 말한다. (언어 구성 요소 중 하나인 인터페이스와 헷갈리지 않게 하기 위해 흔히 쓰는 인터페이스 대신 API를 쓴다.)
  • API를 사용하는 프로그램 작성자(사람)을 그 API의 사용자(user)라 하고, API를 사용하는 클래스(코드)는 그 API의 클라이언트(client)라 한다.
  • 클래스, 인터페이스, 생성자, 멤버, 직렬화된 상태를 총칭해 API 요소(API element)라 한다.

 

 


출처

https://www.yes24.com/Product/Goods/65551284

 

이펙티브 자바 Effective Java 3/E - YES24

자바 플랫폼 모범 사례 완벽 가이드 - Java 7, 8, 9 대응자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브

www.yes24.com