본문 바로가기

분류 전체보기811

[RxJava] 4. Observable의 종류 RxJava의 근간이 되는 Observable 클래스는 소프트웨어 디자인 패턴인 Observer Pattern(1)을 근간으로 되어 있습니다. (1) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵서버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. 참고글: 옵서버 패턴 Observable에는 데이터를 로딩하고 바로 그 로딩된 내용을 반영할 것인가(Hot Observable) 아니면 사용자의 요청이 있을 때까지 기다릴 것인가(Cold Observable)라는 의미의 2 종류가 .. 2022. 5. 31.
[RxJava] 1. RxJava 란? 1. RXJAVA의 유래 RXJAVA는 요즘 많은 사람들이 자주 즐겨보는 넷플릭스에서 소개된 기술입니다. 2013년 2월에 처음으로 소개되었습니다. 당시 넷플릭스는 REST 기반의 서비스 API 호출 횟수와 서비스의 전반적인 성능을 개선하는 프로젝트를 진행하였으며, 그에 대한 결과물로 .NET 환경의 리액티브 확장 라이브러리를 JVM에 포함하여 RXJAVA를 만들었습니다. 참고 글: ReactiveX https://reactivex.io/intro.html 2. RXJAVA를 사용하는 이유 Android는 그동안 비동기를 처리할 때 AsyncTask API를 사용하였습니다. 하지만, Android API 30 이상부터 AsyncTask가 Deprecated(1)가 되었습니다. (1) Deprecaterd.. 2022. 5. 30.
[RxJava] 3.Observable 란? Observable Observable은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다. Observable은 옵서버 패턴을 구현하며, 리액티브 프로그래밍은 Observable로 시작해서 Observable로 끝난다고 해도 과언이 아니다. 안드로이드에서 버튼을 클릭하면 이벤트를 받을 수 있게 하는 OnClickListener가 대표적인 옵서버 패턴의 예라고 볼 수 있다. RxJava에서 Observable은 세 가지를 구독자에게 전달한다. onNext : Observable이 데이터의 발행을 알린다. 기존의 옵서버 패턴과 같다 onComplete : 모든 데이터가 발행이 완료되었음을 알린다. 그러므로 더 이상의 onNext는 발생하지 않으며, 마지막에 딱 한 번만 호출된다. o.. 2022. 5. 29.
[RxJava] 6.Scheduler Scheduler 1. Schedulers 개요 Observable 연산자 체인에 멀티스레딩을 적용하고 싶다면, 특정 스케줄러를 사용해서 연산자(또는 특정 Observable)를 실행하면 된다. ReactiveX의 일부 Observable 연산자는 사용할 스케줄러를 파라미터로 전달받기도 하는데, 이 연산자들은 자신이 처리할 연산의 일부 또는 전체를 전달된 스케줄러 내에서 실행한다. 기본적으로, Observable과 연산자 체인은 이처럼 스케줄러를 통해 동작하고 Subscribe 메서드가 호출되는 스레드를 사용해서 옵서버에게 알림을 보낸다. SubscribeOn 연산자는 다른 스케줄러를 지정해서 Observable이 처리해야 할 연산자들을 실행시킨다. 그리고, ObserveOn 연산자는 Observable.. 2022. 5. 29.
mimik - edge clouding solution mimik - edge clouding solution MIMIK의 edge clouding solution 은 모든 edge devices 가 서버 역할을 수행할 수 있게 하는 소프트웨어 솔루션으로 성능과 효율성을 개선하는 동시에 대기시간, 비용 및 탄소발생을 줄이는 획기적인 솔루션입니다. Hybrid edgeCloud Platform 이란? 차세대 하이브리드 edgeCloud 인프라를 구축하기 위한 플랫폼으로 모든 컴퓨팅 장치가 서버 역할을 할 수 있도록 하여 모든 컴퓨팅 장치가 애플리케이션 계층에서 직접 통신할 수 있도록 합니다. Hybrid edgeCloud platform 플랫폼에는 edgeEngine, mimik 백엔드 서비스 및 관련 마이크로서비스가 포함 엔진은 OS, device, netw.. 2022. 5. 28.
임금피크제가 필요한 이유는 무엇일까? 임금피크제[salary peak , 賃金─制] 근로자가 일정 연령에 도달한 이후 근로자의 고용을 보장(정년보장 또는 정년 후 고용연장)하는 것을 조건으로 근로자의 임금을 조정하는 제도를 임금피크제라고 합니다. 기본적으로는 정년보장 또는 정년연장과 임금 삭감을 맞교환하는 제도라고 할 수 있습니다. 임금체계와 밀접한 관련이 있으며, 연령이나 근속연수에 따라 임금수준과 지위가 높아지는 연공서열제도에서 의미가 있고, 정년 개념이 있는 사업장에서 유효하다. 그런 이유로 직무성과에 따른 보수체계를 가지고 있고 정년제도가 없는 미국과 유럽이 아닌 연공서열제도를 채택하고 있는 한국과 일본에서 주로 활용되고 있다. 1. 임금피크제 유래 임금피크제라는 용어는 한국에서만 사용되지만 제도의 기본 틀은 일본에서 만들어졌다. 일.. 2022. 5. 27.
[안드로이드] Snackbar Text 세부 설정 및 Max Line 설정 Snackbar : Toast 메시지처럼 화면상에 팝업창을 띄어 사용자에게 특정한 정보를 제공할 때 사용이 됩니다. Toast 메시지와 유사한 기능을 제공하지만, Toast 메시지일 경우 팝업창이 나타났다가 지정한 Duration에 따라 일정 시간 보이다가 자동으로 사라지는 팝업창입니다. 🟦 Snackbar 기본 설정 public class MainSnackbar { public static void showSnackbar(View view, String message) { Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_SHORT); setTextView(snackbar, view); snackbar.show(); } ... 🟪 Sna.. 2022. 5. 27.
[RxJava] 2. Reactive Programming 이란? Reactive Programing : 데이터의 흐름과 전달에 관한 프로그래밍 패러다임을 뜻한다. 🟦 명령형 프로그래밍 vs 리액티브 프로그래밍 Imperative Programming(명령형 프로그래밍) : 작성된 코드가 정해진 순서대로 실행됨 Reactive Programming(리액티브 프로그래밍) :데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트 되는 방식 기존의 프로그래밍 방식을 Pull 방식, Reactive 프로그래밍 방식을 Push 방식이라고도 한다. Pull 방식은 데이터를 사용하는 곳(Consumer)에서 데이터를 직접 가져와서 사용한다면, Push 방식은 데이터의 변화가 발생한 곳에서 새로운 데이터를 Consumer에게 전달한다. 리액티브 프로그래밍.. 2022. 5. 26.
[RxJava] 5.subscribeOn과 observeOn의 차이점 subscribeOn과 observeOn의 차이 RxJava는 operator를 통해 chaining 기법을 사용할 수 있다. subscribeOn과 observeOn도 마찬가지로 chaining 기법을 적용할 수 있다. 먼저 두 연산자의 역할은 다음과 같다. subscribeOn은 Observable이 데이터 흐름을 발생시키고 연산하는 스레드를 지정할 수 있고, observeOn은 Observable이 Observer에게 알림을 보내는 스레드를 지정할 수 있다. 그럼 두 연산자의 차이는 무엇일까? subscribeOn은 여러번 호출되더라도 맨 처음의 호출만 영향을 주며 어디에 위치하든 상관없다. observeOn은 여러번 호출될 수 있으며 이후에 실행되는 연산에 영향을 주므로 위치가 중요하다. 예제 A.. 2022. 5. 25.
[RxJava] 7.배압(Backpressure) 개념 이해 네이버에서 Backpressure 뜻을 찾아보면 역압으로 알려줍니다. 배압과 의미는 같으며, 역압이란 용어는 거의 사용하지 않습니다. 배압(Backpressure) 배압이란 생산되는 데이터와 소비의 균형이 어긋나는 현상입니다. 만약 10,000개의 데이터를 0.1초마다 발행하고, 소비는 10초마다 한다면 소비와 관계없이 데이터는 스트림에 계속 쌓이게 됩니다. 즉, Observable이 데이터를 발행하는 속도를 Observer의 소비 속도가 따라가지 못하는 것입니다. Flowable(사전적의미: 유동적임) 기존의 Observable이 배압 현상을 제어하지 못하는 반면, Flowable은 배압 현상을 스스로 제어할 수 있습니다. 다음의 두 코드를 살펴보도록 하겠습니다. Observable Observable.. 2022. 5. 24.
[안드로이드] GPS 정보로 현재 위치 찾기 GPS 정보로 현재 위치 찾기 우선 GPS Location 정보를 가져오도록 하겠습니다. ※ 위치정보 또한 위험 권한에 속하므로 권한 체크를 해주셔야 합니다. 1. 안드로이드 GPS 정보 가져오기 1.1 AndroidManifest.xml에 권한 등록하기 1.2 위치 관리자 객체 참조하기 Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 1.3 Location Listener 구현 : Location Listener는 위치정보를 전달할 때 호출되므로 onLocationChanged() 메서드 안에서 위치 정보 처리. final LocationListener gpsLocationListener = new LocationLi.. 2022. 5. 23.
아이유(IU) 프로필 아이유(IU) 대한민국의 가수이자 배우. 본명 이지은 (李知恩, Lee Jieun) 출생 1993년 5월 16일 (만 30세) 경기도 광주군 광주읍 송정리 (現 경기도 광주시 송정동) 국적 대한민국 본관 전주 이씨 신체 161.8cm|O형|225mm 가족 아버지, 어머니, 남동생 학력 서울양남초등학교 (졸업) 언주중학교 (졸업) 동덕여자고등학교 (졸업) 데뷔 2008년 9월 18일| 엠 카운트다운 데뷔 음반 미니 1집 Lost And Found 종교 무종교 직업 싱어송라이터, 배우, 유튜버, 프로듀서 장르 댄스, 어쿠스틱, 발라드, R&B, Pop-rock 등 부캐 이지금, 이지동 팬덤 U愛나 (UAENA) 공식색 NEON YELLOW 유튜브 LoenIU 이지금 [IU Official] EDAM Ente.. 2022. 5. 22.
728x90