일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Perfect Watermark
- Generic
- Generics
- 가변성
- coroutines
- covariant
- contravariant
- Coroutine
- event time
- java
- flink
- 불공변
- kotlin
- watermarks
- lambda
- flink watermark
- Hadoop
- Perfect Watermarks
- Heuristic Watermarks
- HDFS
- watermark
- ingestion time
- apache flink
- processing time
- 공변
- Heuristic Watermark
- flink watermarks
- Stream
- MapReduce
- Today
- Total
mm Home
Neflix 에서 만든 오픈소스. 사내에서 Hystrix를 사용하고 있는 프로젝트가 꽤 있길래 좀 살펴보았다. Hystrix 란? 공식 페이지에 많은 설명이 쓰여있지만.. 그냥 가볍게 사용해본 개인적인 느낌으로는 '분산 환경에서의 안정적인 서비스를 지원해주는 라이브러리'라고 생각한다. 그 안정적인 서비스를 지원해주는 기능으로 무엇이 있는지는 밑에 나열해볼 것이고... 추상적이지만 안정적인 서비스를 지원해주는 라이브러리가 어떤 느낌인지 예를 들어 설명해보겠다. 분산 환경에서 각 서비스별 의존성을 지니는 경우가 많다. 이를테면, 이벤트 서버에서 회원에 대한 조회를 할때 Membership 서버에 Request를 날리는 것과 같이 의존성이 있을 수 있다. 만약 멤버쉽 서버(외부 자원)의 응답이 늦어진다면, 이..
스트림 API이란? 연속적인 데이터 항목들의 모임들을 처리하는 API 라고 생각한다. 연속적인 데이터를 생성하여, 사용자에 맞는 중간 연산과, 종료연산을 통해 원하는 결과를 추출하도록 도와준다. 가볍게 구조를 나누어보면 이렇게 나눌 수 있다. - Stream 생성 - 중간 연산 (Intermediate Operations) - 종료 연산 (Terminal Operations) 구조별로 살펴보자. 스트림 생성 스트림을 생성하는 방법은 여러가지 있다. 연속적인 데이터를 어떻게 Stream의 인터페이스로 생성하느냐의 문제이다. (parallelStream 은 나중에) Array to Stream //#1 String[] arr = { "program", "creek", "program", "creek", "j..
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..