차이점

    [Kotlin] 코틀린에서 RxJava와 Coroutine

    위 두 라이브러리는 비동기 작업을 구현하는 방법으로 여기저기서 많이들 사용한다. 코틀린의 경우 RxJava와 Coroutine 모두 사용 가능하고, 두 방식을 혼합하여 사용할 수도 있다. 먼저 간단하게 두 방식 사용 방식 차이점에 대해 알아보자. RxJava RxJava는 Observable Pattern, Iterator Pattern, Functional Programming을 결합한 형태로 데이터를 관찰 가능한 stream 형태로 받을 수 있다. 그렇기 때문에 중간중간마다 데이터의 변화를 확인할 수 있다. RxJava를 사용하기 위해서는 반환값으로 Single 클래스를 사용해야 한다. interface UserService{ @GET("/users) fun getUser(): Single @GET(..

    임계 구역과 경쟁 상태

    임계 구역 (Critical Section) 임계 구역이란 한 번에 하나의 프로세스 혹은 스레드만 접근 가능한 코드 영역으로 공유 데이터에 접근하는데 있어서 문제가 발생하지 않도록 하나의 접근만 허용함을 보장한다. 일반적으로 4가지의 코드 영역으로 나눠 볼 수 있는데 그 특징은 아래와 같다. entry section critical section에 진입하기 위해 진입 허가를 요청하는 영역으로 접근을 제어(lock)한다. critical section 하나의 프로세스 혹은 스레드만 접근 할 수 있는 영역 exit section 제어(lock)을 해제하는 등, 더 이상 임계 구역에 존재하지 않을 때 알리는 역할을 하는 영역 remainder section 입력, 중요, 종료 세션을 제외한 나머지 코드 부분의..