분류 전체보기
-
안드로이드 비동기 처리 2-3 (Operators : 연산자들)안드로이드 학습/Android 기술면접 대비 2024. 8. 29. 17:41
5가지 Base Classes 학습에 이어서 Operators를 학습해보려고 한다. Operators 연산자들은 분류 할수 있는 종류(생성, 변환, 필터, 결합 등등) 도 많지만 각 종류별로 포함하는 연산자들이 많다. 그래서 이번에 한번에 정리하기는 힘들어서 몇몇 정류만 골라서 학습해봐야 할 것 같다. 우선 연산자의 분류부터 보자.1. 연산자 분류생성 연산자just(), fromXXX(), create(), interval(), range(), timer(), intervalRange(), defer(), repeat()변환 연산자map(), flatMap(), concatMap(), switchMap), groupBy(), scan(), buffer(), window()필터 연산자filter(),..
-
안드로이드 비동기 처리 2-2 (RxJava 버전 및 5가지 Base classes)안드로이드 학습/Android 기술면접 대비 2024. 8. 29. 17:23
현재 RxJava는 Version 3.x 까지 나왔다. 아래의 설명은 3.x 버전 기준이다.. RxJava 2.x, 1.x에 대한 내용은 RxJava의 github 저장소에 자세히 나와있으므로 참고Base classes RxJava는 5가지 Base classes 가 있다. Observable, Single, Maybe, Flowable, Completable 1. Observable설명 : Observable은 데이터의 흐름에 맞게 알림을 보내줘 구독한 Observer이 데이터를 사용할 수 있도록 해준다. 소량의 데이터 스트림을 다룰 때 사용된다. BackPressure는 지원하지 않는다.특징 :소량의 데이터 스트림에 적합.BackPressure가 없음.단순한 데이터 스트림 처리에 사용됨.안드로이드..
-
안드로이드 Context안드로이드 학습/Android 기술면접 대비 2024. 8. 22. 17:54
차례:1) Context란?2) Context와 하위클래스3) Application & Activity Context4) Context가 필요한 이유: 앱 개발을 하면서 context를 자주 봤었다. 보기만 했었고 왜 있는건지나 정확히 어떻게 사용되는 것인지에 대해 깊게 생각해보지는 않았던 것 같다. 그래서 이참에 한번 제대로 학습해보기로 결정했다. 1. Context란?우선, developer 사이트의 context 설명을 보자.애플리케이션 환경에 대한 전역 정보에 대한 인터페이스입니다. 이는 Android system에 의해 구현된 추상 클래스입니다. 이를 통해 애플리케이션별 리소스 및 클래스에 액세스할 수 있으며, 액티비티 시작, 인텐트 방송 및 수신과 같은 애플리케이션 수준의 작업에 대한 업콜을 ..
-
Handler와 Looper안드로이드 학습/Android 기술면접 대비 2024. 8. 20. 17:22
UI 업데이트를 메인 스레드에서만 허용한다. 하지만 메인 스레드 이외의 스레드에서 UI 처리를 해야 한다면 해당 스레드와 UI 스레드를 이어주는 것이 handler이다. 메인 스레드 :더보기앱 프로세스가 시작되면서 Main Thread(메인 스레드)가 생성된다. 컴포넌트의 생명주기 메서드와 그 안의 메서드 호출은 기본적으로 메인 스레드에서 실행된다. 메인 스레드는 UI를 변경할 수 있는 유일한 스레드이기 때문에 메인 스레드를 UI 스레드로 부르기도 한다. UI 작업을 UI / Main Thread에서만 하는 이유?UI 작업을 Worker Thread(새로 생성된 스레드)에서 비동기적으로 처리한다면 동기화 문제에 마주치게 될 것이다 .안드로이드는 이런 문제를 막기위해 병렬 동작하는 Main Thread와..
-
Serializable, Parcelable (Intent) 그리고 Parcelize안드로이드 학습/Android 기술면접 대비 2024. 8. 8. 17:20
차례:1. 직렬화와 역직렬화란2. Serializable, Parcelable 이란? 안드로이드에서 data를 다른 컴포넌트로 넘길때 Intent를 사용한다. 예를 들어, Activity 에서 Activity 혹은 Activity에서 Service등 다른 컴포넌트로 데이터를 넘길때 Intent 안에 구성되어 있는 Bundle에 넣고 보내준다. (Intent & Bundle 기초내용) 하지만 객체는 직렬화 코드 추가 없이 Intent로 다른 컴포넌트에 전달이 불가능하다. Intent로 전달 가능한 타입더보기기본 데이터 타입 (int, double, boolean 등등)StringArrayList 등등 (안에 이미 Serializable이 추가되어 있다) 객체를 보내려면 직렬화 코드가 추가되어야 한는데 안..
-
안드로이드 비동기 처리 2-1 (RxJava & RxAndroid)안드로이드 학습/Android 기술면접 대비 2024. 8. 8. 09:45
안드로이드 비동기 Task를 처리할 때 주로 Thread와 Runnable등을 만들어서 처리했었다. 하지만 여러 기업들의 안드로이드 개발자 모집 요강에 보면 RxJava나 Coroutine의 경험을 필요로 한 것을 쉽게 볼 수 있다. 이것은 아마도 RxJava와 Coroutine만의 장점이 있기 때문이라고 생각한다. 그래서 먼저 RxJava 학습을 통해 좀 더 유연한 비동기 처리를 하기 위해서 학습을 시작하였다. 우선 RxJava, RxAndroid를 보면 공통적으로 보이는 것이 Rx다. 그래서 Rx가 무엇인지 먼저 알고 넘어가는 것이 필요할 것 같다. 1. RX란??Rx란 Reactive Programming이다. 반응형 프로그래밍이라고도 한다.반응형 프로그램이란 기존의 코드가 순서대로 실행되는 것과는..
-
안드로이드 비동기 처리 1 (Thread, Runnable, Executor Service)안드로이드 학습/Android 기술면접 대비 2024. 7. 18. 13:58
안드로이드에서 비동기 작업을 하는 방법은 여러가지 있다.Thread & RunnableRxJavaCoroutine각각의 방법은 장단점이 있기 때문에 상황에 맞게 적절하게 사용되는 것이 바람직하다. 어느 타이밍에 써야 적합할지를 알기 위해서는 각각 방법을 학습해서 학습할 필요성을 느꼈다. 그래서 먼저 가장 기본적인 Thread를 생성하고 사용하는 3가지 방식을 학습해보리고 한다. Thread 좀 더 간단하게 사용하는 방식은 아래와 같다. 1) Thread를 직접 만들어서 사용하는 방식2) Runnable을 만든 후, Thread에 Runnable을 넘겨서 실행하도록 하는 방식3) Executor Service를 이용해서 Thread Pool을 만들거 Runnable 생성후 submit 하는 방식 아래 ..
-
[TedImagePicker] 1-2. TedImagePickerBaseBuilder오픈소스 공부/TedImagePicker 2024. 6. 1. 15:59
1편에서는 MainActivity부터 TedImagePicker 클래스까지 사용되는 메서드들의 흐름을 보았다.이번장에서는 주 TedImagePickerBaseBuilder의 진행되는 흐름을 보려고 한다. 1편에서 마지막으로 start 메서드를 살펴보았고 마지막으로 statInternal(it)이 실행되는 것을 보았다. contextWeakReference.get()?.let { startInternal(it)} startInternal 메소드는 TedImagePicker 에서 상속받은 TedImagePickerBaseBuilder에 선언되어있다. (MainActivity.kt > TedImagePicker > TedImagePickerBaseBuilder 이동) 1. startInternal ..
-
[Kotlin] in out 키워드코틀린 공부/코틀린 기초 2024. 5. 27. 14:24
요즘 다른 사람들이 만든 라이브러리를 공부하면서 제너릭과 같이 사용하는 out, in 키워드를 발견했다. 제너릭을 잘 활용하기 위해서 out, in 개념이 무엇인지 알 필요성이 있을것 같아서 공부를 하기로 했다. 먼저, in, out 키워드를 공부하면서 3가지 개념이 나온다. Invariance - 불변성Convariance - 공변성Contravariance - 반공변성1. 불변성이란?타입 불변성이란 제너틱 타입을 사용하는 클래스나 인터페이스에서 일치하는 타입만 사용할 수 있다. 즉, 해당 타입의 부모, 자식의 타입은 사용이 불가능하다. in & out 키워드가 없는 일반적인 제너릭이 이런 타입 불변성을 가진다. open class ParentVarianceclass ChildVariance1 : P..
-
[TedImagePicker] 0. 기본 소개 및 공부 방향오픈소스 공부/TedImagePicker 2024. 5. 23. 17:05
TedImagePicker는 안드로이드폰 내부 이미지를 비디오를 다양한 방식으로 가져올 수 있는 라이브러리다.https://github.com/ParkSangGwon/TedImagePicker GitHub - ParkSangGwon/TedImagePicker: TedImagePicker is simple/beautiful/smart image pickerTedImagePicker is simple/beautiful/smart image picker - ParkSangGwon/TedImagePickergithub.com 내부적으로 동기방식으로 가져오는 방식비동기 방식인 Rxjava를 사용하는 방식한가지만 가져오는 방식여러가지 이미지를 가져오는 방식 등등 여러가지를 방법으로 이미지를 가져오는 방법을 지원한다..