일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Coroutine
- covariant
- apache flink
- Heuristic Watermarks
- event time
- Perfect Watermark
- 가변성
- Generic
- HDFS
- processing time
- flink watermark
- flink watermarks
- 불공변
- watermark
- Generics
- Perfect Watermarks
- watermarks
- lambda
- Stream
- kotlin
- MapReduce
- coroutines
- flink
- Hadoop
- java
- contravariant
- Heuristic Watermark
- 공변
- ingestion time
- Today
- Total
목록2017/08/10 (5)
mm Home
Lambda Translation어떻게 람다가 바이트코드로 변환되어지고, 사용되어지는지 대략적으로 살펴보자. 람다식은 functional interface를 구현한 구현체 오브젝트를 생성하는 것이 아니다. (익명 클래스와 다르다) 해당 클래스 내에 바이트코드를 생성한다. public void test5() { Consumer consumer = (Integer i) -> System.out.println(i); } 위와 같은 람다식이 있다고 가정하자. 저것은 람다식일 뿐, 실제 사용은 consumer.accept(1) 과 같이 클로져(closure)의 형태로 사용할 것이다. 이제 Translation 과정이 어떻게 이루어지는 살펴보자. 우선 (Integer i) -> System.out.println(i..
앞에서 변화하는 요구사항에 효과적으로 대응하는 코드 구현 방법을 살펴보았다. 람다 표현식을 어떻게 만드는지, 어떻게 사용하는지, 어떻게 간결하게 만들 수 있는지 살펴본다. 람다란 무엇인가? 익명함수를 단순화한 것이라고 할 수 있다. 람다는 세 부분으로 이루어져 있다. 파라미터 리스트, 화살표, 바디. 아래의 람다 표현식을 살펴보자. (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..