MongoDB 설치 · 5 min read · Oct 21, 2025
Debian 12에 MongoDB 설치하는 방법

MongoDB는 오픈 소스, 크로스 플랫폼, 분산 NoSQL(비관계형) 데이터베이스 시스템입니다. 전통적인 SQL 데이터베이스처럼 데이터를 테이블에 저장하는 대신, MongoDB는 다양한 데이터 형식을 저장하기 위해 유연한 문서를 사용합니다. MongoDB는 데이터를 저장하기 위해 이진 JSON 형식인 BSON을 사용합니다.
MongoDB는 내장된 고가용성, 자동 장애 조치 및 데이터 중복성, 분산 클러스터를 통한 수평 확장을 지원하는 분산 NoSQL 데이터베이스이며, 다중 지역 지리적 배포를 지원합니다. MongoDB는 CRUD 작업(읽기 및 쓰기), 데이터 집계 파이프라인, 텍스트 검색 및 지리 공간 쿼리를 지원하는 쿼리 API도 제공합니다.
이 튜토리얼에서는 Debian 12 서버에 MongoDB를 설치하는 방법을 배웁니다. 또한 MongoDB 인증을 활성화하고, ‘mongosh’ MongoDB 클라이언트를 사용하고, 기본 쿼리를 사용하여 MongoDB에서 새 사용자와 데이터베이스를 만드는 방법도 배웁니다.
전제 조건
이 튜토리얼을 시작하기 전에 다음 사항을 확인하세요:
- Debian 12 서버
- 관리자 권한이 있는 비루트 사용자
Debian 서버 준비
Debian 서버에 MongoDB를 설치하기 전에 다음 설정을 적용하는 것이 좋습니다:
- systemd 스크립트를 통해 투명한 큰 페이지(THP) 비활성화
- MongoDB 사용자에 대한 기본 한계 증가
- ‘ /etc/sysctl.conf ‘ 파일을 통해 스와핑 및 max_mmap 메모리 증가
이제 Debian 서버를 구성해 보겠습니다.
먼저, 아래의 ‘ nano ‘ 명령을 실행하여 새 서비스 파일 /etc/systemd/system/disable-thp.service를 생성합니다.
sudo nano /etc/systemd/system/disable-thp.service다음 서비스 스크립트를 붙여넣어 ‘ transparent_hugepage ‘를 ‘ never ‘로 설정합니다.
[Unit]
Description=투명한 큰 페이지(THP) 비활성화
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target파일을 저장하고 종료합니다.
이제 다음 ‘ systemctl ‘ 명령을 실행하여 systemd 관리자를 다시 로드합니다. 그런 다음 ‘ disable-thp ‘ 서비스를 시작하고 활성화합니다. 이렇게 하면 매 시스템 시작 시 ‘ transparent_hugepage ‘가 비활성화됩니다.
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service다음으로, ‘ nano ‘ 편집기로 새 파일 /etc/security/limits.d/mongodb.conf를 생성합니다.
sudo nano /etc/security/limits.d/mongodb.conf아래 구성을 삽입하여 사용자 ‘ mongod ‘에 대한 최대 한계 프로세스 및 파일을 ‘ 64000 ‘으로 설정합니다.
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000완료되면 파일을 저장하고 종료합니다.
그 후, 다음과 같이 ‘ /etc/sysctl.conf ‘ 파일을 편집합니다.
sudo nano /etc/sysctl.conf아래 구성을 줄의 맨 아래에 삽입합니다.
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1파일을 저장하고 종료합니다.
마지막으로, 아래의 ‘ sysctl ‘ 명령을 실행하여 ‘ /etc/sysctl.conf ‘ 파일의 변경 사항을 즉시 적용합니다.
sudo sysctl -p
Debian에 MongoDB 서버 설치
이제 Debian 서버를 구성했으므로 MongoDB 설치를 시작하겠습니다. 이 경우, 공식 MongoDB 리포지토리를 통해 Debian 서버에 MongoDB 7.0을 설치합니다.
다음 명령으로 Debian 시스템에 ‘ gnupg ‘ 및 ‘ curl ‘ 패키지를 설치합니다.
sudo apt install gnupg curl
이제 아래 명령으로 Debian에 MongoDB GPG 키와 리포지토리를 추가합니다. 이 경우, MongoDB 7.0에 대한 리포지토리를 설정합니다.
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmorecho "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
다음으로, 아래의 ‘ apt ‘ 명령을 실행하여 패키지 목록을 새로 고치고 ‘mongodb-org’ 패키지를 설치합니다.
sudo apt update && sudo apt install mongodb-org -y다음 출력에서 MongoDB 설치를 확인할 수 있습니다.

설치가 완료되면 ‘systemctl’ 명령으로 systemd 관리자를 다시 로드합니다.
sudo systemctl daemon-reload‘mongod’ 서비스를 시작하고 활성화한 다음, 서비스가 실행 중인지 확인합니다.
sudo systemctl enable --now mongod
sudo systemctl status mongodMongoDB가 실행 중이라면 다음과 같은 출력을 볼 수 있습니다:

