일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- androidStudio
- Python
- Gradle
- 코드포스
- Compose
- GitHub
- ProGuard
- architecture
- relay
- Hilt
- 프로그래머스
- 쿠링
- TEST
- pandas
- 백준
- boj
- livedata
- Coroutine
- Rxjava
- AWS
- MyVoca
- textfield
- Kotlin
- 암호학
- android
- MiTweet
- Coroutines
- Codeforces
- 코루틴
- NGINX
- Today
- Total
목록Kotlin (28)
이동식 저장소
Kotlin의 ``mutableMapOf()`` 함수는 내부적으로 ``LinkedHashMap()``을 반환한다. /** * Returns an empty new [MutableMap]. * * The returned map preserves the entry iteration order. * @sample samples.collections.Maps.Instantiation.emptyMutableMap */ @SinceKotlin("1.1") @kotlin.internal.InlineOnly public inline fun mutableMapOf(): MutableMap = LinkedHashMap() Kotlin ``LinkedHashMap``은 Java의 ``LinkedHashMap``으로 ``ty..
개요 구글에서 Java 다운로드를 검색하면, 예전부터 흔히 보던 오라클의 다운로드 페이지가 맨 위에 뜬다. 그런데 잘 보면 Version 8 update 381, 즉 JRE 8 버전이 다운로드된다고 한다. JDK 버전은 20을 넘어 21을 향해 달려가고 있는데, 유독 JRE만 8에서 멈춰있는 이유는 무엇인가? 멈춰있지 않다 사실 이 질문은 잘못된 질문이다. JRE가 버전 8에서 멈춰있지 않기 때문이다. JDK 11이 설치되어 있는 내 노트북에서 `java -version` 커맨드를 실행하면 OpenJDK Runtime 11 버전이 설치됐음을 확인할 수 있다. 오라클에서 개발자가 아닌 일반 사용자들에게 Java 8 버전을 권장하기 때문에 이런 오해가 생겼지만, 상위 버전의 JRE도 JDK와 함께 제공되고 ..
지난 글에서 Java의 컴파일과 관련된 두 가지 옵션을 공부했다. sourceCompatibility vs. targetCompatibility App level ``build.gradle`` 파일에는 ``sourceCompatibility``와 ``targetCompatibility``라는 속성이 정의되어 있다. android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } 이 thinking-face.tistory.com 이번 글에서는 Kotlin의 ``jvmTarget`` 옵션에 대해 공부해 보자. jvmTarget android { ... k..
Job 코루틴에서 백그라운드 작업을 나타내는 인터페이스이다. 인터페이스이긴 하지만 동명의 함수로 Job 객체를 만들 수 있다. interface Job : CoroutineContext.Element public fun Job(parent: Job? = null): CompletableJob = ... Job은 부모-자식 관계로 정렬될 수 있다. 부모 Job이 종료되면 자식 Job도 재귀적으로 모두 종료되며, 자식 Job에서 exception이 발생하면 그 Job의 부모도 즉시 종료되고, 부모의 모든 자식이 재귀적으로 종료된다. 부모의 cancel과 다르게 자식의 failure는 부모 쪽으로 전파되지는 않으며, 자신의 부모에만 영향을 미친다. Job 객체를 얻는 방법은 크게 두 가지이다. 위에서처럼 ``..
Kotlin Coroutines에서 Dispatcher는 코루틴이 실행되는 스레드를 결정한다. 특정한 스레드를 지정할 수도 있고, thread pool에 넘겨줄 수도 있고, 아예 정하지 않을 수도 있다. ``launch``, ``async``, ``withContext`` 등의 모든 코루틴 빌드 함수는 ``CoroutineContext`` 타입의 매개변수를 받는다. 따라서 필요하다면 dispatcher를 매개변수로 넘겨줄 수 있다. launch(Dispatchers.Default) { // do something } 이 글에서는 Kotlin에서 사용할 수 있는 dispatcher에 대해 자세히 알아보겠다. Dispatchers.Main 메인 스레드, 즉 UI 스레드를 의미하는 dispatcher이다. J..