Kotlin
-
Kotlin Flow에서의 Debounce와 Throttle 기법안드로이드 2025. 3. 25. 22:25
Kotlin에서는 Flow를 활용하여 비동기적으로 이벤트를 처리할 수 있으며, 이벤트가 지나치게 자주 발생하는 경우 이를 제어하는 다양한 기법이 필요합니다. Debounce와 Throttle은 이러한 상황에서 유용하게 사용되는 기법으로, 불필요한 작업을 줄이고 성능을 최적화하는 데 큰 도움이 됩니다. 본 글에서는 이 두 기법의 개념과 이를 Kotlin Flow에서 어떻게 적용할 수 있는지에 대해 살펴보겠습니다. 1. Debounce와 Throttle 기법이란?DebounceDebounce는 연속된 이벤트 중 마지막 이벤트만 실행되도록 처리하는 기법입니다.일정 시간 동안 추가적인 이벤트가 발생하지 않으면, 그때서야 마지막 이벤트를 처리하게 됩니다.즉, 빠르게 발생하는 여러 이벤트 중에서 마지막 이벤트를 처..
-
[Kotlin] invoke 함수Kotlin 2025. 1. 15. 22:15
Kotlin의 invoke()는 무엇인가?코틀린(Kotlin)에는 이름 없이 호출할 수 있는 특별한 함수, 정확히는 연산자인 invoke()가 존재합니다. 이 함수는 객체를 마치 함수처럼 사용할 수 있도록 만들어 주는 강력한 기능을 제공합니다. 아래의 예제를 통해 invoke()의 동작을 살펴보겠습니다.class Example { operator fun invoke(str: String): String { return str.toUpperCase() }}위 코드는 Example 클래스에 invoke() 연산자를 정의한 예제입니다. 이 invoke()는 일반 메서드처럼 호출할 수 있습니다:val example = Example()println(example.invoke("hello"..
-
[Kotlin] 함수형 프로그래밍 파헤치기Kotlin 2022. 6. 17. 00:38
함수형 프로그래밍이란?🤷🏻♂️ 하나의 프로그래밍 패러다임으로 정의되는 일련의 코딩 접근 방식이며, 자료처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 지양하는 프로그래밍 패러다임을 의미합니다. 함수형 프로그래밍 언어로는 클로저, 스칼라, 하스켈 등의 언어가 있으며, 파이썬, 코틀린, 자바스크립트 등에도 최근 버전에 함수형 프로그래밍 문법이 추가 되었습니다. 함수형 프로그래밍의 특징🔥 1. 순수 함수 (Pure Function) 동일한 입력에는 항상 같은 값을 반환해야 하는 함수 함수의 실행이 프로그램의 실행에 영향을 미치지 않아야 하는 함수 함수 내부에서 인자의 값을 변경하거나 프로그램 상태를 변경하는 Side Effect(부작용)가 없는 함수 val num = 1 fun sum(a : I..
-
[Android] Fragment에서 Google Map Api 사용하기안드로이드 2022. 3. 18. 17:44
Android Fragment에서 Google Map API를 사용법을 정리해보았습니다. 1. 프로젝트 생성 Google Api Console에서 프로젝트를 생성해 줍니다. 프로젝트 생성 후 API 라이브러리로 이동하여 API 사용 등록합니다. Maps SDK for Android 텝을 들어가 해당 API 사용을 클릭합니다. 2. API 키 생성 및 설정 Google API 대시보드 화면에서 사용자 인증 정보 텝으로 이동. 사용자 인증 정보 텝에서 사용자 인증정보 만들기 클릭. 그러면 위와 같이 API 키가 생성됩니다. 그런 다음 우측에 있는 API 키 수정 버튼을 클릭하여 애플리케이션 제한사항을 설정해줍니다. Google Map API를 적용할 Android 앱의 패키지 명을 적어주고 SHA-1 키를 ..
-
[Android] 안드로이드 View Binding(뷰바인딩)안드로이드 2021. 12. 22. 19:52
View Binding(뷰 바인딩)이란..? 뷰 바인딩은 뷰와 상호 작용하는 코드를 보다 쉽게 작성할 수 있는 기능입니다. 모듈에서 뷰 바인딩이 활성화되면 해당 모듈에 있는 각 XML 레이아웃 파일에 대한 바인딩 클래스를 생성합니다. 바인딩 클래스의 인스턴스에는 해당 레이아웃에 ID가 있는 모든 보기에 대한 직접 참조가 포함되어 있습니다. 뷰 바인딩은 Android Studio 3.6 Canary 11 이상에서만 사용할 수 있습니다. findViewById와의 차이점 Null Safety: View Binding은 뷰의 직접 참조를 생성하므로 유효하지 않은 뷰 ID로 인해 null 포인터 예외가 발생할 위험이 없습니다. 또한 레이아웃의 일부 구성에만 뷰가 있는 경우 결합 클래스에서 참조를 포함하는 필..