본문 바로가기

Android/DB2

[Android] Room에서 코루틴의 suspend함수를 사용할 때 백그라운드 스레드를 직접 생성하지 않아도 되는 이유 들어가기전에우리는 데이터베이스(DB)에서 트랜잭션을 처리할 때, 보통 백그라운드 스레드를 생성하여 실행하는 것이 일반적입니다.이는 DB 연산이 I/O 작업이므로 메인 스레드에서 실행하면 UI가 멈추는 등의 문제가 발생할 수 있기 때문입니다.과거에는 직접 Thread나 AsyncTask 등을 활용하여 별도의 스레드에서 DB 작업을 수행했습니다.이후 RxJava가 등장하면서 Scheduler를 이용해 비동기적으로 DB 작업을 수행하는 것이 가능해졌습니다. 하지만, 우리가 코루틴을 Room과 함께 사용할 때는, 별도의 백그라운드 스레드를 생성하여 처리하지 않습니다. 이것이 가능한 이유는 내부적으로 Room이 suspend 함수 여부를 체크하고, 자체적으로 백그라운드 작업을 처리해주기 때문입니다. 코루틴 환경에.. 2025. 3. 7.
[Android] Room DB란? Android에서 ROOM이란 무엇일까?Room은 쉽게말해서 AAC(Android Architecture Components ), 스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리이다.Room은 ORM(Object Relational Mapping)라이브러리로서 DB 데이터를 Java 또는 코틀린 객체로 매핑해준다.Room은 SQLite를 내부적으로 사용하고 있지만, DB를 구조적으로 분리하여 데이터 접근의 편의성을 높여주고 유지보수에 편리하다.또한, 다양한 Annotation을 통해 컴파일시 코드들을 자동으로 만들어주며 LiveData, RxJava와 같은 Observation 형태를 지원하고 MVP, MVVM과 같은 아키텍쳐 패턴에 쉽게 활용할 수 있도록 되어있다. SQLite vs R.. 2023. 9. 7.