Data Engineering/Scalar 3

Future 컬렉션

동시성 프로그래밍에 쓰인다. 그리고 어렵다. 나는 과제를 진행하면서 하나의 패키지에 Streaming Thread 와 Model Trainer Thread를 만들었고이때 Future 를 이용하였다. 백그라운드 작업을 개시하는 concurrent.Future다. Option과 Try와 같이 퓨처(future)는 잠재적 값을 나타내며, 추가 연산을 연결하거나 값을 추출하는 안전한 연산을 제공한다. 스칼라는 자바 가상 머신 (JVM)에서 동작한다. 그리고 스칼라 코드는 JVM의 가벼운 동시성 프로세서(concurrent process)인 자바 '스레드'내에서도 동작할 수 있다. 기본 적으로 스칼라 코드는 JVM의 'main' 스레드에서 동작하지만, 병행 스레드에서 백그라운드 작업을 실행하도록 지원할 수 있다...

scala monad 란?

monad는 유명한 경구용 탈모방지약이자 Scala언어에서 가장 중요한 개념으로 쓰이는 용어이다. 나는 탈모환자라서 모나드를 먹고 있는데 스칼라에서는 monad라는 용어를 보니 매칭이 되지않았다. 그래서 어원을 찾아봤다. 용어 '모나딕(monadic)'은 그리스 어원으로서 하나의 단위를 의미하며, 범주론 관점에서는 연산의 체인에서 단일 링크를 뜻한다. scala에서 자주 쓰이는 ().().().(). 이런 형태의 링크 연산이다.아하~~ 이제 이해가 되네. 탈모약 모나드는 머리카락이 빠지지말고 쭈욱 길게 나라는 뜻이고...ㅋㅋㅋ 모르고 쓰면 그때뿐이지만 알고 쓰면 더 이해도 쉽고 응용력이 생겨 더 재밌다는 사실 ㅋㅋ

Option Class 와 map

Scalar에는 Option Class가 존재한다.이 클래스는 Java언어에서 특정 Method가 Null을 return할 경우, 매번 확인해야하는 Bolier plate 코드를 계속 삽입해야하는 불편함과 Null dereference오류를 방지하기 위해 고안된 클래스다. 이 클래스를 설명한 Scalar Doc을 참고하면 "Represents option values, Instances of Option are either an instance of Some or the Object None. The Most idiomatic way to use an Option instance is to treat it as a collection or monad and use map, flatMap, filter, ..