분류 전체보기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. 이전 1 2 3 4 5 6 7 ··· 29 다음