ํ๋ฌ๊ทธ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ค๊ณ๋ ๊ฒฝ๋ DBMS์ธ SQLite 3.40์ด ์ถ์๋์์ต๋๋ค. SQLite ์ฝ๋๋ ๊ณต๊ฐ ๋๋ฉ์ธ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์ด๋ค ๋ชฉ์ ์ผ๋ก๋ ์ ํ ์์ด ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. SQLite ๊ฐ๋ฐ์๋ฅผ ์ํ ์ฌ์ ์ ์ง์์ Adobe, Oracle, Mozilla, Bentley ๋ฐ Bloomberg์ ๊ฐ์ ํ์ฌ๋ฅผ ํฌํจํ๋ ํน๋ณํ ๊ตฌ์ฑ๋ ์ปจ์์์์์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- SQLite๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์์ ์คํํ ์ ์๊ณ JavaScript ์ธ์ด๋ก ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ ํฉํ ์ค๊ฐ WebAssembly ์ฝ๋๋ก ์ปดํ์ผํ๋ ์คํ์ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ์น ๊ฐ๋ฐ์์๊ฒ๋ sql.js ๋๋ Node.js ์คํ์ผ์ ๋ฐ์ดํฐ ์์ ์ ์ํ ๊ณ ์์ค ๊ฐ์ฒด ์งํฅ ์ธํฐํ์ด์ค๊ฐ ์ ๊ณต๋๋ฉฐ ์ ์์ค C API ๋ฐ Web Worker ๋ฉ์ปค๋์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ API๋ฅผ ๋ํํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค. ๋ณ๋์ ์ค๋ ๋์์ ์คํ๋๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด SQLite์ WASM ๋ฒ์ ์ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ OPFS(Origin-Private FileSystem) ๋๋ window.localStorage API๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์๋ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋๋ก ์ค๊ณ๋ ๋ณต๊ตฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ ".recover" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ณต์ํฉ๋๋ค.
- ์ฟผ๋ฆฌ ํ๋๋ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค. ์ด์ด 63๊ฐ ์ด์์ธ ํ ์ด๋ธ์ด ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ ์ ํ์ด ์ ๊ฑฐ๋์์ต๋๋ค(์ด์ ์๋ ์์๊ฐ 63์ ์ด๊ณผํ๋ ์ด์ด ์๋ ์์ ์ ์ธ๋ฑ์ฑ์ด ์ ์ฉ๋์ง ์์). ํํ์์ ์ฌ์ฉ๋๋ ๊ฐ์ ์ธ๋ฑ์ฑ์ด ํฅ์๋์์ต๋๋ค. NOT NULL ๋ฐ IS NULL ์ฐ์ฐ์๋ฅผ ์ฒ๋ฆฌํ ๋ ๋์คํฌ์์ ํฐ ๋ฌธ์์ด ๋ฐ BLOB ๋ก๋๋ฅผ ์ค์งํ์ต๋๋ค. ์ ์ฒด ์ค์บ์ด ํ ๋ฒ๋ง ์ํ๋๋ ๋ทฐ์ ๊ตฌ์ฒดํ๋ ์ ์ธ๋์์ต๋๋ค.
- ์ฝ๋๋ฒ ์ด์ค์์ "char *" ์ ํ์ ์ฌ์ฉํ๋ ๋์ ๋ณ๋์ sqlite3_filename ์ ํ์ ์ฌ์ฉํ์ฌ ํ์ผ ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
- sqlite3_value_encoding() ๋ด๋ถ ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ์คํ ๋ฆฌ์ง ์คํค๋ง ๋ฒ์ ๋ณ๊ฒฝ์ ๊ธ์งํ๋ SQLITE_DBCONFIG_DEFENSIVE ๋ชจ๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- "PRAGMA integrity_check" ๋งค๊ฐ๋ณ์์ ๊ตฌํ์ ์ถ๊ฐ ๊ฒ์ฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด STRICT ์์ฑ์ด ์๋ ํ ์ด๋ธ์ TEXT ์ด์ ์ซ์ ๊ฐ๊ณผ NUMERIC ์ด์ ์ซ์๊ฐ ์๋ ๋ฌธ์์ด ๊ฐ์ ํฌํจํด์๋ ์ ๋ฉ๋๋ค. ๋ํ "WITHOUT ROWID" ์์ฑ์ด ์๋ ํ ์ด๋ธ์ ํ ์์์ ์ ํ์ฑ์ ํ์ธํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- "VACUUM INTO" ํํ์ "PRAGMA ๋๊ธฐ์" ์ค์ ์ ๋ฐ๋ฆ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ๋ ๋ธ๋ก ํฌ๊ธฐ๋ฅผ ์ ํํ๋ ๋น๋ ์ต์ SQLITE_MAX_ALLOCATION_SIZE๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- SQLite์ ๋ด์ฅ๋ ์์ฌ ๋์ ์์ฑ ์๊ณ ๋ฆฌ์ฆ์ด RC4 ์คํธ๋ฆผ ์ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ Chacha20์ผ๋ก ์ด๋๋์์ต๋๋ค.
- ๋ค๋ฅธ ๋ฐ์ดํฐ ์คํค๋ง์์ ๋์ผํ ์ด๋ฆ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ผ๋ฐ์ ์ธ ํ๋ ์ค์ CPU์ ๋ถํ๋ฅผ ์ฝ 1% ์ค์ด๊ธฐ ์ํด ์ฑ๋ฅ ์ต์ ํ๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค.
์ถ์ฒ : opennet.ru