본문 바로가기

Language/Kotlin

(19)
[Kotlin] @JvmSuppressWildCards 의미 @JvmSuppressWildcards 애노테이션 @JvmSuppressWildcards 코틀린 컴파일러는 제네릭을 기본적으로 List을 List
[Kotlin] Kotlin @annotation 정리 Kotlin 자주 사용하는 @annotation 정리 Annotations @JvmName : JAVA에서 호출되는 Kotlin의 함수, 변수, 파일명을 Renamed(변경) @JvmMultifileClass : 여러 파일, 클래스들이 같은 이름으로 Renamed 될 경우 선언해서 같은 이름으로 사용 @JvmStatic : static 변수의 Getter/Setter 함수를 자동으로 생성하라는 애노테이션, 즉 static Getter/Setter @JvmField : Getter/Setter를 자동으로 생성하지 말라는 애노테이션 @Throws : 해당 코틀린 함수가 예외를 던질 수 있다는 의미의 애노테이션 @JvmOverloads : 인자의 기본값(Default Value)이 없는 Java를 위해, 오버..
[Kotlin] 코틀린 기본 - object / Companion Object(동반 객체) Kotlin - object 키워드 + Companion Object (동반 객체) Kotlin object 키워드 object는 흔히 JAVA에서 사용하는 무명 내부 클래스(anonymous inner class) 처럼 사용할 수 있습니다 object 키워드는 클래스를 정의하면서 객체를 생성하는 키워드 object - 싱글톤(SingleTon) Kotlin에서는 object 키워드를 사용함으로 별다른 정의없이 싱글톤(Singleton) 구현을 지원해줍니다 JAVA에서는 클래스 내부에 Static객체로 한번만 할당해주는 코드가 Kotlin에서는 class 키워드 대신 object 키워드를 사용하면 static객체에 할당하는 것처럼 자동으로 생성해줍니다 // UserRepo 클래스 싱글톤 구현 object..
[Kotlin] Collection '컬렉션' Kotlin - Collection '컬렉션' Immutable(불변) / Mutable(가변) 코틀린은 자바와 다르게 Collection을 2종류 타입으로 나눠서 구분 - Immutable / Mutable Immutable (불변) : Read-Only '읽기전용'의 Collection 한번 정의되면 수정이 불가 - (add() / put() / remove() 등) 추가, 삭제 불가 단순하게 추출하는 용도로 사용 : 생성 함수 (function) listOf, setOf, mapOf Mutable (가변) : Write+Read '읽기/쓰기'의 Collection으로 add / put / remove 등이 가능 : 생성 함수 (function) mutableListOf, mutableSetOf, m..
[Kotlin] 코루틴 #7 - Flow 코루틴 #7 - Flow (플로우) Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #5 - Channel (채널) 코루틴 #6 - 취소(Cancellation), 예외(Exception), 핸들러(Handler) Asynchronous Flow suspending Function(중단 함수)는 비동기로 동작하면서 하나의 값을 반환합니다. Flow는 비동기로 동작하면서 여러개의 값을 반환하는 Function은 만들 때 사용하는 Builder입니다 다중 값 나타내기 (Repressenting ..
[Kotlin] 코루틴 #6 - 취소(Cancellation), 예외(Exception), 핸들러(Handler) 취소(Cancellation), 예외(Exception), 핸들러(Handler) 코루틴에서 취소예외 / 일반 예외의 발생방법 / 유형과 처리방법 Handler에 대해서 작성 Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #5 - Channel (채널) 취소 (Cancellation) 코루틴은 내부적으로 취소 동작을 위해 CancellationException을 사용 CancellationException 예외는 모든 핸들러들이 무시하므로 handler를 등록해도 아무런 효과가 없습니다. ..
[Kotlin] 코루틴 #5 - Channel (채널) 코루틴 #5 - Channel (채널) 값의 흐름을 전송하는 Channel(채널)에 대해 작성 Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) 코루틴 #4 - CoroutineBuilder와 ScopeBuilder Channel (채널) Channel은 송신자(SendChannel)와 수신자(RecevieChannel) 사이의 통신을 위한 비차단 요소 Java의 BlockingQueue와 유사하지만 중요한 차이점은 BlockingQueue - put(), take() 차단(Blocking)해서 전송 / 수신하는 방법 Channel - send(), receive() 차..
[Kotlin] 코루틴 #4 - CoroutineBuilder와 ScopeBuilder 코루틴 #4 - CoroutineBuilder와 ScopeBuilder Coroutine Scope를 생성하는 Coroutine Builder에 대한 설명 (코루틴 빌더 = 스코프 빌더 같은 의미) launch / async / withContext / runBlocking / actor / produce Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #3 - suspend Function (중단함수) Scope Scope는 코루틴이 실행되는 범위 GlobalScope는 Application이 종료될 때 까지 존재하는 코루틴 (Activity가 종료되어도 존재하는 코루틴이므로 구분해서 사용해야 함) CoroutineB..