인증으로 MongoDB 서버 보안 강화
MongoDB가 설치되었으므로 MongoDB 인증을 활성화하여 설치를 보호해야 합니다. 이 섹션에서는 MongoDB 인증을 설정하고 MongoDB의 새 관리자 사용자를 생성합니다. ‘ mongosh ‘ 또는 MongoDB 클라이언트를 사용하고 기본 MongoDB 쿼리를 사용하는 방법을 보여줍니다.
아래의 ‘ mongosh ‘ 명령으로 MongoDB 서버에 로그인합니다. 기본 MongoDB 설치에는 비밀번호가 없습니다.
mongosh‘ disableTelemetry() ‘ 명령을 실행하여 MongoDB의 익명 데이터 수집을 비활성화합니다.
disableTelemetry()‘ use ‘ 쿼리로 ‘ admin ‘ 데이터베이스로 전환합니다.
use admin이제 아래 쿼리를 실행하여 MongoDB 서버의 관리자 역할로 사용될 새 사용자 ‘ myAdmin ‘을 생성합니다. 요청 시 비밀번호를 입력합니다.
db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)‘ quit() 명령을 입력하여 MongoDB 서버에서 종료합니다.
quit()
다음으로, ‘ nano ‘ 편집기로 ‘ /etc/mongod.conf ‘ 파일을 편집합니다.
sudo nano /etc/mongod.conf‘ security ‘ 옵션의 주석을 제거하고 ‘ authorization: enabled ‘를 추가하여 MongoDB에서 인증을 활성화합니다.
security:
authorization: enabled파일을 저장하고 편집기를 종료합니다.
이제 아래의 ‘ systemctl ‘ 명령을 실행하여 MongoDB 서버를 재시작하고 수정 사항을 적용합니다.
sudo systemctl restart mongodMongoDB 인증 테스트
이제 관리 사용자를 생성하고 MongoDB 서버에서 인증을 활성화했습니다. ‘ myAdmin ‘ 사용자로 MongoDB 서버에 로그인하여 구성을 확인해 보겠습니다.
아래의 ‘ mongosh ‘ 명령을 실행하여 ‘ myAdmin ‘ 사용자로 MongoDB 서버에 로그인하고 요청 시 비밀번호를 입력합니다.
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p
로그인한 후, 아래 쿼리를 실행하여 MongoDB 서버에 대한 연결 상태를 확인합니다.
db.runCommand({connectionStatus : 1})아래에서 ‘ myAdmin ‘ 사용자로 MongoDB 서버에 연결된 것을 확인할 수 있습니다.

첫 번째 데이터베이스 및 사용자 생성
이 섹션에서는 ‘mongosh’ MongoDB 클라이언트를 통해 애플리케이션에 사용할 새 데이터베이스와 사용자를 생성합니다. 따라서 ‘ mongosh ‘ 환경에 있는지 확인하세요.
먼저, ‘ use ‘ 쿼리를 실행하여 대상 데이터베이스를 생성하고 전환합니다. 이 예에서는 새 데이터베이스 ‘ mydb ‘를 생성합니다. MongoDB 프롬프트가 ‘ mydb ‘로 변경됩니다.
use mydb이제 아래 쿼리를 실행하여 데이터베이스 ‘ mydb ‘에 읽기 및 쓰기 권한이 있는 새 사용자 ‘myUser’를 생성합니다. 요청 시 새 비밀번호를 입력합니다.
use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)
다음으로, 아래 쿼리를 실행하여 ‘ admin ‘ 데이터베이스로 전환하고 MongoDB 서버의 사용자 목록을 확인합니다.
use admin
db.system.users.find()‘ myAdmin ‘ 및 ‘ myUser ‘ 사용자가 다음과 같이 생성된 것을 볼 수 있습니다:
이제 ‘ quit() ‘를 입력하여 MongoDB 서버에서 종료합니다.

마지막으로, 아래 명령으로 새 사용자 ‘ myUser ‘로 데이터베이스 ‘ mydb ‘에 로그인합니다. 요청 시 비밀번호를 입력합니다.
mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p
아래 쿼리를 실행하여 현재 연결 상태를 확인합니다.
db.runCommand({connectionStatus : 1})‘ authInfo ‘ 섹션에서 ‘ myUser ‘ 사용자와 데이터베이스 ‘ mydb ‘로 인증된 것을 확인할 수 있습니다.

결론
축하합니다! Debian 12 서버에 MongoDB 7.0 설치를 완료했습니다. 또한 인증을 활성화하여 MongoDB 서버를 보호하는 방법과 MongoDB의 새 관리자 사용자를 생성하는 방법을 배웠습니다. 마지막으로, 애플리케이션을 위한 새 MongoDB 데이터베이스와 사용자를 생성하는 방법을 배웠습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.