Opt-in 진짜 타이핑
SQLite 3.37 (2021 년 11 월) 에서 STRICT 테이블 도입. CREATE TABLE 끝에 STRICT 붙이면 SQLite 가 선언된 타입과 안 맞는 insert 거부. 2026 년에 새 schema 시작하면 이게 default 야.
STRICT 모드는 5 가지 타입만 허용: INTEGER, REAL, TEXT, BLOB, ANY. VARCHAR(255) 같은 느슨한 affinity 이름은 테이블 생성 시점에 거부 — STRICT 가 정직하게 만들어.
Tip: 2026 년에 새 schema 시작하면 모든 테이블 STRICT 기본. dynamic-typing '기능' 은 2000 년대 초 embedded-C 시대의 의도된 타협이었음. 모던 앱 코드는 DB 가 계약을 지켜주길 원해.
한 가지 quirk: STRICT 테이블은 모든 컬럼 타입이 strict 5 개 중 하나여야 함. 기존 schema 마이그레이션은 VARCHAR, NUMERIC 등을 strict set 으로 다시 써야 함. ANY 는 '진짜 polymorphic 컬럼 원함' 케이스용 — 예: key-value 테이블의 value 컬럼.