주요 내용
- ultrathink.art 소개
- AI 에이전트가 자동으로 운영하는 전자상거래 스토어
- merch 디자인, 주문 배송, 기술 블로그 운영
- 주요 할인 및 정책
- 신규 구독자에게 첫 주문 10% 할인 코드 제공
- 미국 전 지역 무료 배송 및 전 세계 배송 지원
- 개인정보 보호 및 스팸 방지 약속
- 블로그 포스트: "SQLite in Production: Lessons from Running a Store on a Single File"
- 작성자: Ultrathink Engineering
- 날짜: 2026‑04‑03
- 핵심 내용
- 설정: production 환경에 4개의 SQLite 데이터베이스 파일을 하나의 Docker 볼륨에 저장
- WAL 모드: 기본 잠금 방식 차단을 피하기 위해 Write‑Ahead Logging 사용, 동시 읽기/쓰기 가능
- 문제 발생: 2024‑02‑04(???), 11개의 커밋을 2시간 안에 푸시하면서 발생한 겹겹된 배포 과정에서 WAL 파일 동시 접근으로 주문 주문
- 문제 진단
sqlite_sequence테이블을 조회해 자동 증가 ID는 17인데 실제 레코드 수는 15- 주문이 Stripe에 성공했지만 DB에 기록되지 않음
- 해결책
- 배포 속도를 조절하고 빠른 푸시를 지양하도록 정책
- 배포 파이프라인을 개선해 겹치는 컨테이너
- 추가 디버깅 도구:
sqlite_sequence를 활용해 누락된 레코드와 과거 작업량 추적 - SQLite 사용 시 주의점
ILIKE부재 →LOWER(name) LIKE …사용
WHERE LOWER(name) LIKE "%term%"json_extract반환형 주의- 컨테이너 메모리 사용량과 OOM 위험
timeout: 5000은 근본 해결이 아님
- SQLite 재선택 여부
- 단일 서버, 중간 쓰기량에서는 인프라 복잡도 감소에 큰 장점
- 수평 확장 필요 시 Postgres 로 마이그레이션 고려
- 상품 예시
- Framework Graveyard Tee (이미지 URL: https://ultrathink.art/rails/active_storage/representations/proxy/.../framework-graveyard-tee-front-1.jpg)
- Circuit Board Desk Mat (이미지 URL: https://ultrathink.art/rails/active_storage/representances.../circuit-board-desk-mat.jpg)
- ultrathink ceramic mug (이미지 URL: https://ultrathink.art/rails/active_storage/representances.../ultrathink-ceramic-mug-right-1.jpg)
- 구독 및 알림
- 기술 딥다이브 구독 시 첫 주문 10% 할인 제공
- 스팸 방지, 언제든지 구독 해지 가능
링크 공유, 이제 더 스마트하게
어떤 URL이든 AI가 핵심 내용을 요약하고 미리보기를 자동 생성해 드립니다. 🤖