Java 썸네일형 리스트형 [코루틴] async & Deferred async란?- 코루틴 빌더- launch 빌더와 비슷, async는 결과값을 담기 위해 Deferred를 반환// async. Deferred 반환public fun CoroutineScope.async( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> T): Deferred { val newContext = newCoroutineContext(context) val coroutine = if (start.isLazy) LazyDeferredCoroutine(newCont.. 더보기 CoroutineDispatcher 란 무엇인가 코틀린 코루틴의 정석 책을 참고하여 CoroutineDispatcher에 대해 알아보자. CoroutineDispatcher 란 무엇일까?Coroutine(코루틴) + Dispatcher(보내다)로 코루틴을 보내는 주체를 말한다. 그렇다면 코루틴을 어디에다 보내는 것일까? 스레드(Thread)로 보낸다. 즉, ThreadPool 안의 스레드에게 코루틴을 보내 실행시키는 역할을 담당한다. 코루틴 Dispatcher는 아래와 같이 CoroutineContext의 Element임을 알 수 있다. public abstract class CoroutineDispatcher : AbstractCoroutineContextElement(ContinuationInterceptor), ContinuationInterce.. 더보기 [안드로이드] RxJava3CallAdapterFactory 이번 포스팅에서는 RxJava3CallAdapterFactory에 대한 내용을 알아보고자 한다. 안드로이드에서 Http 통신을 할 때 대부분 Retrofit 라이브러리를 사용한다. 만약 Retrofit과 Rxjava3를 함께 사용한다면 한 번쯤은 이런 에러를 경험했을 수 있다. 아래와 같이 Retrofit 인스턴스와 UserApi 인터페이스를 정의했다고 가정해 보자. val retrofit = Retrofit.Builder() .baseUrl("https://openapi/base") .addConverterFactory(GsonConverterFactory.create(gson)) .build() interface UserApi { @GET("api/v1/users") fun getUser(): Sin.. 더보기 [안드로이드] Retrofit 분석 안드로이드 개발에서 필수적으로 알아야 하는 Retrofit에 대해 알아보자. 우선 Retrofit이 무엇인지 알아야 한다. Retrofit은 OkHttp를 기반으로 한 type-safe 한 HTTP client 오픈소스 라이브러리이다. 쉽게 말해서 안드로이드에서 클라이언트와 서버 간 HTTP 통신을 쉽게 해주는 라이브러리라고 생각하면 될 것 같다. Retrofit 내부 코드에 나와있는 설명을 보면 아래와 같이 나와있다. Retrofit adapts a Java interface to HTTP calls by using annotations on the declared methods to define how requests are made. Create instances using the builder a.. 더보기 [코틀린] 자바와 코틀린의 상호 운용성 안드로이드 개발하는 kancho입니다. 이번 포스팅에서는 자바와 코틀린 코드의 상호 운용성에 대해 알아보고자 합니다. '코틀린 완벽 가이드' 책을 참고하였습니다. 코틀린은 JVM을 대상으로 만들어졌기 때문에 자바 코드를 코틀린에서 쉽게 사용할 수 있다. 주로 자바에 없는 코틀린 기능으로 문제가 발생하는데 이를 해결하는 방법들을 알아보자. 자바 코드를 코틀린에서 사용하기 1. 자바 메서드와 필드 자바 메서드를 아무 문제없이 코틀린 함수처럼 노출시킬 수 있다. 각 언어의 내용에 따라 뉘앙스 차이는 있을 수 있다. 자바 언어로 된 Java 클래스 public class Java { private String hello = "Hello"; public String getHello() { return hello;.. 더보기 [코틀린] Annotation 안드로이드 개발하는 kancho입니다. 이번 포스팅에서는 코틀린의 어노테이션(Annotation)에 대해 알아보고자 합니다. '코틀린 완벽 가이드' 책을 참고하였습니다. Annotation(어노테이션) 어노테이션은 코틀린 선언에 메타데이터를 엮어서 활용할 수 있게 해 준다. 커스텀 메타 데이터를 정의하고 코드에서 선언, 식, 파일 등의 요소에 엮는 방법을 제공한다. 3가지 어노테이션 코틀린과 안드로이드에 내장된 annotation (ex. Deprecated) Annotation에 대한 정보를 나타내기 위한 어노테이션인 meta annotation (ex. Target, Retention) 커스텀한 annotation 정의 선언의 앞쪽 변경자 위치에 @이 붙은 어노테이션 이름으로 정의한다. annotat.. 더보기 [코틀린] Enum 클래스 안드로이드 개발하는 kancho입니다. 이번 포스팅에서는 코틀린의 Enum 클래스에 대해 알아보고자 합니다. '코틀린 완벽 가이드' 책을 참고하였습니다. Enum 클래스 미리 정의된 상수들로 이뤄진 제한된 집합을 표현하는 클래스 기본적인 구조는 아래와 같다. enum class 클래스명 { // 상수 // 멤버 변수, 멤버 함수 } enum 클래스를 코드로 알아보자. 아래는 요일을 나타내는 WeekDay enum 클래스이다. WeekDay의 확장 함수인 isWorkDay()는 일하는 요일을 판별하는 함수이다. enum 클래스는 정수, 문자열 등과 비교 시 어떤 값이 가능한 범위 안에 있는지 검사할 필요가 없고 정의한 상수들의 집합을 type-safe 하게 다룰 수 있다. /* 요일을 enum 클래스 안에.. 더보기 이전 1 다음