본문 바로가기

분류 전체보기11

[Java/Stream] anyMatch, allMatch, noneMatch Stream API는 일부 조건에 따라 시퀀스 요소의 유효성을 검사할 수 있는 편리한 함수들을 제공하는데, anyMatch, allMatch, noneMatch가 그 역할을 한다. 3개의 함수들은 각각 Predicate을 파라미터로 받아 조건에 대한 일치 여부를 내려준다. 또한, 함수의 이름에서 알 수 있듯이, Matching 여부를 판단하지만 그에 따라 다른 결과를 반환하므로 상황에 맞는 함수를 사용해야 한다. Predicate은 무엇인가? Predicate은 함수형 인터페이스로, argument를 받아 boolean 값을 반환한다. Predicate에서 T는 predicate에 들어갈 input의 타입을 의미한다. ex) Predicate predicate = (num) -> num < 10; any.. 2024. 2. 21.
[Java/Spring] Resilience4j - Circuit Breaker (3). 적용 Resilience4j - Circuit Breaker (3). 적용 이전 2개의 포스트에서 서킷브레이커는 어떻게 작동하는지, Resilience4j의 서킷브레이커를 개발자의 의도대로 설정하는 방법에 대해 알아보았습니다. 마지막 포스트는 앞서 설정한 서킷브레이커를 적용시키는 방법 & 테스트하는 방법에 대해 작성하였습니다. Circuit Breaker 적용하기 생성된 서킷브레이커는 아래와 같이 @CircuitBreaker 어노테이션을 사용하여 쉽게 적용할 수 있습니다. 적용할 때, 어떤 서킷브레이커를 사용할 지(name), 그리고 에러가 발생한 경우 어떤 메서드를 통해 처리할 지(fallbackMethod) 지정해야 합니다. 다음 코드는 서킷브레이커의 작동 여부를 확인하기 위해 간단하게 짜놓은 로직입니다... 2023. 2. 13.
[Java/Spring] Resilience4j - Circuit Breaker (2). 설정 Resilience4j - Circuit Breaker (2). 설정 지난 포스트에서는 Resilience4j의 Circuit Breaker가 어떤 것인지, 그리고 어떻게 작동하는 지 알아보았습니다. 이번 포스트에서는 Resilience4j가 의도대로 작동할 수 있도록 설정하는 방법과 어떻게 인스턴스를 생성할 수 있는지 작성하려고 합니다. Resilience4j 라이브러리 추가하기 Circuit Breaker를 관리 및 적용하기에 앞서, 다음 라이브러리들을 추가해야 합니다. implementation 'io.github.resilience4j:resilience4j-spring-boot3' // 필수 implementation 'org.springframework.boot:spring-boot-start.. 2023. 2. 11.
[Java/Spring] Resilience4j - Circuit Breaker (1). 정의 Resilience4j - CircuitBreaker (1). 정의 이번 포스트는 스프링에서 활용할 수 있는 서킷브레이커인 Resilience4j Circuit Breaker에 대해 작성되었습니다. 정리하다 보니 내용이 꽤 되는 관계로, 3개의 포스트(정의, 설정, 적용)로 나눠서 작성할 예정입니다. Resilience4j ? Resilience4j는 함수형 프로그래밍을 위해 설계된 가벼운 fault tolerance 라이브러리 입니다. Resilience4j는 Circuit Breaker, Rate Limiter, Retry 또는 Bulkhead를 사용하여 함수형 인터페이스, 람다식, 또는 참조형 메서드를 향상시키는 데코레이터를 제공합니다. 한번에 둘 이상의 데코레이터를 쓸 수 있으며, 필요한 데코레이.. 2023. 2. 11.