반응형

전체 글 19

[Android] 제네릭(Generic)을 사용하는 함수 예시

제네릭(Generic) 이란?제네릭이란, 클래스나 함수에서 타입을 고정하지 않고, 나중에 타입을 외부에서 주입받아 사용하는 문법입니다.예를 들어, 리스트를 만들 때 List 또는 List 처럼 타입을 지정하죠?이것도 내부적으로는 제네릭을 사용한 대표적인 예입니다. 제네릭이 왜 필요할까?제네릭을 사용하지 않으면, 여러 타입을 처리하면서 코드를 타입마다 반복해서 작성해야 합니다.예를 들어, BoxOfInt, BoxOfString 등 타입마다 클래스 따로 만들겠죠.하지만 제네릭을 사용하면 하나의 클래스와 함수로 모든 타입을 처리할 수 있습니다. class Box(val content: T) { fun getContent(): T { return content }} 여기서 T 는 타입..

Android/interface 2025.04.22

[Android] abstract class와 interface의 기본 개념

abstract class (추상 클래스)추상 클래스는 일반 클래스와 같지만, 인스턴스화할 수 없고 추상 메서드를 선언하여 상속받은 클래스에서 반드시 구현하도록 강제하는 클래스입니다.추상 클래스는 상태(변수) 를 가질 수 있으며, 생성자도 정의할 수 있습니다.일반 메서드(구현된 메서드) 를 가질 수 있어, 공통적인 기능을 추상화한 후 이를 하위 클래스에서 사용할 수 있게 할 수 있습니다. abstract class Animal(val name: String) { abstract fun makeSound() // 추상 메서드 fun eat() { // 일반 메서드 println("$name is eating") }} 이 예시에서 Animal 클래스는 추상 클래스이기 때문에..

Android/interface 2025.04.22

[Android] AlarmManager 통해서 알람 예약하기

알람을 사용하면 특정 시간에 알림을 보내거나,주기적으로 백그라운드 작업을 실행하는 것과 같이 특정 시점에 작업을 예약하는게 가능합니다. 이럴 때 사용하는 서비스가 바로 AlarmManager 입니다. AlarmManager 란?AlarmManager 는 안드로이드 시스템에서 제공하는 백그라운드 작업 예약 시스템입니다.개발자가 특정 시간에 작업을 예약해두면, 시스템은 해당 시점에 지정한 작업을 실행해줍니다. 특정 시간에 알림(Notification) 보내기하루에 한 번 실행되는 정기 작업 예약디바이스가 재부팅되어도 유지되는 작업 예약 알람의 종류AlarmManager 는 다양한 방식의 알람을 지원합니다. 1. 정확한 알람setExact() 또는 setExactAndAllowWhileIdle(), set..

Android/sdk 2025.04.17

[Android] 백그라운드 작업 처리 : Coroutines 와 WorkManager 비교

Coroutines 과 WorkManager는 모두 백그라운드 작업 처리와 관련이 있지만, 그 사용 목적과 동작 방식이 다릅니다. 두 기술의 차이를 비교하면서 각 기술이 어떤 상황에서 적합한지 설명하겠습니다. Coroutines 란?코루틴은 비동기 작업 처리를 위한 Kotlin 언어의 기능으로 경량화된 스레드를 이용하여 병렬 작업을 수행할 수 있도록 해줍니다.특히 UI 스레드와 분리하여 백그라운드에서 비동기 작업을 효율적으로 처리할 수 있습니다. UI 스레드와 분리: 코루틴은 기본적으로 UI 스레드와 분리된 작업을 할 수 있어 UI 스레드를 차단하지 않음경량 스레드: 기존의 스레드에 비해 훨씬 더 경량화된 작업 처리 방식으로 많은 양의 비동기 작업을 효율적으로 처리 가능지속성 없음: 코루틴은 앱이 종료..

Android/platform 2025.04.16

[Android] WorkManager로 백그라운드 작업 처리

WorkManager 란?WorkManager 는 Android Jetpack의 백그라운드 작업 처리 라이브러리로,앱이 꺼지거나 기기가 재부팅되어도 작업을 보장할 수 있는 API네트워크 업로드로그 정리이미지 백업주기적인 데이터 동기화 Worker 클래스 정의Work 를 사용하면 WorkManager 는 자동으로 백그라운드 스레드에서 Worker.doWork() 를 호출합니다. 백그라운드 스레드의 출처는 WorkManager 의 Configuration 에 명시된 Executor 입니다.기본적으로 WorkManager 에서 개발자를 위해 Executor 를 설정하지만, 개발자가 직접 맞춤 설정할 수 있습니다.class IntroImageWorker( context: Context, params..

Android/platform 2025.04.16

[Android] Target SDK Version, Android 앱 호환성과 최신 기능 지원

Android 앱을 개발할 때, targetSdkVersion은 중요한 설정 중 하나입니다. 이 설정은 앱이 어떤 Android 버전에서 실행될 때, 해당 버전의 특성이나 새로운 기능을 사용할지 말지를 결정하는 역할을 합니다.  targetSdkVersion을 설정하면 앱의 호환성뿐만 아니라, 최신 Android 기능을 적절히 활용할 수 있습니다. 이 글에서는 targetSdkVersion의 의미와 설정 방법, 그리고 이 설정이 앱에 미치는 영향을 다루겠습니다.  Target SDK Version의 의미는?targetSdkVersion은 앱이 설계된 최대 Android 버전을 지정하는 속성입니다. 이 값은 앱이 정상적으로 동작할 수 있도록 최신 Android OS에서 제공하는 새로운 기능을 사용할 수 있..

Android/sdk 2025.03.12

[Android] Android 15, Edge to Edge 대응 방안

Android 15 이상 기기에서 SDK 35 이상을 타겟팅하면?Android 15 이상을 실행하는 기기에서 SDK 35 이상을 타겟팅하면 앱이 더 넓은 화면을 표시하게 됩니다.시스템 표시줄 뒤에 그려져 디스플레이의 전체 너비와 높이에 걸쳐서 표시되는데 이를 Edge to edge 라고 부릅니다.   이전 Android 버전에서 사용 방안은?앱이 SDK 35 이상을 타겟팅하는 경우, Android 15 이상 기기에서 더 넓은 화면이 자동으로 사용 설정이 되게 됩니다.이전 Android 버전에서 사용 설정하는 방안입니다.dependencies { val activity_version = activity_version // Java language implementation implement..

Android/layout 2025.03.12

[Android] 백그라운드 서비스 (Background Service) 란? 포그라운드 서비스와의 차이점

백그라운드 서비스란?백그라운드 서비스는 사용자가 앱을 사용하지 않을 때에도 실행되는 작업을 의미합니다.즉, 앱이 화면에 표시되지 않거나 사용자와 상호작용하지 않는 상태에서도 실행됩니다.이런 서비스는 주로 백그라운드 작업, 장시간 실행되는 비시각적 작업에 사용됩니다. 주요 예시클라우드 동기화: 서버와 데이터를 주기적으로 동기화로컬 데이터베이스 유지 관리로그 데이터 저장 및 전송특정 조건에서 알림 전달  백그라운드 서비스의 실행 방식백그라운드 작업을 수행하기 위한 주요 메커니즘은 다음과 같습니다. 1) WorkManager장기간 실행되거나 연기될 수 있는 작업을 처리하는 데 적합시스템 리소스(배터리, 네트워크 상태 등)에 따라 작업 실행을 최적화데이터 동기화, 주기적인 배치 작업에 권장2) JobSchedu..

Android/platform 2024.12.02

[Android] 바인딩 서비스 (Bound Service) 란? 포그라운드 서비스와의 차이점

바인딩 서비스 (Bound Service) 는 안드로이드 앱에서 클라이언트와 서비스 간에 상호작용이 필요할 때 사용하는 서비스의 한 종류입니다.  서비스는 기본적으로 UI 없이 백그라운드 작업을 수행하지만, 바인딩 서비스를 통해 클라이언트(액티비티 또는 다른 구성요소)와 서비스 간에 데이터를 주고받거나 메서드를 호출할 수 있습니다.  바인딩 서비스의 주요 특징클라이언트-서비스 간 상호작용: 클라이언트는 바인딩 서비스를 통해 서비스의 공개 메서드에 접근할 수 있습니다.생명주기 관리: 바인딩 서비스는 클라이언트가 연결되어 있는 동안에만 실행되며, 모든 클라이언트가 연결을 끊으면 서비스가 종료됩니다.클라이언트-서비스 연결: bindService() 를 호출하여 클라이언트와 서비스를 연결하며, 서비스는 onBi..

Android/platform 2024.12.02

[Android] 포그라운드 서비스(Foreground Service) 개요 및 구현 방법

포그라운드 서비스(Foreground Service)포그라운드 서비스는 사용자가 인식할 수 있는 중요한 작업을 수행하는 서비스입니다. 이 서비스는 백그라운드에서 실행되지만, 사용자에게 알림(Notification)을 통해 실행 중임을 지속적으로 알려야 합니다. 시스템 자원을 효율적으로 관리하면서 중요한 작업을 처리할 때 사용됩니다.  포그라운드 서비스의 특징알림 표시포그라운드 서비스는 알림을 반드시 표시해야 합니다. 알림은 사용자가 서비스를 인식할 수 있게 도와줍니다. 알림은 상태 바나 알림 영역에 표시되며, 서비스가 실행되는 동안 계속 표시됩니다.시스템 종료 방지일반적인 백그라운드 서비스는 자원 부족 시 시스템에 의해 종료될 수 있지만, 포그라운드 서비스는 시스템에 의해 종료되지 않습니다. 따라서 장시..

Android/platform 2024.11.29
반응형