전체 글(382)
-
Kotlin inline 함수, 진짜 성능 최적화에 도움이 될까?
나는 Kotlin에서 함수를 만들 때 inline 함수를 자주 쓰는가?솔직히 말하면 그냥 일반 함수로도 충분한데 굳이 사용할 필요성을 느끼지 못했다. 그런데 inline 함수가 성능 최적화에 도움이 된다는 말을 들었다.사실일까?1. inline 함수란?inline 키워드는 고차 함수(high-order function)를 사용할 때 함수 호출을 제거하고,함수 본문을 직접 호출 위치에 삽입하는 기능이다. 즉, 컴파일러가 해당 함수를 호출하는 대신 코드를 직접 복사하셔 삽입(inlining)한다.일반 함수와 inline 함수를 비교한 예제를 확인해보자 ! 일반 함수 vs inline 함수 예제fun executeLambda(lambda: () -> Unit) { println("Before lambda..
2025.02.07 -
Kotlin 상태 관리 | Sealed Class vs Enum Class 차이점
개발을 하나보면 상태 관리가 중요하다.그럴 때 자주 등장하는 Sealed Class와 Enum Class.이 두개의 차이점에 대해 확인해보자. 1. Sealed Class vs Enum Class 차이점!✅ 언제 사용하면 좋을까?sealed class → 상태 관리, API 응답 처리, 다양한 타입을 표현할 때// Sealed Class 사용 예시sealed class NetworkResult { data class Success(val data: String) : NetworkResult() data class Error(val message: String) : NetworkResult() object Loading : NetworkResult()} enum class → 변하지 않는 ..
2025.02.06 -
Android에서 파일을 관리할 때, MIME 타입은 무엇일까?
Android에서 멀티미디어 파일을 관리하다 보면 MIME 타입을 설정하는 게 나온다.평소에는 그저 단순하게 확장자 명을 따지는건가? 싶긴 했는데정확하게 어떤 개념인지 몰라 정리해봤다. MIME 타입이란?Android에서 MIME 타입이란 Multipurpose Internet Mail Extensions Type의 약자이다.파일이나 데이터의 형식을 나타내는 문자열을 의미한다. 일반적으로 콘텐츠의 유형을 식별하고, 이를 적절하게 애플리케이션과 연결하는 데에 사용된다. MIME 타입의 대표적인 종류파일 유형MIME 타입텍스트 파일text/plainHTML 파일text/htmlJSON 데이터application/json이미지 파일 PNGimage/pngJPEGimage/jpegGIFimage/gif비디오 ..
2025.02.05 -
Caused by: com.android.aaptcompiler.ResourceCompilationException: Failed to compile values resource file
🌟 들어가기 전앱에서 하드코딩 된 string을 전부 resources 파일로 고치는 작업을 하였는데,빌드하는 과정에서 오류가 발생했다.**Caused by: com.android.aaptcompiler.ResourceCompilationException: Failed to compile values resource file** 흔히 오류는 몇번째 줄에서 났는지 알려주면 그 부분만 체크하면 되는데이번 오류는 그냥 “빌드 오류나쪄~~~” 만 있으니까 찾아내기가 너무 답답… 이 경우에 체크해봐야 할 사항은 뭘까? 🔍 세부 내용특수문자를 체크하자나는 딱 values-en 을 빌드하는 과정에서 오류가 발생했다.하지만 리소스 형태도 그렇고 틀린 부분이 없었다.그렇다면 ‘영어’라는 특수성에서 시작된 문제일까? ..
2025.02.04 -
Android UI 관리하기 | 하드코딩 된 string을 모두 resource 파일로 옮기기
🌟 들어가기 전요즘 같은 국제적인 시대에 앱에서 다국어 처리는 매우 중요하다.strings.xml 리소스 파일을 통해 다들 다국어를 지원하고 있을 것이다. 하지만 개발을 하다보면 “나중에 해야지~” 하고 우선 큰 따옴표로 하드코딩 텍스트를 박아놓고 까먹은 경우가 있지 않을까?아니면 내가 신규로 맡은 앱에서 이전 개발자가 귀찮다는 이유로 리소스 관리를 하지 않은 경우도 있지 않을까? 그렇다면 나는 어떻게 하드코딩 된 string을 한번에 찾아낼 수 있을까? 🔍 세부 내용첫번째 방법. 전체 검색을 활용하자우리에겐 Ctrl+Shift+F 라는 전체 검색 기능이 존재한다. 하지만 단순 검색이 아니다.검색을 할 때도 정규표현식을 이용하여 검색하면 더 쉽게 검색할 수 있다.“.*” 라는 정규 표현식을 사용하면 ..
2025.02.04 -
Kotlin에서 launch와 async는 무엇이 다를까?
🌟 들어가기 전오늘은 launch와 async의 차이점에 대해 학습했다. 두 개 모두 코루틴을 실행할 때 사용되지만, launch는 결과를 반환하지 않고 단순 실행하는 반면,async는 값을 반환할 수 있다는 차이가 있다. 그동안 개발을 해오면서 두개의 차이를 정확하게 모르고 사용했다.그냥 예제 긁어서 복붙…. ㅠㅠ 그래서 파헤쳐본 launch와 async는 무엇이 다를까? 🔍 세부 내용1. launch vs async 차이점launch → 결과를 반환하지 않고, 단순히 새로운 코루틴을 실행async → 결과를 반환하는 Deferred 객체를 생성해서 await()로 값을 받을 수 있음2. 예제 코드import kotlinx.coroutines.*fun main() = runBlocking { ..
2025.02.03