표준 함수형 인터페이스를 사용하라 자바가 람다를 지원하면서 상위 클래스의 기본 메서드를 재정의 후 원하는 동작을 구현하는 템플릿 메서드 패턴의 매력이 크게 줄었습니다. 이를 대체하는 현대적인 해법은 같은 효과의 함수 객체를 받는 정적 팩토리나 생성자를 제공하는 것입니다. 위 말을 조금 풀어서 설명하자면, 함수 객체를 매개변수로 받는 생성자와 메서드를 더 많이 만들어야하며, 이때 함수형 매개변수 타입을 올바르게 선택해야 합니다. 💡 함수형 인터페이스 아래 함수형 인터페이스는 잘 동작하지만 굳이 사용할 필요가 없습니다. 자바 표준 라이브러리에는 이미 같은 모양의 인터페이스가 준비되어 있기 때문입니다. java.util.function 패키지에는 다양한 용도의 표준 함수형 인터페이스가 있습니다. @Functi..
람다보다는 메서드 참조를 사용하라 람다가 익명 클래스보다 나은 점 중에서 가장 큰 특징은 간결함입니다. 그런데 자바에는 람다보다도 더 간결하게 만드는 방법이 있습니다. 바로 메서드 참조(Method Reference)입니다. 💡 기본적인 코드 public class Example { public static void main(String[] args) { List foods = Arrays.asList( new Food("햄버거"), new Food("피자"), new Food("치킨") ); for (Food food : foods) { System.out.println(food); } } } 💡 람다식을 이용한 코드 public class Example { public static void main(..
익명클래스 보다는 람다를 사용하라 자바 8버전 이전에는 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용하곤 했습니다. 이런 인터페이스의 인스턴스를 함수 객체라고 하여, 특정 함수나 동작을 나타내는데 사용했습니다. 💡 익명 클래스 public class Example { public static void main(String[] args) { List strings = Arrays.asList("book", "apple", "car"); Collections.sort(strings, new Comparator() { @Override public int compare(String o1, String o2) { return Integer.compare(o1.length(), o2.leng..
정의하려는 것이 타입이라면 마커 인터페이스를 사용하라 아무 메서드도 담고 있지 않고, 단지 자신을 구현하는 클래스가 특정 속성을 가짐을 표시해주는 인터페이스를 마커 인터페이스라고 합니다. 앞에서 나온 Cloneable 인터페이스, Serializable 인터페이스가 좋은 예입니다. Cloneable 인터페이스의 경우 복제할 수 있다는것을 알리며, Serializable 인터페이스의 경우는 ObjectOutputStream을 통해 자신을 직렬화할 수 있다고 알립니다. 💡마커 인터페이스가 마커 애너테이션보다 나은점 마커 인터페이스는 이를 구현한 클래스의 인스턴스들을 구분하는 타입으로 사용할 수 있으나 마커 애너테이션은 그렇지 않습니다. 마커 인터페이스는 타입이기 때문에 컴파일 시점에서 오류를 잡을 수 있지만..
- Total
- Today
- Yesterday
- polling publisher spring boot
- java userThread와 DaemonThread
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot excel download oom
- spring boot 엑셀 다운로드
- spring boot redisson 분산락 구현
- redis 대기열 구현
- spring boot redisson destributed lock
- pipeline architecture
- spring boot excel download paging
- JDK Dynamic Proxy와 CGLIB의 차이
- pipe and filter architecture
- redis sorted set
- spring boot poi excel download
- java ThreadLocal
- 공간 기반 아키텍처
- space based architecture
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 람다 표현식
- microkernel architecture
- transactional outbox pattern spring boot
- spring boot redis 대기열 구현
- 레이어드 아키텍처란
- redis sorted set으로 대기열 구현
- 자바 백엔드 개발자 추천 도서
- spring boot redisson sorted set
- transactional outbox pattern
- service based architecture
- 서비스 기반 아키텍처
- @ControllerAdvice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |