일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- event time
- Perfect Watermarks
- flink
- watermarks
- 가변성
- flink watermarks
- contravariant
- 공변
- kotlin
- coroutines
- MapReduce
- Hadoop
- covariant
- HDFS
- apache flink
- Coroutine
- ingestion time
- Generics
- Perfect Watermark
- Stream
- watermark
- flink watermark
- Heuristic Watermarks
- Generic
- lambda
- 불공변
- Heuristic Watermark
- java
- processing time
- Today
- Total
mm Home
앞에서 변화하는 요구사항에 효과적으로 대응하는 코드 구현 방법을 살펴보았다. 람다 표현식을 어떻게 만드는지, 어떻게 사용하는지, 어떻게 간결하게 만들 수 있는지 살펴본다. 람다란 무엇인가? 익명함수를 단순화한 것이라고 할 수 있다. 람다는 세 부분으로 이루어져 있다. 파라미터 리스트, 화살표, 바디. 아래의 람다 표현식을 살펴보자. (Apple a1, Apple a2) -> log.debug("a1 : {}, a2 : {}", a1.getWeight(), a2.getWeight()) (Apple a1, Apple a2) : 파라미터 부분-> : 화살표 (파라미터와 람다 바디의 구분) log.debug("a1 : {}, a2 : {}", a1.getWeight(), a2.getWeight()) : 바디 람..
소비자의 요구사항은 항상 바뀐다. 기능은 쉽게 구현할 수 있어야 한다. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 동작(함수)를 파라미터화 한 것. 동작 파라미터화의 과정은 이보다 훨씬 길지만.. 간략히 적어보면! 사과의 종류에 따른 분류를 하려고 한다면?? 매번 분류하는 작업마다 코드를 추가하는건 쉬운 방법이지만 코드의 중복 + 복잡. 동작 파라미터화를 사용하면,, filter를 하는 동작과 실제 분별하는 동작을 구분하여, 인자로 받게 된다. 실제 filter를 하는 시점에 분별하는 동작을 수행하게 되므로 다양한 분별 작업만 정의해서 건네주면 된다. 아래와 같은 코드로 표현할 수 있다. (ApplePredicate라는 test메소드가 있는 인터페이스. 인터페이스..
예전에 Java 8 공부했던 내용을 블로그에 옮겨본다. Java 8에 함수형언어의 기능이 들어간게 가장 큰 특징이 아닐까? 함수형이란건?함수가 중심인 언어한마디로 수학적 함수는 참조 투명성!! 프로그램 동작의 변경없이 관련 값을 대체할 수 있다면 표현식을 참조상 투명하다고 한다.관련 값은 모두 입력으로 받을 수 있기 때문에 동일한 값에 대해 동일한 결과를 반환하게 된다. 어떠한 상태도 가지고 있지 않으며(stateless), 동일한 값에 동일한 결과를 반환한다 (side-effect-free)위의 함수(표현식)를 순수 함수라고 부른다.수학적 함수란,,동일한 입력에 대해 동일한 출력 (출력은 입력에만 의존)side-effect-freestateless→ 그래서 함수형 언어에서 immutable 강조! Ja..