2021년도 잘 부탁드려요. - 이건 회고인가 자랑인가?

2021년도 3일이 지나가고 있다. 역시 휴일은 빠르게 흘러간다.

2016년 thdev.tech 도메인을 구입하고 벌써 5년이 흘러가고 있다.

도메인은 사실 tech가 처음 나오고 10%에($5) 구입할 수 있어 구입했던 도메인인데 현재는 매년 $50의 유지비가 발생한다.(슬픈 사실)

Read More

Kotlin CoroutineScope을 알아보고, cancel 처리에 대해서 알아보자.

runBlocking과 GlobalScope에 대해서 알아보았다.

이 두 가지의 코루틴은 이유 없이 사용해서는 안 되는 것들이다. 그럼 사용할 수 있는 건 가장 기본적인 CoroutineScope이 남는다.

필자가 한참 코루틴을 학습할 때 적었던 내용에 CoroutineScope의 활용 방법은 이미 다양하게 나온다.

이 글에서는 CoroutineScope의 사용 방법을 좀 더 알아보고(MainScope, CoroutineScope), 무한 루프 상의 cancel 처리 동작을 알아보려고 한다.


이 글에서 알아볼 내용

  • CoroutineScope 사용 방법을 알아본다.
  • CoroutineScope 안에서 동작하는 무한 루프에서의 cancel의 동작을 알아본다.
  • AAC-ViewModel의 viewModelScop을 알아본다.

Read More

Kotlin Coroutines의 GlobalScope을 어떻게 사용할 수 있을까? - 사실 추천하지 않는다.

코루틴의 runBlocking에 대해서 이야기했다. Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자! 결국 잘 알고 사용하는 건 문제가 없다. 역시나 잘 못 알고 사용하는 경우라면 사실 사용치 않는 게 맞는다고 생각한다.

이번 글은 코루틴 관련 2 번째 글로 GlobalScope에 대해서 알아보려고 한다.

이 역시 Android 개발에서는 lifecycle과 관련이 깊다. 일반적인 서버나 웹에서도 역시 GlobalScope을 무작정 사용하는 건 맞지 않을 것이다.

CoroutineScope은 각각의 라이프 사이클을 별도로 가지고 종료를 할 수 있는 반면 GlobalScope은 싱글톤으로 만들어져있어, 잘못 활용한다면 프로그램 전체에 악영향을 미칠 수 있다.

싱글톤 자체만으로도 사실 악영향을 미칠 수 있는데, GlobalScope을 이용해 새로운 컨텍스트를 만들어 사용하는 케이스도 있다.

결국 상황에 따라 잘 활용하면 이득을 볼 수 있으니 이 글에서는 GlobalScope에 대해서 좀 더 알아보려고 한다.


이 글에서 알아볼 내용

  • GlobalScope의 내부 코드를 살펴본다.
  • GlobalScope을 이용한 Android UI 코드를 살펴본다.
  • GlobalScope을 사용할 때 그나마 할 수 있는 예외를 살펴본다.

Read More

Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자!

코루틴을 활용하다 보면 문서에 나오는 것 외에도 다양하게 활용될 수 있다. 하지만 모든 Scope이 정답은 아니고, 상황에 맞는 게 있다.

안드로이드에서는 당연하게도 CoroutineScope을 사용해 lifecycle을 따르도록 개발하는 걸 권장하는데 onDestroy 시점에 cancel() 할 수 있는 형태로 만들어져있다.

Lifecycle을 따르는 건 매우 자연스럽다.

이 글에서는 다양하게 사용할 수 있는 Scope 중 먼저 runBlocking을 알아본다.


이 글에서 알아볼 내용

  • runBlocking을 UI에서 사용해도 괜찮을까?
  • runBlocking의 내부 코드를 알아보자.
  • 그럼 runBlocking은 언제 쓰는 게 좋을까?

Read More

안드로이드의 익숙한 BaseXXX class를 알아보고, 설계의 중요성을 알아보자.

Java에서 상속은 매우 익숙하다. 앞에서 적은 상속! 악마의 속삭임, 그 속에 숨겨진 문제점, Kotlin에서는 Delegation을 활용해 보자. 글을 보면 알겠지만 상속에는 숨겨진 문제점이 있다.

상속을 지키리 면 open을 통해 열고 닫고를 잘해야 하고, 설계를 잘 해야 하고 주석도 잘 달아주는 게 좋다.

처음의 의도와 달라질 수 있는 환경이라면 상속보다는 다른 방법을 활용하는 게 좋다.

이 글에서는 Android에서 흔하게 작성하는 class BaseXXX를 알아보고 좀 더 좋은 접근 방법을 알아보려고 한다.


이 글에서 알아볼 내용

  • 안드로이드에서 Lifecycle을 따를 수 있는 상속을 계획할 수 있도록 글을 작성
  • 몇 가지 Base를 살펴보고 좀 더 좋은 방향을 알아보자.

Read More