SQ라이트의 대안, 설치 없이 바로 쓰는 데이터베이스 4종
컨텐츠 정보
- 조회 460
본문
데이터를 대량으로 다루는 애플리케이션을 개발할 때 가장 자연스러운 접근 방식은 데이터를 어떤 형태로든 데이터베이스에 저장하는 것이다. 애플리케이션의 규모와 목표에 따라 그 선택지는 달라진다. 간단한 용도의 SQ라이트부터, 고급형인 포스트그레SQL까지 다양하다.
문제를 복잡하게 만드는 요인은 ‘어떤 데이터베이스를 선택할 것인지’가 아니라 ‘그것을 어떻게 활용할 것인지’에 있다. 포스트그레SQL처럼 엔터프라이즈급 데이터베이스는 막강한 기능을 제공하지만 그만큼 인프라 구축에 따른 부담이 크다. 데이터베이스 서버를 설치하고 설정하는 일은 누구에게나 번거롭고 즐겁지 않은 작업이다. 도커 컨테이너를 활용하는 방법도 있지만, 이미 도커 환경에 익숙하지 않다면 모든 시스템을 컨테이너로 옮기는 일은 결코 작은 프로젝트가 아니다.
이러한 복잡함에 대한 대응으로 최근 주목받는 것이 독립형(Self-contained) 데이터베이스다. 이 방식은 모든 구성 요소가 하나의 실행 파일이나 단일 디렉토리에 포함되어 있어 외부 의존성이나 별도의 설치 과정이 필요하지 않다. SQ라이트가 대표적이지만, 항상 가장 견고한 선택지는 아니다. 최근에는 이와 같은 독립 실행형 구조를 유지하면서도 더 강력한 성능을 제공하는 데이터베이스들이 등장하고 있다. 그중에는 이미 익숙한 주요 데이터베이스도 포함된다. 게다가 일부는 인기 있는 프로그래밍 언어용 애플리케이션 라이브러리 형태로 제공돼, 개발 환경에 손쉽게 통합할 수 있다.
마리아DB
완전한 독립형 마리아DB 인스턴스를 구축하는 방법은 3가지다. 직접 필요한 설정을 추가해 스스로 구성하거나, 서드파티에서 제공하는 패키지 버전을 이용하거나, 웹 서버와 기타 도구가 함께 포함된 포터블 통합 스택 형태의 솔루션을 사용하는 것이다.
네이선얼 사반스키는 독립 실행형 마리아DB를 수동으로 설정하는 절차를 단계별로 정리했다. 먼저 바이너리를 다운로드해 압축을 해제한 뒤, 기본 설정 파일을 생성하고 서버를 구동하면 된다. 여기에 필요한 관리 도구도 함께 실행하면 된다. 이후의 업그레이드나 유지 관리는 전적으로 사용자의 몫이지만, 큰 어려움 없이 독립형 환경을 완성할 수 있다. 마이크로소프트 윈도우 환경에서 사용할 경우, 압축 해제를 쉽게 하려면 .ZIP 파일을 다운로드하는 것이 좋다. 이후 mysql_install_db.exe 애플리케이션을 이용해 초기 구성을 진행하면 되며, 기본 설정값으로도 대부분의 환경에서 무리 없이 동작한다.
훨씬 더 간편하게 마리아DB를 설치하고 실행하고 싶다면, 앤디 타지노가 제공하는 독립형 마리아DB 바이너리 버전을 활용할 수 있다. 이 버전은 다운로드 후 별도의 설치 과정 없이 바로 실행할 수 있도록 구성되어 있다.
데이터베이스와 함께 웹 서버, 그리고 몇 가지 추가 구성 요소까지 동시에 구동해야 한다면 XAMPP 스택을 고려해 볼 만하다. XAMPP는 마리아DB를 비롯해 아파치 웹 서버, PHP 런타임, 머큐리 SMTP 메일 서버, 각 구성 요소를 제어할 수 있는 웹 기반 관리 도구, 데스크톱용 서비스 매니저를 모두 포함한 통합형 솔루션이다. 또한 HTTPS 지원을 위한 오픈SSL도 기본 내장돼 있어, 별도 설정 없이도 완전한 개발 환경을 구성할 수 있다.
포스트그레SQL
포스트그레SQL은 여러 해 동안 독립 실행형 애플리케이션 형태로 포장된 다양한 버전이 등장했다가 사라지곤 했다. 대표적인 예가 포스트그레SQL 포터블 프로젝트다. 하지만 독립형 포스트그레SQL 환경을 직접 구성하는 일은 그리 어렵지 않다. 설치 도구를 제외한 바이너리를 다운로드해 원하는 디렉토리에 압축을 풀고, initdb 명령어로 기본 설정을 마치면 된다. 이후 pg_ctl을 이용해 데이터베이스를 필요에 따라 시작하거나 중지할 수 있다.
파이썬 개발자에게는 훨씬 세련된 대안도 있다. 바로 pgserver라는 라이브러리다. pip install 명령으로 설치할 수 있으며, 완전한 독립 실행형 포스트그레SQL 인스턴스를 애플리케이션에 통합해 준다. 모든 바이너리와 설정 파일이 파이썬 가상환경(venv) 안에 포함되므로, 별도의 서버 설치나 외부 의존성 없이 바로 사용할 수 있다. 가상환경 크기가 약 30MB 정도 늘어나긴 하지만, 이 방식이 제공하는 편의성은 그 어떤 방법으로도 대체하기 어렵다.
몽고DB
몽고DB는 설치 관리자가 포함되지 않은 바이너리 형태로도 제공되기 때문에, 이론적으로는 어떤 디렉토리에서든 바로 실행할 수 있다. 하지만 별도의 설치 과정 없이 특정 애플리케이션과 긴밀하게 통합해 사용하는 것도 가능하다.
포스트그레SQL과 파이썬의 관계에서 pgserver가 하는 일을, 몽고DB와 노드JS(Node.js) 환경에서는 portable-mongodb가 담당한다. 이 패키지를 노드 프로젝트에 추가하면, 해당 프로젝트 전용으로 자동 배포되는 개인용 몽고DB 인스턴스를 구축할 수 있다. 원한다면 다른 개발 환경에서도 동일하게 활용할 수 있다.
직접 설정하고 더 세밀하게 배포를 제어하고 싶다면, 아티쿠르 라흐만이 공개한 몽고DB 독립형 인스턴스 구축 가이드를 참고하면 된다. 단계별로 구성된 이 절차는 생각보다 훨씬 간단하다.
레디스
리눅스, 윈도우, 맥OS에서는 일반적으로 도커 컨테이너를 이용하거나, APT, RPM, 스냅(Snap) 같은 패키지 관리자나 맥OS용 홈브루(Homebrew)를 통해 레디스를 설치해 실행한다. 하지만 도커 없이 윈도우 환경에서 완전한 포터블(Portable) 형태로 레디스를 사용하고 싶다면, 서드파티에서 제공하는 윈도우용 독립 실행형 레디스 빌드를 활용할 수 있다. 이 버전은 공식 소스코드에서 직접 빌드되며, 최신 릴리스와 동기화되어 유지된다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음





