본문 바로가기

전체 글114

Coroutine Flow - 2부 지난 번에 포스팅한 1부 에 이어서 계속 알아보려고 한다. Buffering flow에서 실행되는 작업이 오래 걸리는 작업일 때, collect를 수행하면 전체적으로 성능이 낮아 질 수 밖에 없다. (각 작업을 순차적으로 실행하는 flow의 컨셉에 따라...) fun simple(): Flow = flow { for (i in 1..3) { delay(100) // pretend we are asynchronously waiting 100 ms emit(i) // emit next value } } fun main() = runBlocking { val time = measureTimeMillis { simple().collect { value -> delay(300) // pretend we are p.. 2020. 11. 21.
Coroutine Flow - 1부 코틀린에서 제공하는 코루틴 중 Flow에 대해 살펴보려고 한다. Flow는 이미 명명된 이름에서 짐작할 수 있듯이, 간단히 언급하면 Sequence의 비동기 버전 정도로 이해하면 될 것 같다. 좀 더 자세히 보면, Sequence는 Stream 단위의 데이터를 하나 처리하고 다음 하나 방식이지만, Flow는 Stream의 각 데이터 결과를 기다리지 않고 작업한다. (물론 값은 순차적으로 가져온다.) fun simple(): Flow = flow { println("Flow started") for (i in 1..3) { delay(100) emit(i) } } fun main() = runBlocking { println("Calling simple function...") simple().collec.. 2020. 11. 21.
React 상태 관리 라이브러리(Redux, Recoil) 소개 React에서 중요한 것 중 하나는 역시나 State(상태) 관리이다. https://reactjs.org/docs/state-and-lifecycle.html State and Lifecycle – React A JavaScript library for building user interfaces reactjs.org 컴포넌트에 의해 관리되는 상태는 단일 컴포넌트에 의해 다루느냐, 그렇지 않으면 Context와 같이 부모, 자식 간의 통신으로 사용하느냐에 따라 난이도가 달라진다. 특히 부모, 자식 간에 사용하기 위해서는 React에서 제공해주는 Props, Context와 조합하면 만들 수는 있지만.. 시간 낭비이고 현 시점에 등장한 라이브러리를 사용하면 쉽게(?) 사용 할 수 있다. 해당 글에서는 먼.. 2020. 7. 5.
데이터 모델링. 데이터부터 알고 시작하자 데이터 모델링은 참 어렵다. 말 그대로 데이터를 DB에 잘(?) 녹아내기 위한 모델링을 해야하기 때문이다. 그래서 데이터 모델링을 하기 위해선 업무 비즈니스를 잘 이해해야 한다. 즉, 데이터 모델링은 데이터의 속성들의 이해 여부에 따라 최악의 모델링이냐 최선의 모델링이냐로 나뉜다고 생각한다. 한 가지 예를 들어보면, 위 그림은 Student와 Book의 관계이다. 비슷해보이지만 Student와 Book의 관계를 어떤 시선으로 보느냐에 따라 모델링이 완전히 달라질 수 있다. 상단은 1:M 관계로 한 명의 Student가 여러 개의 Book을 가지고 있다는 의미로 사용될 수 있고, 하단은 N:M 관계로 각 Student는 하나의 Book만을 가질 수 있다. 또 위의 단초로운 entity는 어떤가? 그냥 확~.. 2020. 7. 3.
Github 'Master' 브런치. 이제 안녕 https://www.bbc.com/news/technology-53050955 Github가 최근 벌어지고 있는 사건에 지지하는 의미로 수년간의 틀을 깨뜨렸다.바로 Master 브랜치 이름을 사용하지 않는 것이다. 개발자들이라면 Github에 입문할 때, 자연스럽게 맞닿는 글자는 바로 "Master"이다.기본이 되는 브랜치이며 특히, 회사에 따라 릴리즈 브랜치 용으로 사용하기도 한다.그래서 너무도 자연스럽게 "Master" 라는 말을 달고 산다. 이번 사건이 터지기 전까지는 개발자는 딱히 관련이 없을 것이라 생각했다.하지만 처음 생성 의도가 어떻든 "Master"를 변경하면서 적어도 개발자들에게 그 사회적인 의미를 되새겨주는 것 같다. 브랜치도 브랜치 이지만 약간 논외로 보면 아키텍처 중에 Master.. 2020. 6. 17.
Spark - RDD vs Dataframes vs Datasets RDD와 Dataframes, Datasets를 비교하는 글이 있어서 보려고 한다.중간중간 의역 및 생략이 있을 수 있다. 때문에 보다 자세한 글은 아래 원문을 참조https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html 우리는 언제, 왜 RDD, Dataframes, Datasets를 사용해야 할까? Resilient Distributed Dataset (RDD)RDD는 Spark 등장 이래로 주로 사용된 API 이다. Spark Core에서는 RDD는 변경할 수 없는(Immutable) 데이터의 집합으로 클러스터 내의 여러 노드에 분산되어 있다.(Transformati.. 2020. 2. 15.