Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에 얘기해주는 것이다. 상수 인터페이스 상수 인터페이스란, 상수를 뜻하는 static final 필드로 가득찬 인터페이스를 의미한다. 이 상수들을 사용하려는 클래스에서는 정규화된 이름을 쓰는걸 피하고자 그 인터페이스를 구현하곤 한다. public interface PhysicalConstants { // 아보가드로 수 (1/몰) static final double AVOGADROS_NUMBER = ...; // 볼츠만 상수 (J/K) static final double BOL..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 Java8에서 부터 기존 인터페이스에 default 메소드를 추가할 수 있게 되었다. 이 메소드를 선언하면, 그 인터페이스를 구현한 후 디폴트 메소드를 재정의하지 않은 모든 클래스에서 디폴트 구현이 쓰이게 된다. 디폴트 메소드 public interface Calculator { int sum(int num1, int num2); int minus(int num1, int num2); default int multiple(int num1, int num2) { return num1 * num2; } } public class EngineeringCalc impleme..
Spring Boot를 이용해 특정 요구사항을 정해 API를 개발하는 스터디를 시작했다. 첫 주에 진행한 사항에 대한 리뷰를 정리하고자 한다. 💬 리뷰 정리 EOL(End Of Line) 이슈 .idea/** .gradle/** build/** application.yaml ⊖ 위와 같이 파일 가장 끝 부분에 공백을 추가하지 않으면, Github에서 코드를 볼 때 ⊖ 기호가 생긴다. 이러한 기호가 발생하는 이유는 POSIX 표준을 지키지 않았기 때문이다. IEEE 3.206 Line을 살펴보면 아래와 같은 내용이 적혀있는 것을 볼 수 있다. A sequence of zero or more non- characters plus a terminating character. IEEE 3.195 Incomple..
🛠️ 개발 환경 🍃 Spring : Spring Boot 2.7.8 🛠️ Java : Amazon corretto 17 @Nested @Nested is used to signal that the annotated class is a nested, non-static test class (i.e., an inner class) that can share setup and state with an instance of its enclosing class. The enclosing class may be a top-level test class or another @Nested test class, and nesting can be arbitrarily deep. non-static 클래스(내부 클래스)임을..
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 불변 클래스 인스턴스 내부 값을 수정할 수 없는 클래스 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 자바 플랫폼 라이브러리에도 String, 기본 타입의 박싱된 클래스들, BigInteger, BigDecimal이 여기에 속한다. 불변 클래스는 가변 클래스보다 설계 및 구현, 사용이 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 불변 클래스 생성 규칙 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않는다. 불변이라는 단어와 같이 변하지 않아야하기 때문에 객체 상태를 변경할 수 없도록 변경자를 제공하지 않아야 한다. 클..
서론 Effective Java 3/E를 공부하면서 Item5에 Supplier라는 것을 처음 보았다. 이 부분에 대해 이해가 가지 않는 부분이 있어, 늦게나마 스터디하는 팀원분들께 여쭤보았는데 내용이 흥미로워서 정리해본다! 함수형 프로그래밍 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. Java 8부터 이러한 방식으로 개발할 수 있도록 함수형 인터페이스를 지원한다. package java.util.function; @FunctionalInterface public interface Supplier { T get(); } 위 코드와 같이 함수형 인터페이스는 @FunctionalInterface 어노테이션을 지니고 있으며, 패키지를 들여다보면 정..