BoxLang의 데이터베이스 연동 기초 – SQLite 사용법 (16강)
BoxLang의 데이터베이스 연동 기초 – SQLite 사용법
데이터베이스는 프로그램에서 데이터를 관리하고 저장하는 핵심적인 도구입니다. 이번 강의에서는 **BoxLang**에서 **SQLite**를 연동하여, 데이터를 저장하고 조회하는 방법을 배워보겠습니다. **SQLite**는 가볍고 설정이 간편한 관계형 데이터베이스로, **BoxLang**과 함께 사용하기 적합한 데이터베이스입니다. 이제 **SQLite**를 사용하여 데이터를 관리하는 기초적인 방법을 알아보겠습니다.
SQLite란 무엇인가?
**SQLite**는 서버 기반의 데이터베이스 시스템이 아닌 **임베디드형 데이터베이스**입니다. 애플리케이션에 직접 내장되어 실행되며, 별도의 서버나 클라이언트가 필요 없어서 매우 가볍고 간편합니다. SQLite는 **파일 기반 데이터베이스**로, 모든 데이터는 하나의 파일에 저장됩니다. 이러한 특성 덕분에 빠른 설정과 쉬운 관리가 가능합니다.
BoxLang에서 SQLite를 사용하면 애플리케이션 내부에서 데이터를 쉽게 저장하고, 쿼리를 통해 데이터를 효율적으로 처리할 수 있습니다. 이제 BoxLang에서 SQLite를 어떻게 사용할지 살펴보겠습니다.
1. SQLite 데이터베이스 연결하기
BoxLang에서 SQLite 데이터베이스에 연결하려면 먼저 **SQLite 모듈**을 임포트하고, 데이터베이스 파일을 열어야 합니다. BoxLang에서는 간단한 API를 사용해 SQLite 데이터베이스에 연결할 수 있습니다.
import BoxLang.Database.SQLite
// SQLite 데이터베이스 파일 열기
func connectDatabase() {
var dbPath = "example.db" // 데이터베이스 파일 경로
var db = SQLite.open(dbPath)
if (db != null) {
println("SQLite 데이터베이스 연결 성공!")
} else {
println("SQLite 데이터베이스 연결 실패!")
}
}
connectDatabase()
위 코드는 `example.db`라는 SQLite 데이터베이스 파일에 연결하는 예시입니다. 데이터베이스 파일이 없으면 새로 생성되며, 연결에 성공하면 "SQLite 데이터베이스 연결 성공!" 메시지가 출력됩니다.
2. 데이터베이스 테이블 생성하기
데이터베이스에 데이터를 저장하려면 먼저 테이블을 만들어야 합니다. BoxLang에서는 SQL 쿼리를 통해 테이블을 생성할 수 있습니다. 다음 예시는 `users`라는 테이블을 생성하는 SQL 쿼리를 실행하는 방법입니다.
import BoxLang.Database.SQLite
// 테이블 생성하기
func createTable() {
var dbPath = "example.db"
var db = SQLite.open(dbPath)
if (db != null) {
// SQL 쿼리 작성
var query = """
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
);
"""
var result = SQLite.execute(db, query)
if (result) {
println("테이블 생성 성공!")
} else {
println("테이블 생성 실패!")
}
SQLite.close(db)
} else {
println("데이터베이스 연결 실패!")
}
}
createTable()
위 코드에서는 `CREATE TABLE` 쿼리를 사용하여 `users`라는 테이블을 생성합니다. 이 테이블은 `id`, `name`, `age`라는 3개의 컬럼을 가지고 있으며, `id`는 기본키로 자동 증가합니다.
3. 데이터 삽입하기
테이블을 만든 후, 데이터를 삽입하려면 `INSERT INTO` SQL 문을 사용합니다. 아래 예시는 `users` 테이블에 데이터를 삽입하는 방법을 보여줍니다.
import BoxLang.Database.SQLite
// 데이터 삽입하기
func insertData() {
var dbPath = "example.db"
var db = SQLite.open(dbPath)
if (db != null) {
// SQL 쿼리 작성
var query = "INSERT INTO users (name, age) VALUES ('John Doe', 30);"
var result = SQLite.execute(db, query)
if (result) {
println("데이터 삽입 성공!")
} else {
println("데이터 삽입 실패!")
}
SQLite.close(db)
} else {
println("데이터베이스 연결 실패!")
}
}
insertData()
위 코드는 `users` 테이블에 `"John Doe"`라는 이름과 `30`이라는 나이를 가진 데이터를 삽입하는 예시입니다. 삽입이 성공하면 "데이터 삽입 성공!" 메시지가 출력됩니다.
4. 데이터 조회하기
데이터를 조회할 때는 `SELECT` 쿼리를 사용합니다. 아래 예시는 `users` 테이블에서 모든 데이터를 조회하고 출력하는 방법입니다.
import BoxLang.Database.SQLite
// 데이터 조회하기
func selectData() {
var dbPath = "example.db"
var db = SQLite.open(dbPath)
if (db != null) {
var query = "SELECT * FROM users;"
var result = SQLite.query(db, query)
if (result != null) {
for (row in result) {
println("ID: " & row["id"] & ", 이름: " & row["name"] & ", 나이: " & row["age"])
}
} else {
println("데이터 조회 실패!")
}
SQLite.close(db)
} else {
println("데이터베이스 연결 실패!")
}
}
selectData()
위 코드는 `SELECT * FROM users` 쿼리를 사용하여 `users` 테이블에서 모든 데이터를 조회한 후, 각 행을 출력하는 예시입니다. 쿼리 결과는 행 단위로 반환되며, 각 행의 데이터를 출력할 수 있습니다.
5. 데이터 수정하기
데이터를 수정할 때는 `UPDATE` 쿼리를 사용합니다. 아래 예시는 특정 사용자의 나이를 수정하는 방법을 보여줍니다.
import BoxLang.Database.SQLite
// 데이터 수정하기
func updateData() {
var dbPath = "example.db"
var db = SQLite.open(dbPath)
if (db != null) {
var query = "UPDATE users SET age = 31 WHERE name = 'John Doe';"
var result = SQLite.execute(db, query)
if (result) {
println("데이터 수정 성공!")
} else {
println("데이터 수정 실패!")
}
SQLite.close(db)
} else {
println("데이터베이스 연결 실패!")
}
}
updateData()
위 코드는 `UPDATE` 쿼리를 사용하여 `name`이 `"John Doe"`인 사용자의 `age`를 `31`로 수정하는 예시입니다. 수정이 성공하면 "데이터 수정 성공!" 메시지가 출력됩니다.
6. 데이터 삭제하기
데이터를 삭제할 때는 `DELETE` 쿼리를 사용합니다. 아래 예시는 특정 사용자의 데이터를 삭제하는 방법을 보여줍니다.
import BoxLang.Database.SQLite
// 데이터 삭제하기
func deleteData() {
var dbPath = "example.db"
var db = SQLite.open(dbPath)
if (db != null) {
var query = "DELETE FROM users WHERE name = 'John Doe';"
var result = SQLite.execute(db, query)
if (result) {
println("데이터 삭제 성공!")
} else {
println("데이터 삭제 실패!")
}
SQLite.close(db)
} else {
println("데이터베이스 연결 실패!")
}
}
deleteData()
위 코드는 `DELETE` 쿼리를 사용하여 `name`이 `"John Doe"`인 사용자의 데이터를 삭제하는 예시입니다. 삭제가 성공하면 "데이터 삭제 성공!" 메시지가 출력됩니다.
마무리 및 다음 강의 예고
이번 강의에서는 **BoxLang**을 사용하여 **SQLite 데이터베이스**를 연동하고, 데이터를 삽입, 조회, 수정, 삭제하는 방법을 배웠습니다. BoxLang의 간단한 API를 사용하면 SQLite를 통해 효율적으로 데이터를 관리할 수 있습니다. 또한, SQL 쿼리를 사용하여 데이터베이스 작업을 수행하는 방법도 익혔습니다.
다음 강의에서는 **BoxLang에서 고급 SQL 쿼리와 트랜잭션 관리**에 대해 배울 예정입니다. 데이터베이스 작업을 더욱 안전하고 효율적으로 처리하는 방법에 대해 알아보겠습니다. 많은 기대 바랍니다!