일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- AccessLevel
- JsonType
- fotmatter
- AOP target
- spring
- vaultTemplate
- Starter
- java
- Save Action
- AOP this
- restTemple
- ResponseBodyAdvice
- findAny
- 쓰레드 안전
- 개방/폐쇄 원칙
- AOP 매개변수
- findFirst
- ClientHttpRequestInterceptor
- 포맷터
- jpa
- gradle
- Stream
- RestTemplate
- LogInterceptor
- AOP
- @AutoConfiguration
- auto configuration
- JsonStringType
- Thread Safety
- Today
- Total
목록java (12)
맨땅에 헤딩하는 개바른자
함수형 인터페이스 함수형 인터페이스 파라미터 리턴 Method명 설명 함수형 인터페이스 파라미터 리턴 Method명 설명 Runnable run() 노 파람, 노 반환 함수 Callable T call() 한 객체를 반환하는 함수 Supplier와 동일하지만 Exception 기능이 추가 됨 Supplier T accept() 한 객체를 반환하는 함수 Consumer T accept() 파라미터를 받아 아무것도 반환하지 않는 함수 Function T R apply() 가장 일반적인 함수형 인터페이스 인자를 받아 결과를 반환하는 함수 입니다. Predicate T boolean test() 파라미터를 받아 조건에 따라 true, false를 반환하는 함수 UnaryOperator T T identity()..
git https://github.com/ymwoo88/stream/tree/feature/groupingBy-%EC%98%88%EC%A0%9C 설명 Stream 안의 데이터에 classifier를 적용했을 때 결과값이 같은 값끼리 List로 모아서 Map의 형태로 반환해주는 Collector 입니다. 이때 키는 classifier의 결과값, value는 그 결과값을 같는 데이터들 입니다. groupingBy T 유형의 입력 요소에 대한 "그룹화 기준" 작업을 구현하고 분류 함수에 따라 요소를 그룹화하고 결과를 Map에 반환하는 Collector를 반환합니다. 분류 함수는 요소를 일부 키 유형 K에 매핑합니다. 수집기는 키가 분류 함수를 입력 요소에 적용한 결과 값이고 해당 값이 입력 요소를 포함하는 목..
git https://github.com/ymwoo88/stream/tree/feature/find%EA%B8%B0%EB%8A%A5-%EC%98%88%EC%A0%9C 설명 findFirst Stream 안의 첫번째 데이터를 반환합니다. Stream이 비어있다면 빈 Optional을 반환합니다. 이 스트림의 첫 번째 요소를 설명하는 옵션을 반환하거나 스트림이 비어 있으면 빈 옵션을 반환합니다. 스트림에 발생 순서가 없으면 모든 요소가 반환될 수 있습니다. 이것은 단락 단자 작동입니다. Returns: 이 스트림의 첫 번째 요소를 설명하는 Optional 또는 스트림이 비어 있는 경우 빈 Optional Throws: NullPointerException – 선택한 요소가 null인 경우 Optional f..
git https://github.com/ymwoo88/stream/tree/feature/tomap-%EC%98%88%EC%A0%9C 설명 Stream 안의 데이터를 map의 형태로 반환해주는 collector 입니다. KeyMapper는 데이터를 map의 key로 변환하는 Function을 의미합니다. valueMapper는 데이터를 map의 value로 변환하는 Function을 의미합니다. 저같은 경우 다중 for문에서 if매핑 시 자주사용하는 방식인데 첫번째 for문을 toMap으로 키/값으로 선언한 후 두번째 for문을 돌리면서 map.get(key)로 매칭시키는 로직으로짜게되면 연산을 상당히 많이 줄일 수 있습니다. collecor toMap 제공된 매핑 함수를 입력 요소에 적용한 결과 키와..
git https://github.com/ymwoo88/stream/tree/feature/reduce-%EC%98%88%EC%A0%9C 설명 Stream.reduce(accumulator) 함수는 Stream의 요소들을 하나의 데이터로 만드는 작업을 수행합니다. 예를 들어, Stream에서 1부터 10까지 숫자가 전달될 때, 이 값을 모두 합하여 55의 결과가 리턴되도록 만들 수 있습니다. 여기서 연산을 수행하는 부분은 accumulator 함수이며, 직접 구현해서 인자로 전달해야 합니다. reduce 제공된 ID 값과 연관 누적 함수를 사용하여 이 스트림의 요소에 대한 축소를 수행하고 축소된 값을 반환합니다. 이는 다음과 같습니다. T 결과 = 동일성; for (T 요소 : 이 스트림) result ..
git https://github.com/ymwoo88/stream/tree/feature/foreach-%EC%98%88%EC%A0%9C 설명 제공된 action을 Stream의 각 데이터에 적용해주는 종결 처리 메서드입니다. Java의 iterable 인터페이스에도 forEach가 있기 때문에 Stream의 중간 처리가 필요없다면 굳이 Stream을 만들어 사용할 필요는 없습니다. foreach 모든 요소가 처리되거나 작업이 예외를 throw할 때까지 Iterable의 각 요소에 대해 지정된 작업을 수행합니다. 해당 순서가 지정된 경우 작업은 반복 순서대로 수행됩니다. 작업에 의해 발생한 예외는 호출자에게 전달됩니다. 재정의 클래스가 동시 수정 정책을 지정하지 않는 한 작업이 요소의 기본 소스를 수정..
git https://github.com/ymwoo88/stream/tree/feature/sorted-%EC%98%88%EC%A0%9C 설명 데이터가 순서대로 정렬된 Stream을 리턴하는 기능을 제공합니다. 데이터의 종류가 기본적으로 서로 비교할 수 없다면 어떤 식으로 비교할지를 알려주는 comparator을 인자로 제공해야 합니다. sorted Stream sorted(); Stream sorted(Comparator
Git https://github.com/ymwoo88/stream/tree/feature/filter-%EC%98%88%EC%A0%9C 설명 Stream의 Filter API는 Predicate에서 true를 반환하는 데이터만 존재하는 Stream을 리턴하는 기능을 제공합니다. filter는 and조건으로 중첩적용이 가능하나 or조건은 사용되지 않습니다. Filter Stream filter(Predicate
서론 실 업무에서 Stream을 많이 사용하고 있습니다. 주로 쓰는 메소드만 사용하게되는데 잘 알지 못해서 사용을 더 안하게되는 것 같습니다. 생각보다 유용한 기능도 많다보니 이번 포스팅에서는 좀더 Stream을 유용하게 사용하기위해 기초를 다지는입장으로 상세하게 알아보겠습니다. 스트림이란? 자바 8에서 추가된 스트림(Streams)은 컬렉션, 배열 등에 저장된 요소들을 하나씩 참조하면서 코드를 실행할 수 있는 기능입니다. Stream을 사용하면, 불필요한 for문을 사용하지 않을 수 있고, 람다식을 활용할 수 있어서 코드를 직관적이게 처리할 수 있습니다. 특징 Stream은 데이터를 담는 저장소는 아니다. Stream은 데이터를 변경하지 않는다. Stream은 재사용할 수 없다. Stream은 각 요..

개방/폐쇄 원칙을 적용하면 코드를 직접 바꾸지 않고 해당 메소드나 클래스의 동작을 바꿀 수 있다. 아래 예제에 이 원칙을 적용하면 calculator() 메소드의 코드를 복사하거나 새 마라미터를 추가하는 등 코드를 바꾸지 않고도 동작을 바꿀 수 있다. 클래스 CalculatorProcess 라는 곳에는 첫번째 값과 두번째 값에 대한 연산을 수행하는 메소드가 존재 합니다. 여기서 코드를 변경하지 않고 덧셈 뺄셈을 수행하는 것을 해보겠습니다. public class CalculatorProcess { private final Integer first = 10; private final Integer second = 5; public Integer calculator (OcpFuncFilter ocpFuncF..