RxJava를 이용하여 크기를 가늠할 수 없는 Iterable에서 데이터 읽고 처리하기

얼마전에 작성한 Java Batch 프로그램 중에 이런 요구사항이 있었다. HBase 특정 테이블에서 대량의 데이터를 조회한다. 조회한 데이터를 Kafka로 Producing한다. ‘Java로 하지말고 다른 오픈소스 도구를 쓰면 되는거 아냐?’ 라고 할 수도 있겠지만 여러가지 제약사항 때문에 저 문제를 Java로 작성해야 한다고 하자. 이 문제를 어떻게 풀까? 일단 문제를 풀기 전에 Java에서 HBase 조회하는 방법을 간략하게 정리...

Read More

스칼라 스터디 Day07 - 속성 기반 검사

출처: 스칼라로 배우는 함수형 프로그래밍 8장 Chpater 08. 프로퍼티 기반 테스트이번 챕터에서 다룰 내용 ScalaCheck라는 프로퍼티 기반 테스트 라이브러리를 개발해보자. 7장에서 배운 결과물을 프로퍼티 기반 테스트해보기. ScalaCheck: https://github.com/rickynils/scalacheck/blob/master/doc/UserGuide.md 프로퍼티 기반 테스트(property-based test...

Read More

스칼라 스터디 Day06 - 순수 함수적 병렬성

출처: 스칼라로 배우는 함수형 프로그래밍 7장 Chapter 07. 순수 함수적 병렬성이번 챕터에서 다룰 내용 숫자 목록 합산하는 함수 만들기 숫자 합산을 병렬적으로 풀기 풀이 진행 중 일반화 진행 이번 챕터에서 특히 어려움을 많이 느꼈는데, 중간중간 불쑥 튀어나오는 함수 조합기와 그 조합기 구현을 어떻게 그렇게 생각해낼수 있을지 조금은 경외심도 느꼈다. 나로써는 도저히 그렇게 한 방에 그런 구현이 나와야 된다는 생각이 안들던데 그래서...

Read More

스칼라 스터디 Day05 - 순수 함수적 상태

출처: 스칼라로 배우는 함수형 프로그래밍 6장 Chapter 06. 순수 함수적 상태이번 챕터에서 다룰 내용 난수 발생(scala.util.Random)의 문제점 순수 함수적으로 난수 발생하기 상태가 있는 함수를 순수하게 하기 난수 발생기 일반화하기 순수 상태 함수 일반화하기 난수 발생(scala.util.Random)의 문제점스칼라의 난수 발생기 클래스(scala.util.Random)은 부수 효과에 의존하는 메소드를 제공한다. ...

Read More

스칼라 스터디 Day04 - 엄격성과 나태성

출처: 스칼라로 배우는 함수형 프로그래밍 5장 Chapter 05. 엄격성과 나태성이번 챕터에서 다룰 내용 List의 한계 Stream (Lazy List) 스트림 순회의 비엄격성과 나태성 List의 한계스칼라에서 다음 코드는 어떻게 수행될까? List(1,2,3,4).map(_ + 10).filter(_ % 2 == 0).map(_ * 3) 스칼라 List의 map과 filter 함수는 임시적인 목록을 만들어서 그 결과를 반환한...

Read More

스칼라 스터디 Day03 - 예외를 이용하지 않은 오류 처리

출처: 스칼라로 배우는 함수형 프로그래밍 4장 Chapter 04. 예외를 이용하지 않은 오류 처리이번 챕터에서 다룰 내용 예외를 던지는 기존의 방식 살펴보기 예외를 던지는게 왜 어때서? 예외를 안던지고 반환하면 뭐가 좋을까? 예외를 던지지 않고 예외 처리를 미루는 방법 Option 예외를 미루지 말고 예외를 반환하기 Either 예외를 던지는 기존 방식1장에서 예외(exception)을 던지는 것이 하나의 부수 효과라고 말했다...

Read More

스칼라 스터디 Day02 - 함수적 자료구조

출처: 스칼라로 배우는 함수형 프로그래밍 3장 Chapter 03. 함수적 자료구조이번 챕터에서 다룰 내용 함수형 프로그래밍 스타일 작성된 Single Linked List 살펴보기 (함수적 자료구조) Pattern Matching 함수형 자료구조에서의 Data Sharing 고차함수와 타입추론, 그리고 고차함수 일반화 함수형 프로그래밍 스타일로 Binary Tree 구현하기 함수적 자료구조먼저 함수적 자료구조의 정의부터 살펴보자....

Read More

스칼라 스터디 Day01 - 함수형 프로그래밍이란?

출처: 스칼라로 배우는 함수형 프로그래밍 1장, 2장 CHAPTER 01. 함수형 프로그래밍이란 무엇인가?함수형 프로그래밍이란 부수 효과(Side Effect)가 없는 순수 함수(Pure Function)으로만 프로그램을 구축한다는 것을 의미한다. 그럼 부수효과란 무엇일까? 결과를 돌려주는 것 이외에 어떤 일을 수행하는 함수를 카리켜 부수효과가 있는 함수 라고 칭한다. 부수효과가 있는 함수 예시 파라미터 변수를 수정한다. 자료구조를 제자...

Read More

gRPC 살펴보기 (gRPC Overview)

목차 About gRPC Why gRPC? gRPC 내부 구조 및 동작 과정 gRPC 개발 맛보기 protobuf 정의 gRPC Server gRPC Client gRPC 통신의 4가지 방식 Unary Server Streaming Client Streaming 양방향 Streaming 고민해볼 문제 Testing Authenticatoin (TLS, OAuth) Load Balancing (Client-side, Server...

Read More

Java9에서의 Stream에 관한 짧은 팁

개요가장 빨리 만나는 코어 자바9 책을 읽다가 실무에서도 많이 쓰일 것 같은 Java9에서의 Stream 다루기가 나오길래 정리!! null이 제거된 Stream 얻기id 목록 스트림이 있고, 아래의 lookup 메소드를 이용하여 얻어진 User 목록 중 null이 제거된 목록 스트림을 얻어내려면 어떻게 할까?Optional<User> lookup(String id); 보통 아래와 같이 작성할 것이다. Stream<Strin...

Read More


Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2019 Icednut's Note All Rights Reserved.

Icednut hold copyright