본문 바로가기

반응형

kotlin

Coroutine 3부 코루틴은 Dispatcher.Default와 같은 멀티 스레드 디스패쳐를 통해서 동시에 수행되도록 만들수 있다. 이러한 상황에서 주로 발생하는 문제는 동기화 이슈가 있으며 일반적인 멀티 스레드에서의 동기화 해결책들과 비슷하지만 코루틴 고유의 것들도 존재 (Actor) Volatile [공유객체] 하나의 객체를 여러 개의 쓰레드가 함께 사용하거나 공유한다는 것을 의미 ex) 놀이터에 그네가 하나 있고, 어린 아이들은 셋 있다. 이런 상황에서 그네를 [공유 객체], 아이들을 [Thread]라고 말할 수 있다. 클래스의 멤버변수는 heap 메모리에 존재하므로 스레드가 공유하여 접근할 수 있으며 이때 각 스레드는 속도향상을 위해 메인 메모리에 접근해서 값을 가져가는게 아닌, 캐시에서 변수값을 읽어가며 쓰기 또한.. 더보기
Coroutine 1부 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴 코루틴은 Kotlin만의 고유한 개념이 아니며 다른 언어에서도 지원하고 있다. Co: 함께 routine : 규칙적으로 하는 일의 통상적인 순서나 방법, 일반적으로 빈번히 사용할 수 있는 프로그램 또는 그 일부 장점 경량 : 코루틴은 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있다. 메모리 누수 감소 : 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행 취소 지원 : 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달 일반적인 서브 루틴 fun main() { val addValue = plusOne(value) } fun plusONe.. 더보기
Android Custom Progress Dialog 안드로이드 오레오(8.0)에서 프로그래스 다이얼로그가 Deprecated 되었다. 이유인 즉슨 ProgressDialog가 모달 대화상자기 때문에 사용자와의 상호작용성을 떨어트리기 때문이라고 한다. 잘 써먹던 건데 이래되버리니 그냥 내가 만들어서 라이브러리로 만들어 놓고 써야겠다 싶어서 만들고 공유한다. https://github.com/welcome2c/LottieProgressDialo welcome2c/LottieProgressDialog Custom Dialog. Contribute to welcome2c/LottieProgressDialog development by creating an account on GitHub. github.com - Top level build.gradle 에 추가 .. 더보기
코틀린 let, with, apply, also, run Scope Functions 범위 지정 함수 - 수신 객체, 수신 객체 지정 람다 두가지 구성 요소를 가지는 함수. 수신 객체와 수신 객체 지정 람다는 어떤걸 의미할까? ex) Human("Kim", 30, "Seoul").let { println(it) it.moveTo("Busan") it.incrementAge() println(it) } 위의 코드에서 Human 객체를 리시버, let 다음의 { } 부분을 람다함수라고 한다. 해당 람다 함수에서 Human 객체에 접근할 수 있다. 해당 함수들을 이용하면 객체에 접근하는 방법을 쉽게 해주고 코드가 간결해지고 가독성이 높아지는 장점이 있다. 1. with() inline fun with(receiver: T, block: T.() -> R): R { .. 더보기
FCM 푸쉬메시지 테스트 앱 FCM 푸쉬를 Data타입으로 전송하는 테스트 앱. Token, Group, Topic으로 전송이 가능하다. Firebase Class 파일에서 본인의 FCM 서버키를 설정해주면 된다. https://github.com/welcome2c/FirebaseSend 더보기

반응형