본문 바로가기

MongoDB

번역일: 2026년 6월 20일

MongoDB

소개

MongoDB는 가장 널리 사용되는 NoSQL 도큐먼트 지향 데이터베이스 중 하나입니다. 대량의 쓰기 작업(분석, IoT 등)에 강하고, 레플리카 셋과 자동 장애 조치를 통해 높은 가용성을 제공합니다. 또한 수평 확장을 위한 샤딩을 쉽게 구성할 수 있으며, 집계(aggregation), 텍스트 검색, 지리 공간 쿼리 등 강력한 쿼리 언어를 지원합니다.

관계형 데이터베이스가 행(row)과 열(column)로 이루어진 테이블에 데이터를 저장하는 것과 달리, MongoDB는 각 레코드를 BSON(Binary JSON) 형식의 도큐먼트로 저장합니다. 애플리케이션은 이 데이터를 JSON 형태로 조회할 수 있으며, 도큐먼트, 배열, 중첩 도큐먼트, 바이너리 데이터 등 다양한 데이터 타입을 지원합니다.

Laravel에서 MongoDB를 사용할 때는 Composer를 통해 mongodb/laravel-mongodb 패키지를 설치하는 것을 권장합니다. 이 패키지는 MongoDB에서 공식적으로 관리하며, PHP의 기본 MongoDB 드라이버보다 훨씬 풍부한 Eloquent 및 Laravel 기능 통합을 제공합니다.

composer require mongodb/laravel-mongodb

설치

MongoDB 드라이버

MongoDB 데이터베이스에 연결하려면 mongodb PHP 확장이 필요합니다. Laravel Herd를 사용하거나 php.new를 통해 PHP를 설치했다면 이 확장이 이미 포함되어 있습니다. 그렇지 않다면 PECL을 통해 직접 설치할 수 있습니다.

pecl install mongodb

MongoDB PHP 확장 설치에 대한 자세한 내용은 MongoDB PHP 확장 설치 안내를 참고하세요.

MongoDB 서버 시작하기

MongoDB Community Server를 사용하면 로컬 환경에서 MongoDB를 실행할 수 있습니다. Windows, macOS, Linux, Docker 컨테이너 모두 지원합니다. 설치 방법은 MongoDB Community 공식 설치 가이드를 참고하세요.

서버 설치 후 .env 파일에 연결 문자열을 설정합니다.

MONGODB_URI="mongodb://localhost:27017" MONGODB_DATABASE="laravel_app"

클라우드 환경에서 MongoDB를 운영하고 싶다면 MongoDB Atlas를 고려해보세요. Atlas 클러스터에 로컬에서 접근하려면, 클러스터의 네트워크 설정에서 자신의 IP 주소를 IP 접근 목록에 추가해야 합니다.

MongoDB Atlas의 연결 문자열도 .env 파일에 동일하게 설정합니다.

MONGODB_URI="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority" MONGODB_DATABASE="laravel_app"

Laravel MongoDB 패키지 설치

Composer를 사용해 Laravel MongoDB 패키지를 설치합니다.

composer require mongodb/laravel-mongodb

NOTE

mongodb PHP 확장이 설치되어 있지 않으면 패키지 설치가 실패합니다. PHP 설정은 CLI 환경과 웹 서버 환경이 다를 수 있으므로, 두 환경 모두에서 확장이 활성화되어 있는지 반드시 확인하세요.

설정

MongoDB 연결은 config/database.php 파일에서 설정합니다. connections 배열에 아래와 같이 mongodb 드라이버를 사용하는 연결을 추가하세요.

'connections' => [ 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'), 'database' => env('MONGODB_DATABASE', 'laravel_app'), ], ],

주요 기능

설정을 마치면 mongodb 패키지와 데이터베이스 연결을 활용해 다양한 강력한 기능을 사용할 수 있습니다.

  • Eloquent 모델: 모델을 MongoDB 컬렉션에 저장할 수 있습니다. 기본 Eloquent 기능 외에도 임베디드 관계(embedded relationships) 등 MongoDB 전용 기능을 추가로 제공합니다. 또한 MongoDB 드라이버에 직접 접근해 로우 쿼리나 집계 파이프라인을 실행하는 것도 가능합니다.
  • 쿼리 빌더: Laravel의 쿼리 빌더 문법으로 복잡한 MongoDB 쿼리를 작성할 수 있습니다.
  • 캐시 드라이버: mongodb 캐시 드라이버는 MongoDB의 TTL 인덱스를 활용해 만료된 캐시 항목을 자동으로 삭제하도록 최적화되어 있습니다.
  • 큐 드라이버: mongodb 큐 드라이버를 사용해 Job을 디스패치하고 처리할 수 있습니다.
  • GridFS 파일 저장: Flysystem용 GridFS 어댑터를 통해 파일을 GridFS에 저장할 수 있습니다.
  • 서드파티 패키지 호환: 데이터베이스 연결이나 Eloquent를 사용하는 대부분의 서드파티 패키지를 MongoDB와 함께 사용할 수 있습니다.

MongoDB와 Laravel을 함께 사용하는 방법을 더 자세히 익히고 싶다면 MongoDB 공식 빠른 시작 가이드를 참고하세요.

이 문서는 Laravel 공식 문서(MIT)를 한국 개발자를 위해 번역·재구성한 것입니다.

번역일: 2026년 6월 20일