본문 바로가기
[RxJava] #3 리액티브 연산자 입문 - ReactiveX 문서의 연산자 부분을 살펴보면 다양한 연산자(operator)함수가 존재한다. 이 연산자들은 버전이 높아지면서 계속 늘고 있다. 이 연산자들을 모두 알아야 리액티브 프로그래밍을 할 수 있는 것은 아니다. - for, if while 문처럼 프로그래밍 언어에서 제공하는 키워드들을 사용하는 대신 RxJava 의 연산자로 비동기 프로그래밍에 필요한 주요 로직을 만들 수 있다. - 리액티브 연산자의 특징은 언어 특성과 크게 연관이 없다. 리액티브 연산자는 함수라고 한다. 형식만 놓고 보면 Observable 등의 클래스에 포함되어 있으므로 자바 관점에서는 메서드이다. 하지만 함수형 프로그래밍의 원리에 따르면 리엑티브 연산자는 부수 효과가 없는 순수 함수(pure function)이다. - .. 2019. 6. 4.
[RxJava] #2 Observable 처음 만들기 - Observable 은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다. RxJava 프로그래밍은 Observable 에서 시작해 그것으로 끝난대고 해도 과언이 아닐 정도로 중요한 개념이다. - Rajava 1.x 에서는 데이터 소스를 Observable 과 Single 클래스로 구성했다. RxJava 2 에서는 Observable 클래스를 상황에 맞게 세분화해 각각 Observable, Maybe, Flowable 로 나뉘었고, Single 도 그대로 존재한다. - Maybe 클래스는 Reduce() 함수나 firstElement() 함수와 같이 데이터가 발행될 수 있거나 혹은 발행되지 않고도 완료되는 경우를 의미한다. - Flowable 클래스는 Observable 에서 .. 2019. 6. 3.
[iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) [iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html#//apple_ref/doc/uid/TP40008091-CH103-SW1 About dispatch source -dispatch source 는 low-level system event 를 처리하기 위한 data type 이다. -Timer dispatch source 는 주기적인 noti 를 만든다. -Signal dispatch source 는 UNIX signal 이 도착하면 not.. 2017. 7. 3.
[iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) [iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1 -전통적 방법으로의 복수개의 코어를 사용하는 방법은 여러개의 thread 를 만들어 사용하는 것이다.그러나 thread 를 사용한 코드는 scale 측면에서 좋지 않다.core 가 처리하기 좋은 thread 의 갯수를 아는 것도 쉽지 않고, thread 들을 효율적으.. 2017. 7. 1.
[Java Concurrency] 작업 실행 [Java Concurrency] 작업 실행 - 앱이 해야 할 일을 "작업"이라는 단위로 분할하면 프로그램의 구조를 간결하게 잡을 수 있고, 트랜잭션의 범위를 지정함으로써 오류에 효과적으로 대응할 수 있고, 작업 실행 부분의 병렬성을 자연스럽게 극대화 할 수 있다. 6.1. 스레드에서 작업 실행 - 프로그램에서 일어나는 일을 작업이라는 단위로 재구성하고자 한다면 가장 먼저 해야 할 일은 작업의 범위를 어디까지로 할 것인지 정하는 일이다. 원론적으로 보자면 작업은 완전히 독립적인 동작을 말한다. 독립성이 갖춰져 있어야 병렬성을 보장할 수 있다. 작업을 스케쥴링하거나 부하 분산(load balancing)을 하고자 할 때 폭넓은 유연성을 얻으려면 각 작업이 앱의 전체적인 업무 내용 가운데 충분히 작은 부분을.. 2017. 4. 24.
[Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. [Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. - 자바 1.5 배포판 이후에 java.util.concurrent 패키지가 추가되었다. 여기에는 실행자 프레임워크(Executor Framework) 가 포함되어 있다. 이 녀석을 사용하면 Work queue 를 쉽게 관리할 수 있다. ExecutorService executor = Executors.newSingleThreadExecutor();executor.execute(runnable);executor.shutdown(); // 추가된 task 들의 실행은 보장한다. shutdownNow() 도 있다. 위와 같은 간단한 코드로 쉽게 queue 를 만들어 실행시킬 수 있고, shutdown 시킬 수 있다. - Executo.. 2017. 3. 10.
[윈도우] 컴퓨터 타이머 자동 종료하는 방법. 곰플레이어나 다른 동영상 플레이어들로 동영상을 보면,메뉴 중에 "파일 재생이 끝나면 컴퓨터 종료", 혹은 "목록 재생이 끝나면 컴퓨터 종료" 와 같은 메뉴들이 있어서 영상을 보면서 자기 좋다. 그런데 요즘은 유투브로 쇼미더머니를 보고 있는데,쇼미더머니도 마찬가지로 보다가 자고 싶어서 윈도우 자체에 timer 를 두고 컴퓨터를 자동 종료하는 방법이 없나 찾아보았다. 빙고!! 있다. shutdown 이라는 command 를 입력하면 되는 것인데, 다음과 같이 입력하면 된다. c:\> shutdown -s -t 3600 위와 같이 입력하면, 3600초 ( 1시간 ) 후에 컴퓨터를 종료시킨다는 의미가 된다. 저 명령어를 어디서 입력하느냐? 시작버튼을 눌러 검색되는 부분에서 바로 저것을 입력해도 되고, 시작버튼을.. 2013. 7. 18.
[VB6] 애니메이션 ( animation ) 에 대해 공부해보자. 애니메이션 ( animation ) [이전강좌] Database 사용하기 간단한 애니메이션 ( simple animation ) 아주 간단한 애니메이션은,단순히 위치값, 보여짐 여부, 넓이 등의 값을 바꾸는 것으로 구현할 수 있다.엄밀히 이야기하면 연속적인 animation 은 아니고, 시작과 끝만 있는 animation 이라 볼 수 있다. 이에 관여하는 속성들은.. VisibleLeft, TopWidth, Height Drag & Drop Drag & Drop 은, User interaction 에 의한 animation 의 한 범주로 볼 수 있다. Component 를 Drag & Drop 가능하게 만드려면, Dragmode property 를 1 ( Automatic ) 으로 주어야 한다. Drag.. 2013. 6. 23.
반응형