AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

Laravel MongoDB 시작하기

이 가이드 에서는 새 Laravel 웹 애플리케이션 에 Laravel MongoDB 를 추가하고, MongoDB Atlas 에서 호스팅되는 MongoDB cluster 에 연결하고, 데이터에 대한 읽기 및 쓰기 (write) 작업을 수행하는 방법을 보여 줍니다.

Laravel 없이 MongoDB PHP 라이브러리를 사용하여 MongoDB에 연결하려는 경우, MongoDB PHP 라이브러리 문서에서 MongoDB 에 연결 을 참조하세요.

Laravel 통합은 Laravel Eloquent 및 쿼리 빌더 구문을 확장하여 MongoDB 에서 데이터를 저장 하고 조회 합니다.

MongoDB Atlas는 관리형 클라우드 데이터베이스 서비스로, MongoDB deployment를 호스팅합니다. 이 가이드의 단계에 따라 자체 무료(신용카드 필요 없음) MongoDB Atlas 배포서버를 생성할 수 있습니다.

Laravel-quickstart Github 리포지토리 복제하여 전체 웹 애플리케이션 프로젝트 다운로드 할 수 있습니다.

시작하기 애플리케이션 만들려면 개발 환경에 다음 소프트웨어가 설치되어 있어야 합니다.

  • PHP

  • 터미널 앱과 셸입니다. MacOS 사용자의 경우 터미널 또는 유사한 앱을 사용하세요. Windows 사용자의 경우 PowerShell을 사용하세요.

다음 단계를 완료하여 Laravel 통합 종속성을 설치하고 Laravel 웹 애플리케이션 에 추가합니다.

다음 설치 단계의 대안으로 Laravel Herd를 사용하여 MongoDB 설치하고 Laravel MongoDB 위한 개발 환경을 구성할 수 있습니다. MongoDB와 함께 Laravel Herd를 사용하는 방법에 대한 자세한 내용은 Herd 문서에서 Herd Pro를 통해 MongoDB 설치하기 를 참조하세요.

1

Laravel MongoDB MongoDB 연결 및 명령을 관리 하려면 MongoDB PHP 확장이 필요합니다. MongoDB PHP 확장 프로그램을 설치하는 방법을 학습 PHP 라이브러리 시작하기 가이드 의 MongoDB PHP 확장 프로그램 설치 단계를 참조하세요.

2

설치하는 Laravel 버전이 Laravel 통합 버전과 호환되는지 확인합니다. 호환되는 버전을 학습 호환성 페이지를 참조하세요.

다음 명령을 실행하여 Laravel을 설치합니다:

composer global require laravel/installer

설치가 완료되면 명령은 다음 메시지를 출력합니다.

Using version ^<version number> for laravel/installer
3

다음 명령을 실행하여 my-app 이라는 새 Laravel 웹 애플리케이션을 생성합니다.

laravel new my-app

설치가 완료되면 명령은 다음 메시지를 출력합니다.

INFO Application ready in [my-app]. You can
start your local development using:
➜ cd my-app
➜ php artisan serve
New to Laravel? Check out our bootcamp and documentation.
Build something amazing!
4

이전 단계에서 생성한 애플리케이션 디렉토리로 이동합니다.

cd my-app

다음 명령을 실행하여 쿠키를 암호화하는 데 필요한 Laravel 애플리케이션 암호화 키를 추가합니다.

php artisan key:generate
5

다음 명령을 실행하여 애플리케이션에 Laravel MongoDB 종속성을 추가합니다.

composer require mongodb/laravel-mongodb:^5.8

설치가 완료되면 composer.json 파일에 require 객체에 다음 줄이 포함되어 있는지 확인합니다.

"mongodb/laravel-mongodb": "^5.8"

이 단계를 완료하면 Laravel 통합 종속성이 설치된 새 Laravel 프로젝트 가 생성됩니다.

1

MongoDB 시작하기 가이드 완료하여 새 Atlas 계정을 설정하다 하고 샘플 데이터를 새 무료 계층 MongoDB deployment 에 로드합니다. Cloud Deployment 탭의 지침에 따라 cloud 에서 MongoDB Atlas 배포서버 만듭니다.

2

데이터베이스 사용자를 생성한 후 다음 단계에서 사용할 수 있도록 해당 사용자의 사용자 이름과 비밀번호를 안전한 위치에 저장하세요.

이 단계를 완료하면 Atlas에 대한 새로운 프리 티어 MongoDB 배포, 데이터베이스 사용자 자격 증명 및 샘플 데이터가 데이터베이스에 로드됩니다.

연결 문자열이라고도 하는 연결 URI을 제공하여 MongoDB 배포서버에 연결할 수 있으며, 이 연결 문자열은 드라이버에 MongoDB 배포서버로 연결하는 방법과 연결된 동안 동작하는 방법을 지시합니다.

연결 문자열에는 배포서버의 호스트 이름 또는 IP 주소와 포트, 인증 메커니즘, 해당되는 경우 사용자 자격 증명, 연결 옵션 등이 포함됩니다.

Atlas 에서 호스팅되지 않는 인스턴스 또는 배포서버 에 연결하려면 서버 매뉴얼의 연결 문자열 을 참조하세요.

1

이전 단계에서 만든 배포서버에 대한 연결 문자열 조회 하려면 Atlas 계정에 로그인 하고 Database 섹션 아래의 Clusters 페이지로 이동합니다. 새 배포서버 의 Connect 버튼을 클릭합니다.

Atlas UI의 클러스터 섹션에 있는 연결 버튼

아직 데이터베이스 사용자를 구성하지 않은 경우 MongoDB 새 사용자를 생성하고 구성하라는 메시지를 표시합니다.

Connect to your application 아래의 Drivers 버튼을 클릭하고 Driver 선택 메뉴에서 "PHP"를 선택하고, Version 선택 메뉴에서 설치한 버전과 가장 일치하는 버전을 선택합니다.

연결 문자열 만 보려면 View full code sample 옵션의 선택을 취소합니다.

2

다음 스크린샷과 같이 연결 string 오른쪽에 있는 복사 아이콘을 클릭하여 클립보드에 복사합니다.

Atlas UI의 연결 문자열 복사 버튼
3

이 연결 문자열 원하는 텍스트 편집기의 파일 에 붙여넣고 <db_password> 자리 표시자를 데이터베이스 사용자의 비밀번호로 바꿉니다. 연결 문자열 이 이미 데이터베이스 사용자의 사용자 이름 으로 채워져 있습니다.

다음 단계에서 사용할 수 있도록 이 파일을 안전한 위치에 저장합니다.

이 단계를 완료하면 데이터베이스 사용자 이름과 비밀번호가 포함된 연결 문자열이 생성됩니다.

1

다음 shell 명령을 실행하여 .env.example 파일을 프로젝트 루트 디렉토리의 .env 파일에 복사합니다.

cp .env.example .env

파일 열고 다음 변수 및 값을 추가하거나 편집합니다..env <connection string> 자리 표시자를 연결 문자열 만들기 단계의 연결 문자열 로 바꿉니다.

DB_CONNECTION=mongodb
DB_URI="<connection string>"

예를 들어 연결 string 이 "mongodb+srv://myUser:myPass123@mongo0.example.com/"인 경우 DB_URI 변수는 다음 줄과 일치합니다.

DB_URI="mongodb+srv://myUser:myPass123@mongo0.example.com/"

참고

.env 파일의 이러한 변수가 애플리케이션을 실행하는 shell 에서 정의되지 않았는지 확인합니다. shell 의 환경 변수는 .env 파일의 환경 변수보다 우선합니다.

2

config 디렉토리에서 database.php 파일을 열고 다음 줄에 표시된 대로 기본 데이터베이스 연결을 DB_CONNECTION 환경 변수로 설정합니다.

'default' => env('DB_CONNECTION'),

동일한 파일의 connections 배열에 강조 표시된 다음 mongodb 항목을 추가합니다.

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_URI'),
'database' => 'sample_mflix',
],
],
// ...
3

bootstrap 디렉토리에서 providers.php 파일을 열고 배열에 다음 항목을 추가합니다.

MongoDB\Laravel\MongoDBServiceProvider::class,

Laravel 10.x에 제공자 등록하는 방법을 학습 제공자 등록을참조하세요.

이 단계를 완료하면 Laravel 웹 애플리케이션을 MongoDB에 연결할 준비가 된 것입니다.

1

다음 명령을 실행하여 MongoDB database 및 해당 리소스 컨트롤러에서 샘플 movies collection의 데이터를 나타내는 Movie 모델을 생성합니다.

php artisan make:model Movie -cr

명령이 완료되면 다음 메시지가 출력됩니다.

INFO Model [app/Models/Movie.php] created successfully.
INFO Controller [app/Http/Controllers/MovieController.php]
created successfully.
2

app/Models 디렉토리에서 Movie.php 모델을 열고 다음과 같이 편집합니다.

  • Illuminate\Database\Eloquent\Model 가져오기를 MongoDB\Laravel\Eloquent\Model으)로 바꿉니다.

  • $connection 필드에 "mongodb" 를 지정합니다.

편집한 Movie.php 파일에는 다음 코드가 포함되어 있습니다.

<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
3

app/Http/Controllers 디렉토리에서 MovieController.php 파일을 엽니다. 데이터베이스 쿼리와 일치하는 결과를 검색하고 뷰에 렌더링하려면 show() 함수를 다음 코드로 바꿉니다.

public function show()
{
return view('browse_movies', [
'movies' => Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get()
]);
}
4

routes 디렉토리에서 web.php 파일을 엽니다. 다음 코드에 표시된 대로 MovieController 에 대한 가져오기 및 browse_movies 경로를 추가합니다.

<?php
// ...
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
5

애플리케이션 루트 디렉토리에서 다음 명령을 실행하여 영화 데이터를 표시하는 뷰를 만듭니다.

