문서 메뉴
문서 홈
/ / /
Node.js
/ /

연결 가이드

이 페이지의 내용

  • 연결 URI
  • Atlas 연결 예시
  • MongoDB에 연결하는 다른 방법
  • 로컬 기계에서 MongoDB Server에 연결하기
  • 복제본 세트에 연결
  • 직접 연결

이 가이드에서는 Node.js 드라이버를 사용하여 MongoDB Atlas 배포 서버, MongoDB 인스턴스 또는 복제본 세트에 연결하는 방법을 보여줍니다.

연결 URI는 드라이버가 MongoDB deployment에 연결하는 데 사용하는 지침 세트입니다. 이는 MongoDB에 연결하는 방법과 연결된 동안 작동하는 방법에 대해 드라이버에 지시합니다. 다음 예제에서는 연결 URI의 각 부분을 보여 줍니다.

연결 문자열의 각 부분

이 예시에서는 DNS SRV 레코드가 있는 MongoDB deployment에 연결합니다. 자세한 내용은 DNS 시드 목록 연결 형식 문서를 참조하세요. 이 형식은 배포 유연성을 제공하고 클라이언트를 재구성하지 않고도 서버를 순환적으로 변경할 수 있는 기능을 제공합니다.

참고

Atlas에서 연결 문자열을 검색하는 방법에 대한 자세한 내용은 Atlas 드라이버 연결 가이드를 참조하세요.

DNS SRV 주소가 없는 인스턴스 또는 복제본 세트에 연결하는 경우 프로토콜에 표준 연결 문자열 형식을 지정하는 mongodb를 사용해야 합니다.

암호 기반 인증을 사용하는 경우 프로토콜 다음에 연결 문자열의 다음 부분에 자격 증명이 포함됩니다. user 값을 사용자 이름으로 바꾸고 pass를 암호로 바꿉니다. 사용자 이름과 비밀번호가 필요하지 않은 인증 메커니즘을 사용하는 경우 연결 URI에서 이 부분을 생략합니다.

연결 문자열의 다음 부분에서는 MongoDB 인스턴스의 호스트 이름 또는 IP 주소와 포트 번호를 차례로 지정합니다. 위의 예시에서는 sample.host를 호스트 이름으로, 27017을 포트로 사용합니다. 이 값을 MongoDB 인스턴스의 포인트 정보로 바꿉니다.

연결 문자열의 마지막 부분에는 연결 및 인증 옵션이 매개 변수로 포함되어 있습니다. 위의 예에서는 maxPoolSize=20w=majority 라는 두 가지 연결 옵션을 설정했습니다. 연결 옵션에 대한 자세한 내용을 보려면 연결 옵션 섹션으로 건너뛰세요.

Atlas의 MongoDB deployment에 연결하려면 클라이언트를 만들어야 합니다. 클라이언트를 생성하려면 MongoClient 인스턴스를 구축하고 URI와 MongoClientOptions 객체를 전달합니다.

클라이언트 재사용

MongoClient는 데이터베이스에 대한 연결 풀을 나타내므로 대부분의 애플리케이션은 요청이 여러 개인 경우에도 MongoClient의 단일 인스턴스만 필요로 합니다. 드라이버에서 연결 풀이 작동하는 방식에 대해 자세히 알아보려면 FAQ 페이지를 참조하세요.

MongoClientOptions 객체의 serverApi 옵션을 사용하여 서버가 지정된 API 버전과 호환되는 동작으로 작업을 실행하도록 하는 Stable API 기능을 허용합니다.

다음 코드는 Atlas의 MongoDB deployment에 연결할 때 연결 문자열과 Stable API 클라이언트 옵션을 지정하고 연결이 성공했는지 확인하는 방법을 보여줍니다.

const { MongoClient, ServerApiVersion } = require("mongodb");
// Replace the placeholder with your Atlas connection string
const uri = "<connection string>";
// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(uri, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
}
}
);
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("admin").command({ ping: 1 });
console.log("Pinged your deployment. You successfully connected to MongoDB!");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);

참고

Node.js 드라이버는 클라이언트를 사용하여 MongoDB deployment에서 CRUD 작업을 수행할 때 MongoClient.connect() 메서드를 자동으로 호출합니다. 연결이 성공했는지 확인하려면 MongoClient.connect() 메서드를 명시적으로 호출합니다.

스테이블 API 기능에 대해 자세히 알아보려면 스테이블 API 페이지를 참조하세요.

Atlas에서 호스팅되지 않는 단일 MongoDB 서버 인스턴스 또는 복제본 세트에 연결하는 경우, 다음 섹션을 참조하여 연결 방법을 알아보세요.

로컬 기계에서 MongoDB deployment에 연결하려면 다음 단계를 완료하세요.

  1. MongoDB Server의 Community 또는 Enterprise 버전을 다운로드합니다.

  2. MongoDB 서버를 설치하고 구성합니다.

  3. 서버를 시작합니다.

중요

악의적인 공격으로부터 항상 MongoDB 서버를 보호하세요. 보안 체크리스트에서 보안 권장 사항 목록을 확인하세요.

MongoDB Server를 성공적으로 시작한 후에는 드라이버 연결 코드에 연결 문자열을 지정하세요.

만약 MongoDB Server가 로컬에서 실행 중이라면, 다음 연결 문자열을 사용할 수 있습니다:

mongodb://localhost:<port>

이 연결 문자열에서 <port>는 들어오는 연결을 수신하도록 서버를 구성한 포트 번호입니다.

다른 호스트 이름이나 IP 주소를 지정하려면 연결 문자열에 대한 서버 매뉴얼 항목을 참조하세요.

서버에 연결할 수 있는지 테스트하려면 MongoDB에 연결 코드 예시에서 연결 문자열을 바꾸고 실행하세요.

MongoDB 복제본 세트 배포는 동일한 데이터 세트를 저장하는 연결된 인스턴스 그룹입니다. 이러한 인스턴스 구성은 데이터 중복성과 높은 데이터 가용성을 제공합니다.

복제본 세트 배포서버에 연결하려면 각 인스턴스의 호스트 이름과 포트 번호를 쉼표로 구분하고, 연결 문자열의 replicaSet 매개변수 값으로 복제본 세트 이름을 지정하세요.

mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs

드라이버는 연결 시 기본적으로 다음 조치를 수행합니다:

  • 한 멤버의 주소가 제공되면 모든 복제본 세트 멤버를 검색합니다.

  • 프라이머리 에 대한 쓰기와 같은 작업을 적절한 멤버에게 디스패치합니다.

모든 호스트 지정

하나의 호스트를 사용할 수 없는 경우 연결을 보장하려면 복제본 세트에 연결 시 호스트의 전체 목록을 제공하세요.

연결 URI에 지정된 호스트에서 작업을 강제로 실행하려면 directConnection 연결 옵션을 지정할 수 있습니다. 이 옵션을 지정하는 경우 표준 연결 URI 형식을 사용해야 합니다. 해당 옵션을 지정한 경우 드라이버는 DNS 시드 목록 연결 형식(SRV)을 허용하지 않습니다.

directConnection을 지정하고 복제본 세트의 세컨더리 노드에 연결하면 클라이언트가 프라이머리 노드에 연결되어 있지 않기 때문에 쓰기 연산이 실패합니다. 읽기 연산을 수행하려면 세컨더리 읽기를 활성화해야 합니다. 자세한 내용은 읽기 설정 옵션을 참조하세요.

돌아가기

연결