멤버 클래스는 되도록 static으로 만들라. 중첩 클래스란 다른 클래스 내부에 정의된 클래스를 말합니다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야하며, 그 외에 쓰임새가 있다면 톱 레벨 클래스로 만들어야 합니다.(static) 💡 중첩 클래스의 종류 정적 멤버 클래스 비정적 멤버 클래스 익명 클래스 지역 클래스 정적 멤버 클래스 💡 특징 다른 클래스 안에 선언되는 클래스입니다. 바깥 클래스의 private 멤버에도 접근할 수 있습니다. 정적 멤버 클래스는 다른 정적 멤버와 똑같은 접근 규칙을 적용받습니다. 정적 멤버 클래스와 비정적 멤버 클래스의 차이 정적 멤버 클래스와 비정적 멤버 클래스의 구문상 차이는 static이 있냐 없냐의 차이지만 의미상의 차이는 생각보다 큽니다. 비정적 멤버 클래..
태그 달린 클래스보다는 클래스 계층구조를 활용하라 태그 달린 클래스란, 두 가지 이상의 의미를 표현할 수 있으며 현재 표현하는 의미를 태그 값으로 알려주는 클래스입니다. 🧨 예제 코드 Figure 클래스는 원(Circle)과 사각형(Rectangle)을 나타내는 클래스이고, 하나의 클래스에서 두 타입에 대응이 가능합니다. area 메서드는 타입별로 맞는 크기를 계산해 반환하기에 편해보일 수 있습니다. public class Figure { enum Shape { RECTANGLE, CIRCLE } // 공통 필드 final Shape shape; double length; double width; double radius; public Figure(double radius) { this.shape = S..
인터페이스는 타입을 정의하는 용도로만 사용하라 인터페이스는 자신을 구현한 클래스의 인스턴스를 참조할 수 았는 타입 역할을 합니다. 달리 말해, 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에게 말해주는 것입니다. 인터페이스는 오직 이 용도로만 사용해야 합니다. 인터페이스의 잘못된 예 🧨 예제 코드 인터페이스에는 메서드뿐만 아니라 상수도 작성할 수 있기 때문에 메서드 없이 상수만 선언하는 상수 인터페이스를 만들 수 있습니다. public interface PhysicalConstants { static final double AVOGADROS_NUMBER = 6.022_140_857e23; static final double BOLTZMAN_CONSTANT ..
인터페이스는 구현하는 쪽을 생각해 설계하라 Java 8버전 부터는 인터페이스에도 default 메서드를 추가할 수 있습니다. 해당 default 메서드를 사용하여 인터페이스 내에도 로직을 직접 추가할 수 있게 되었습니다. default 메서드를 선언하면, 구현한 모든 클래스에서 default 메서드가 쓰이게 됩니다. 💡예제 코드 Phone 인터페이스와 이를 구현한 IPhone 클래스가 있습니다. 그런데 기존에는 해당 인터페이스에 call 메서드만 있었는데 기능 추가를 위해 videoCall 메서드가 추가되야하는 상황이 되었습니다. 그래서 이 메서드를 인터페이스에 추가하면 해당 인터페이스를 구현하는 모든 하위 클래스에서 메서드를 구현하지 않으면 컴파일 에러가 발생합니다. 그렇기 때문에 모든 하위 클래스에 ..
- Total
- Today
- Yesterday
- pipeline architecture
- spring boot redisson destributed lock
- 람다 표현식
- service based architecture
- spring boot 엑셀 다운로드
- @ControllerAdvice
- spring boot redisson 분산락 구현
- spring boot poi excel download
- JDK Dynamic Proxy와 CGLIB의 차이
- pipe and filter architecture
- space based architecture
- redis sorted set으로 대기열 구현
- java ThreadLocal
- microkernel architecture
- 서비스 기반 아키텍처
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 공간 기반 아키텍처
- spring boot redisson sorted set
- redis 대기열 구현
- redis sorted set
- 트랜잭셔널 아웃박스 패턴 스프링부트
- transactional outbox pattern
- spring boot redis 대기열 구현
- java userThread와 DaemonThread
- 자바 백엔드 개발자 추천 도서
- polling publisher spring boot
- 레이어드 아키텍처란
- transactional outbox pattern spring boot
- spring boot excel download oom
- spring boot excel download paging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |