표준 함수형 인터페이스를 사용하라 자바가 람다를 지원하면서 상위 클래스의 기본 메서드를 재정의 후 원하는 동작을 구현하는 템플릿 메서드 패턴의 매력이 크게 줄었습니다. 이를 대체하는 현대적인 해법은 같은 효과의 함수 객체를 받는 정적 팩토리나 생성자를 제공하는 것입니다. 위 말을 조금 풀어서 설명하자면, 함수 객체를 매개변수로 받는 생성자와 메서드를 더 많이 만들어야하며, 이때 함수형 매개변수 타입을 올바르게 선택해야 합니다. 💡 함수형 인터페이스 아래 함수형 인터페이스는 잘 동작하지만 굳이 사용할 필요가 없습니다. 자바 표준 라이브러리에는 이미 같은 모양의 인터페이스가 준비되어 있기 때문입니다. 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..
- Total
- Today
- Yesterday
- service based architecture
- spring boot redisson sorted set
- spring boot 엑셀 다운로드
- transactional outbox pattern
- pipe and filter architecture
- spring boot redis 대기열 구현
- java ThreadLocal
- polling publisher spring boot
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot redisson destributed lock
- spring boot excel download paging
- spring boot redisson 분산락 구현
- java userThread와 DaemonThread
- redis 대기열 구현
- 람다 표현식
- pipeline architecture
- redis sorted set으로 대기열 구현
- transactional outbox pattern spring boot
- 서비스 기반 아키텍처
- redis sorted set
- 공간 기반 아키텍처
- 레이어드 아키텍처란
- 자바 백엔드 개발자 추천 도서
- @ControllerAdvice
- spring boot excel download oom
- spring boot poi excel download
- space based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- microkernel architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |