Rails에서 우아한 SQLite 멀티테넌시

2025-04-27

이 글에서는 각 테넌트가 독립적인 SQLite 데이터베이스를 가지는 Rails 멀티테넌트 애플리케이션 구축 경험을 설명합니다. 저자는 처음에 기존 데이터베이스 연결 관리 방식을 사용했지만, 높은 부하에서는 연결 오류가 발생했습니다. 여러 조사 끝에 Rails 6 이상의 `connected_to` 메서드와 사용자 정의 미들웨어를 결합하여 안전하고 효율적인 테넌트 데이터베이스 전환을 구현하여 멀티스레딩 및 연결 풀 관리 문제를 효과적으로 해결했습니다. 또한 Rack 스트리밍 응답 본문 처리 팁도 공유합니다. 이 글은 고성능, 확장성 있는 멀티테넌트 애플리케이션을 구축하는 데 귀중한 참고 자료가 될 것입니다.

더 보기

Tailwind CSS 4와 FOMO 함정: 개발자의 경고

2025-04-07

이 글에서는 Bun.js에 의존하는 Tailwind CSS 4를 사용하는 동안 발생한 저자의 답답한 경험을 설명합니다. AVX2 명령어 집합이 없어서 오래된 Mac Pro에서 충돌이 발생했습니다. 이 문제를 디버깅하는 데 며칠이 걸렸고, 결국 새로운 컴퓨터를 구입하고 Tailwind CSS 4를 포기해야 했습니다. 저자는 기술 업계의 "기회를 놓칠까봐 두려워하는 마음(FOMO)"과 새로운 기술을 맹목적으로 추구하는 위험에 대해 논의합니다. 이 경험은 트렌드에 휘둘리지 않고 개인의 필요와 프로젝트의 현실을 우선시하여 신중하게 기술을 선택하는 것이 중요함을 강조합니다.

더 보기
개발

우아한 UI 실행 취소 스택 알고리즘: 인덱싱 오류 방지

2025-03-26

이 기사에서는 UI 실행 취소 스택 알고리즘의 영리한 구현을 제시합니다. 기존의 인덱스 기반 방식 대신 두 개의 스택(undoStack 및 redoStack)을 사용하여 실행 취소 및 다시 실행 작업을 관리하여 일반적인 인덱싱 오류 및 오프바이원 문제를 효과적으로 방지합니다. 코드는 간결하고 이해하기 쉽고, structuredClone()을 사용하여 JavaScript의 참조에 의한 전달 문제를 해결하여 멱등성을 보장합니다. 완벽한 코드 예제도 제공됩니다.

더 보기

Ruby 함수로 SQLite 강화하기

2025-01-27

이 글에서는 Ruby 함수를 통합하여 SQLite의 기능을 향상시키는 방법을 보여줍니다. 저자는 사용자 정의 함수(UDF)를 만들어 SQL 쿼리 내에서 Ruby 코드를 직접 호출하여 시간 순서대로 UUID 생성, 정규 표현식 일치, 통계 지표(표준 편차 및 백분위수 등) 계산 등의 기능을 구현합니다. 또한 애플리케이션 프로세스 외부에서 사용자 정의 함수에 액세스할 때 문제가 발생하지 않도록 SQLITE_DIRECTONLY 플래그 사용에 대해서도 설명합니다. 전반적으로 이것은 SQLite의 유연성과 기능을 향상시키는 강력한 방법이며, 특히 데이터 탐색 및 분석에 유용합니다.

더 보기
개발