본문 바로가기

Kotlin4

[Kotlin] extension 함수의 이해 코틀린에서 extension 함수는 기존에 존재하는 클래스의 변형 없이 새로운 함수를 추가할 수 있도록 해준다. 이 것은 기존에 정의되어 있지 않더라도 정의되어 있는 것처럼 사용 할 수 있도록 하여 좀 더 코틀린을 유연하게 사용할 수 있도록 도와준다. 예를 들어 우리가 컨트롤 할 수 없는 3rd party library의 클래스에 필요한 메서드를 추가할 수 있다. 장점 클래스 소스파일의 수정 없이 함수를 추가할 수 있다. 소스 코드가 없는 경우 매우 유용하게 사용될 수 있다. 관련된 함수를 하나의 클래스나 오브젝트로 그룹핑 할 수 있어 가독성 있고 이해하기 쉬운 코드를 작성할 수 있게 해 준다. 코드의 중복을 줄여서 유지보수에 유용하다. 단점 많은 장점에도 불구하고 extension 도 몇 가지 단점이 .. 2023. 10. 31.
[Kotlin] Channel, ReceiveChannel, Pipeline Kotlin Channel 은 둘 이상의 코루틴 간의 동시성 통신을 가능하게 하는 강력한 구조입니다. Channel 은 서로를 간섭하지 않고 데이터를 공유하고 함께 작업할 수 있도록 합니다. Kotlin의 Channel에 대해서 알아보고 사용하는 팁과 예시를 알아보고 Channel을 이용하여 Pipeline을 어떻게 효율적으로 사용하는지 알아보겠습니다. Channel 은 무엇인가? Channel 은 한 코루틴에서 다른 코루틴으로 데이터가 흐를 수 있도록 파이프라인을 연결합니다. 본질적으로 코루틴의 메세지를 보내고 받을 수 있는 버퍼 또는 큐 입니다. 한 코루틴은 Channel에 데이터를 전송할 수 있고, 다른 코루틴 Channel을 통해 해당 데이터를 검색하고 받을 수 있습니다. 이는 코루틴을 위한 pu.. 2023. 10. 20.
[Kotlin] 범위 지정 함수(scope function) 란? apply, run, let, with, also Kotlin에서 말하는 범위 지정 함수는 특정 객체 (수신 객체)에 대한 작업을 블록 안에서 실행할 수 있도록 하는 함수입니다. 블록은 해당 작업의 범위를 지정하기에 범위 지정 함수라고 부릅니다. 범위 지정 함수를 사용하게 되면 코드의 가독성이 증가하고 유지보수에 유리한 면이 생깁니다. 그럼 범위 지정 함수의 구성 요소 및 종류에 대해 알아보도록 하겠습니다. 구성요성 범위 지정 함수의 구성 요소는 아래 2가지가 있습니다. 수신 객체 수신 객체 지정 람다 수신 객체는 범위 지정 함수에서 작업을 수행하는 타깃 객체입니다. 그리고 수신 객체 지정 람다는 해당 수신 객체로 수행하게 될 블록의 함수를 말합니다. 범위 지정 함수에는 apply, run, let, with, also 등 5가지가 존재하는데 이 5가지.. 2023. 9. 19.
[Android] Kotlin CoroutineScope 에 대해 알아보자 프로그래밍에서 비동기 처리는 매우 까다롭고 중요한 개념입니다. 다양한 언어에서 비동기를 처리 하기 위해 다양한 방법을 사용하며, 코루틴은 Kotlin 에서 비동기를 처리하는 방식입니다. 그럼 CoroutionScope 는 무엇일까요? Scope 라는 말 그대로 비동기를 실행하기 위한 작업 범위 입니다. 비동기 작업을 해당 Scope (범위) 에서 실행해라. 이는 무분별한 비동기 처리로 인한 메모리 누수와 리소스 낭비를 막기 위함입니다. 사용자는 CoroutineScope 를 설정하고 특정 수명 주기에 따라 실행, 취소, 재실행 등을 할 수 있습니다. 그럼 CoroutineScope 의 종류에는 어떤것이 있을까요? GlobalScope 안드로이드에서 CoroutineScope 를 설정하지 않아도 기본적으로.. 2023. 9. 8.
반응형