SQLite의 Coalesce 함수 총정리하기
오늘은 SQLite의 Coalesce 함수에 대해 정리해 보겠습니다. 1. Coalescecoalesce의 원래 뜻은 "합쳐지다" 또는 "병합하다"인데요.데이터베이스 나 SQL에서는,NULL 값을 다른 의미 있는 값으로 대체하는 데 주로 사용됩니다. SQL문에서는 여러개의 표현식 중,NULL이 아닌 첫 번째 값을 찾아서 반환합니다. COALESCE(expression1, expression2, ..., expressionN) 예를 들어,아래에서 쿼리는 첫번째 NULL이 아닌,'Hello'를 반환합니다. SELECT COALESCE(NULL, NULL, 'Hello', 'World'); 2. 예제예제를 보면서 COALESCE를 좀 더 이해해 볼까요.먼저 직원 테이블을 아래와 같이 만듭니다. CREATE ..
2025. 1. 24.
Kotlin Smart Cast(스마트캐스트) 총정리
오늘은 Kotlin의 Smart Cast에 대해 정리하겠습니다. 1. Smart Cast(스마트 캐스트)Smart Cast(스마트캐스트)는 이름 자체에서 알 수 있듯이,컴파일러가 타입을 자동으로 추론해서,명시적으로 타입을 변환하지 않아도,사용하도록 해주는 기능입니다. 타입을 검사하고, 변환하는 것까지,자동으로 Smart하게 해주는 것 이지요. 이를 이용하면,코드가 짧아져 가독성이 좋아지고,유지보수성도 좋아집니다. 2. is를 사용한 Smart Cast2-1. is smart cast가장 기본적인 스마트 캐스트의 사용법은,is 키워드를 사용해,변수의 타입을 검사한 후,해당 타입으로 자동 캐스트하는 것 입니다. 아래는 'is'키워드를 사용해,any의 타입검사를 하고,String에 해당하면 String으로 변..
2025. 1. 22.
코루틴 Flow vs StateFlow vs SharedFlow vs LiveData 총정리 하기
Android와 Kotlin의 코루틴이 계속 발전하면서,리액티브(반응형) 프로그래밍을 구현한 다양한 API들이 많이 나왔습니다.특히 데이터 스트림을 다루는Flow, StateFlow, SharedFlow, LiveData는비슷해 보이지만 각각 다른 특징을 가지고 있는데요.오늘은 이 4가지 API를 철저히 비교해서 총정리해 보겠습니다. 1. Flow, StateFlow, SharedFlow, LiveData 표로 비교하기Flow, StateFlow, SharedFlow, LiveData의 특징들을 살펴보고,아래에서 표로 자세히 비교해 보겠습니다.Flow: 코루틴 기반의 거대한 API로 콜드(Cold) 스트림이며, Collect()될 때마다 새로운 스트림을 생성합니다.Backpressure도 지원하는 대표적..
2024. 12. 30.
안드로이드 Cache 디렉토리 이용해 xml 화면 공유하기
오늘은 안드로이드 Cache 디렉토리를 이용해,xml로 구성된 화면을,이미지 파일로 생성해 공유하는 방법을 보겠습니다. 구체적인 구현방법을 알아보기 전에,이미지 공유를 위해서,안드로이드 저장공간 중,왜 Cache 디렉토리를 이용해야 하는지부터,알아보겠습니다. 1. 안드로이드 Cache를 사용하는 이유저장소에 대한 권한은 계속 바뀌어 왔습니다.프라이버시를 강화한 것이라고 하지만,안드로이드 버전별 코드 파편화가 심해지는 현상 때문에,구현하는 개발자 입장에서 테스트해야할 기기도 많아졌고,동적권한 관련해서 코드도 복잡해 졌습니다. 그래서 저는 항상 권한으로부터 자유로운 공간들을 사용할 수 없는지부터 판단합니다.이러한 공간에서 해결할 수 없는 저장공간에 대해서만,복잡하게 파편화된 코드를 사용하는 것 이지요. 이렇..
2024. 12. 10.