php artisan make:view browse_movies

명령을 실행하면 다음 메시지가 출력됩니다.

INFO View [resources/views/browse_movies.blade.php] created
successfully.

resources/views 디렉토리에서 browse_movies.blade.php 뷰 파일을 엽니다. 내용을 다음 코드로 바꾸고 변경 사항을 저장합니다.

<!DOCTYPE html>
<html>
<head>
<title>Browse Movies</title>
</head>
<body>
<h2>Movies</h2>
@forelse ($movies as $movie)
<p>
Title: {{ $movie->title }}<br>
Year: {{ $movie->year }}<br>
Runtime: {{ $movie->runtime }}<br>
IMDB Rating: {{ $movie->imdb['rating'] }}<br>
IMDB Votes: {{ $movie->imdb['votes'] }}<br>
Plot: {{ $movie->plot }}<br>
</p>
@empty
<p>No results</p>
@endforelse
</body>
</html>
6

뷰를 생성하고 browse_movies.blade.php 파일을 편집하는 대신 toJson() 메서드를 사용하여 결과를 JSON 형식으로 표시할 수 있습니다.

show() 함수를 다음 코드로 대체하여 결과를 조회 하고 JSON 문서로 반환합니다.

public function show()
{
$results = Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get();
return $results->toJson();
}
7

애플리케이션 루트 디렉토리에서 다음 명령을 실행하여 PHP 내장 웹 서버를 시작합니다.

php artisan serve

서버가 시작되면 다음 메시지를 출력합니다.

INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
8

웹 브라우저에서 http://: /browse_movies127.0.0.18000 URL 을 엽니다. 이 페이지에는 영화 목록과 각 영화에 대한 세부 정보가 표시됩니다.

애플리케이션 루트 디렉토리에서 php artisan route:list 명령을 실행하여 사용 가능한 경로 목록을 볼 수 있습니다.

1

app/Http/Controllers 디렉토리에 있는 MovieController.php 파일에서 store() 메서드를 다음 코드로 바꿉니다.

public function store(Request $request)
{
$data = $request->all();
$movie = new Movie();
$movie->fill($data);
$movie->save();
}
2

다음 명령을 실행 하여 API 경로 파일 을 생성합니다.

php artisan install:api

Laravel 10.x를 사용하는 경우 명령이 생성하는 파일이 이미 존재하므로 이 단계를 건너뛰세요.

컨트롤러를 가져오고 routes/api.php 파일에서 store() 메서드를 호출하는 API 경로를 추가합니다.

use App\Http\Controllers\MovieController;
// ...
Route::resource('movies', MovieController::class)->only([
'store'
]);
3

다음 코드에 표시된 대로 app/Models 디렉토리에서 Movie 모델을 업데이트하여 fill() 메서드가 채우는 필드를 지정합니다.

class Movie extends Model
{
protected $connection = 'mongodb';
protected $fillable = ['title', 'year', 'runtime',
'imdb', 'plot'];
}
4

movie.json 파일을 만들고 다음 데이터를 삽입합니다.

{
"title": "The Laravel MongoDB Quick Start",
"year": 2024,
"runtime": 15,
"imdb": {
"rating": 9.5,
"votes": 1
},
"plot": "This movie entry was created by running through
the Laravel MongoDB Quick Start tutorial."
}

shell에서 다음 명령을 실행하여 JSON 페이로드를 엔드포인트에 POST 요청으로 보냅니다.

curl -H "Content-Type: application/json" \
--data @movie.json \
http://localhost:8000/api/movies

시작하기 가이드 완료한 것을 축하합니다!

이 단계를 완료하면 Laravel MongoDB 를 사용하여 MongoDB deployment 에 연결하고, 샘플 데이터에 대해 쿼리 를 실행 하고, 검색된 결과를 렌더링하는 Laravel 웹 애플리케이션 을 갖게 됩니다.

Laravel-quickstart Github 리포지토리 복제하여 웹 애플리케이션 프로젝트 다운로드 할 수 있습니다.

Tutorials

Laravel MongoDB MongoDB 사용하여 백엔드 서비스 빌드 튜토리얼을 따라 Laravel MongoDB 애플리케이션 에서 더 많은 CRUD 기능을 구현 방법을 알아보세요.

유투브 (Youtube) 의 Laravel 및 MongoDB 를 사용한 전체 스택 인스타그램 복제 튜토리얼 을 따라 Laravel MongoDB 사용하는 전체 스택 애플리케이션 빌드 방법을 알아보세요.

다음 리소스에서 Laravel MongoDB 기능에 대해 자세히 알아보세요.

참고

이 페이지에서 문제가 실행 하면 이 페이지의 오른쪽 또는 오른쪽 하단에 있는 Rate this page 탭 사용하여 피드백 제출 .

일반적인 질문에 대한 지원은 MongoDB Stack Overflow 태그 또는 MongoDB Reddit Community를 사용하여 찾을 수 있습니다.