초보자를 위한 필수 MongoDB 관리 명령어

`mongosh` 셸을 사용하여 MongoDB의 필수 관리 명령어를 마스터하세요. 이 가이드는 데이터베이스 전환, 컬렉션 생성/삭제, 역할 기반 사용자 관리, 그리고 `serverStatus`와 같은 중요한 시스템 상태 확인을 포함하여 초보자에게 필요한 기본 작업을 다룹니다. 안전하게 NoSQL 환경을 관리하는 데 필요한 기본 명령어를 배우십시오.

36 조회수

초보자를 위한 필수 MongoDB 관리 명령어

선도적인 NoSQL 문서 데이터베이스인 MongoDB는 유연성과 확장성으로 잘 알려져 있습니다. 개발자는 종종 CRUD(Create, Read, Update, Delete) 작업에 집중하지만, 데이터베이스 환경을 효과적으로 관리하려면 필수 관리 명령어에 대한 이해가 중요합니다. 이 가이드에서는 초보자를 위해 데이터베이스 관리, 사용자 관리 및 시스템 상태 점검에 필요한 핵심 명령어를 소개하여 MongoDB 인스턴스가 원활하고 안전하게 실행되도록 합니다.

간단한 로컬 개발을 넘어 프로덕션 환경으로 나아가려면 이러한 관리 작업을 숙달하는 것이 중요합니다. mongosh 셸을 사용하여 데이터베이스, 컬렉션, 사용자를 관리하고 필요한 시스템 진단을 수행하는 방법을 살펴보겠습니다.


MongoDB 셸(mongosh) 액세스

관리 명령어를 실행하는 기본 인터페이스는 MongoDB 셸이며, 일반적으로 mongosh 명령어를 사용하여 액세스합니다. 이곳에서 JavaScript 기반 명령어를 MongoDB 인스턴스에 직접 실행합니다.

기본 포트(27017)에서 실행 중인 로컬 MongoDB 인스턴스에 연결하려면 다음을 입력합니다.

mongosh

연결되면 > 프롬프트가 표시되어 명령을 실행할 준비가 되었음을 나타냅니다.

데이터베이스 관리 명령어

현재 사용 중인 데이터베이스를 관리하고 기존 데이터베이스를 보는 것은 기본적인 관리 작업입니다.

모든 데이터베이스 나열

MongoDB 서버에 현재 존재하는 모든 데이터베이스 목록을 보려면 show dbs 명령어를 사용합니다.

> show dbs
admin    40.00 KiB
config   72.00 KiB
local    72.00 KiB
myAppDB 100.00 KiB

데이터베이스 전환

데이터베이스나 컬렉션을 생성하기 전에 use 명령어를 사용하여 원하는 데이터베이스로 컨텍스트를 전환해야 합니다. 데이터베이스가 존재하지 않으면 MongoDB는 첫 번째 데이터 삽입 시 암묵적으로 생성합니다.

> use myAppDB
switched to db myAppDB

현재 데이터베이스 보기

현재 작업 중인 데이터베이스 컨텍스트를 확인하려면 db를 사용합니다.

> db
myAppDB

데이터베이스 삭제

경고: 이 작업은 지정된 데이터베이스 내의 모든 데이터를 영구적으로 삭제합니다. 프로덕션 환경에서는 특히 극도의 주의를 기울여 사용하십시오.

현재 데이터베이스( db에서 반환된 데이터베이스)를 삭제하려면 다음을 수행합니다.

> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }

컬렉션 관리 명령어

컬렉션은 관계형 데이터베이스의 테이블과 유사합니다. db 객체 약어를 사용하여 쉽게 관리할 수 있습니다.

컬렉션 나열

특정 데이터베이스를 사용하는 동안 show collections (또는 이전 버전의 경우 db.getCollectionNames())를 사용하여 해당 데이터베이스 내의 모든 컬렉션을 나열합니다.

> show collections
users
products
orders

컬렉션 생성

컬렉션은 종종 첫 번째 삽입 시 자동으로 생성됩니다. 그러나 유효성 검사 규칙이나 캐핑을 제어하기 위해 db.createCollection()을 사용하여 명시적으로 생성할 수 있습니다.

// "logs"라는 표준 컬렉션 생성
> db.createCollection("logs")
{ "ok" : 1 }

컬렉션 삭제

컬렉션을 완전히 제거하려면 다음을 수행합니다.

> db.logs.drop()
true

사용자 및 보안 관리

프로덕션 용도로 사용되는 모든 데이터베이스의 경우 사용자 인증을 통한 액세스 보안은 필수입니다. 사용자 관리는 일반적으로 admin 데이터베이스 또는 사용자가 권한을 가져야 하는 특정 데이터베이스 내에서 수행됩니다.

사용자 생성을 위한 관리 데이터베이스로 전환

관리자 사용자는 일반적으로 admin 데이터베이스에 생성하지만, 역할 기반 사용자는 애플리케이션 데이터베이스에 생성할 수 있습니다.

> use admin
switched to db admin

사용자 생성

db.createUser()를 사용하여 새 사용자를 추가합니다. 여기에는 사용자 이름, 안전한 비밀번호 및 할당된 역할 지정을 포함해야 합니다.

> db.createUser(
...   {
...     user: "appAdmin",
...     pwd: passwordPrompt(), // 비밀번호를 안전하게 입력하라는 메시지 표시
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
...   }
... )
  • : 스크립트에 일반 텍스트 비밀번호를 포함하는 것보다 passwordPrompt()를 사용하는 것이 좋습니다.

사용자 나열

현재 데이터베이스 내의 기존 사용자를 보려면 다음을 수행합니다.

> show users

시스템 모니터링 및 진단

관리자는 실행 중인 MongoDB 인스턴스의 상태, 상태 및 구성을 확인할 수 있는 방법이 필요합니다.

서버 상태 확인

serverStatus 명령어는 메모리 사용량, 연결, 작업 등을 포함하여 서버 작동에 대한 통계를 자세히 설명하는 포괄적인 문서를 반환합니다.

> db.serverStatus()
// 출력은 메트릭을 포함하는 대규모 JSON 문서가 됩니다.

현재 연결 보기

활성 클라이언트 연결을 보려면 currentOp 명령어를 쿼리하거나 serverStatus 출력의 연결 섹션을 볼 수 있습니다. 현재 작업을 직접 보는 방법은 다음과 같습니다.

> db.currentOp()

구성 확인

현재 인스턴스에 적용된 구성 설정을 보려면 다음을 수행합니다.

> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })

요약 및 다음 단계

데이터베이스 전환, 컬렉션 관리, 사용자 생성 및 기본 모니터링을 다루는 이러한 필수 명령어는 효과적인 MongoDB 관리의 기초를 형성합니다. mongosh는 즉각적인 피드백을 제공하지만, 고급 모니터링에는 종종 MongoDB Compass와 통합하거나 MongoDB Atlas 인터페이스를 사용하여 시각적 진단을 수행해야 합니다.

모범 사례: 항상 자격 증명으로 연결하고 사용자 역할을 필요한 최소 권한으로 제한하십시오(최소 권한 원칙).

중요 데이터 저장소를 관리하기 전에 프로덕션이 아닌 환경에서 이러한 명령어를 연습하여 자신감을 쌓으십시오.