Room은 SQLite에 비하여 코드의 가독성, 유지보수성, 데이터베이스 작업 안전성을 크게 향상시킨다. SQLite보다 Room을 사용하는 이유는 다음과 같다.
1. 코드의 간결성과 가독성
Room: Room은 SQLite의 복잡한 SQL 쿼리를 캡슐화하고, 데이터베이스 작업을 간결하고 가독성 있게 작성할 수 있는 API를 제공한다.
SQLite: 직접 SQL 쿼리를 작성해야 하므로 코드가 복잡하고 가독성이 떨어진다.
2. 컴파일 타임 검증
Room: SQL 쿼리와 데이터베이스 스키마에 대한 컴파일 타임 검증을 제공하여 런타임 오류를 줄이고 개발 중에 버그를 쉽게 발견할 수 있다.
SQLite: SQL 쿼리가 문자열로 작성되므로 컴파일 타임에 검증되지 않는다. 따라서 런타임 오류가 발생할 가능성이 높다.
3. SQLiteOpenHelper 대체
Room: Room은 SQLiteOpenHelper를 대체하여 데이터베이스 생성을 자동화하고, 데이터베이스 스키마 마이그레이션을 쉽게 처리할 수 있다.
SQLite: SQLiteOpenHelper를 사용하여 데이터베이스를 관리하며, 스키마 변경 시 수동으로 마이그레이션 코드를 작성해야 한다.
4. LiveData 및 RxJava 통합
Room: Room은 LiveData 및 RxJava와 통합되어 데이터베이스의 변경 사항을 쉽게 관찰할 수 있다.
SQLite: 이러한 기능을 직접 구현해야 하며 추가적인 코드와 복잡성을 야기한다.
5. Annotation 기반의 데이터베이스 정의
Room: Room은 어노테이션을 사용하여 데이터베이스 엔티티와의 관계를 정의할 수 있다. 명확하고 유지 관리하기 쉬운 코드를 작성하는 데 도움이 된다.
SQLite: SQL문을 사용하여 테이블을 정의해야 하여서 가독성이 떨어지고 오류를 유발하기 쉽다.
728x90
'앱 개발 > Kotlin_Android' 카테고리의 다른 글
Entity, Mapper (0) | 2024.05.28 |
---|---|
DAO annotation (0) | 2024.05.21 |
Room (0) | 2024.05.20 |
서버 & 클라이언트 (0) | 2024.05.17 |
레트로핏 (0) | 2024.05.16 |