Turso 퀵스타트
Turso 퀵스타트 (Android)
libSQL 클라이언트를 쓰면 Android 앱에서도 몇 단계 만에 Turso와 연결할 수 있어요. 이 퀵스타트는 자격 증명 확인부터 Gradle 의존성 추가, 연결, 쿼리 실행, 선택적인 로컬 동기화까지 차례대로 안내해요.
출처: 문서
본문
이 기능은 기술 프리뷰(technical preview) 상태예요.
참고: 지금은 Android Gradle Plugin에서만 동작해요. 완전한 Kotlin 지원이 곧 제공될 예정이에요.
이 Kotlin 퀵스타트에서 배울 내용은 다음과 같아요:
- 데이터베이스 자격 증명(credential) 가져오기
- Android Gradle 프로젝트에 libSQL 의존성 추가하기
- 로컬 또는 원격 Turso 데이터베이스에 연결하기
- SQL로 쿼리 실행하기
- 로컬 데이터베이스에 변경 사항 동기화하기 (선택)
단계별 진행
1. 데이터베이스 자격 증명 가져오기
계속하려면 기존 데이터베이스가 필요해요. 없다면 먼저 데이터베이스를 만들어 주세요. 데이터베이스 URL과 인증 토큰을 확보하세요.
경고: 모바일 앱에는 비밀 값을 안전하게 보관하세요. 인증 토큰을 앱 바이너리에 그대로 두면 누구나 추출할 수 있으니, 서버 측 프록시나 보안 저장소를 활용하는 편이 좋아요.
2. 설치
Gradle에서 libsql을 implementation 의존성으로 추가해요.
참고: 지금은 Android Gradle Plugin에서만 동작해요.
dependencies {
implementation("tech.turso.libsql:libsql:0.1.0")
}
3. 연결
먼저 Database 객체를 만들고, 그다음 Connection을 열어야 해요. 연결 방식은 상황에 맞게 고르면 돼요.
Embedded Replicas (임베디드 레플리카)
import tech.turso.libsql.Libsql
val db = Libsql.open(
path = "./local.db",
url = "TURSO_DATABASE_URL",
authToken = "TURSO_AUTH_TOKEN",
)
val conn = db.connect()
Local only (로컬 전용)
import tech.turso.libsql.Libsql
val db = Libsql.open(path = "./local.db")
val conn = db.connect()
Remote only (원격 전용)
import tech.turso.libsql.Libsql
val db = Libsql.open(
url = "TURSO_DATABASE_URL",
authToken = "TURSO_AUTH_TOKEN",
)
val conn = db.connect()
4. 실행
기존 데이터베이스에 대해 SQL 쿼리를 실행하려면 execute()를 호출해요.
db.connect().use {
it.execute("INSERT INTO users (id) VALUES (1)")
}
값에 플레이스홀더를 쓰고 싶다면 아래처럼 하면 돼요.
db.connect().use {
it.query("SELECT * FROM users WHERE id = ?", 1)
}
db.connect().use {
it.query("INSERT INTO users (name) VALUES (:name)", mapOf(":name" to "Iku"))
}
5. 동기화 (Embedded Replicas 전용)
임베디드 레플리카를 사용할 때는 데이터베이스 객체에서 sync()를 호출해 로컬 데이터베이스를 기본(primary) 데이터베이스와 동기화해야 해요. syncInterval을 쓰는 경우가 아니라면요(물론 syncInterval이 켜져 있어도 sync를 호출해도 문제는 없어요).
db.sync()
더 알아보기 (Learn more)
- Kotlin/Android 레퍼런스 — 클라이언트 API 전체 정리
- 빠른 시작 — 첫 Turso 데이터베이스 만들기
- 임베디드 레플리카 — 로컬 replica 동기화 개념 이해하기
- 데이터베이스 토큰 — 인증 토큰 관리 방법