MongoDB와 관련 도구 설치하기
MongoDB 생태계는 여러 소프트웨어 구성 요소로 이루어져 있습니다. 처음 접할 때 약간의 혼동이 있을 수 있지만, 실제로는 매우 간단합니다. 이번 장에서는 다음과 같은 구성 요소들을 설치하고 사용할 것입니다:
- MongoDB Community Edition: 모든 주요 운영체제(Linux, Windows, macOS)에서 실행 가능한 무료 MongoDB 버전으로, 로컬에서 데이터를 다루기 위해 사용합니다.
- MongoDB Compass: MongoDB 데이터를 시각적으로 관리, 쿼리, 집계 및 분석할 수 있는 GUI 도구입니다. 초기 데이터 탐색에 유용합니다.
- MongoDB Atlas: MongoDB의 DBaaS(Database-as-a-Service) 솔루션입니다. FARM 스택에서 MongoDB가 중요한 이유 중 하나로, 설정이 비교적 쉽고 데이터베이스 관리를 자동화해줍니다.
- MongoDB Shell: CRUD 작업뿐 아니라 데이터베이스 생성/삭제, 서비스 시작/중지 같은 관리 작업도 수행할 수 있는 커맨드라인 도구입니다.
- MongoDB Database Tools: 데이터 내보내기/가져오기, 진단, GridFS 파일 조작 등을 위한 명령줄 유틸리티 모음입니다.
MongoDB 생태계는 지속적으로 발전하고 있어, 이 글을 읽을 시점에는 버전이 더 높아지거나 일부 도구 이름이 변경되었을 수 있습니다. 최근에는 모바일 앱이나 IoT 애플리케이션 개발을 위한 실시간 플랫폼인 Realm도 출시되었습니다. 모든 설치 과정을 상세히 다루기보다는, 핵심 단계와 전체적인 절차에 초점을 맞추겠습니다.
Docker로 MongoDB 및 Compass 설치하기
MongoDB 6.x 버전 이미지를 Docker Hub에서 확인합니다:
https://hub.docker.com/_/mongo/tags?page=1&name=6.
여기서는 6.0.14-jammy 버전을 선택했습니다.
이미지 다운로드:
docker pull mongo:6.0.14-jammy
컨테이너 생성 및 실행:
docker run --name mongo -d --restart=always -p 27017:27017 mongo:6.0.14-jammy
Python으로 연결 테스트:
import time
from pymongo import MongoClient
# 메인 프로세스가 종료되지 않도록 대기 필요
client = MongoClient('mongodb://192.168.77.129:27017/')
print(client)
time.sleep(1)
print("MongoDB 연결 성공:", client)
MongoDB Compass 설치
다운로드 페이지: https://www.mongodb.com/products/tools/compass
Windows 버전을 선택하여 다운로드하고 설치한 후, Compass를 실행하여 MongoDB 인스턴스에 연결합니다.
Compass로 데이터 가져오기 및 내보내기
실습을 위해 데이터가 필요합니다. 이 책의 GitHub 저장소 chapter2 폴더에서 cars_data.csv 파일을 찾을 수 있습니다.
- Compass에서 Create Database 버튼을 클릭합니다.
- 데이터베이스 이름은
carsDB, 컬렉션 이름은cars로 입력합니다. - 좌측 메뉴에서
carsDB데이터베이스를 선택하면 생성된cars컬렉션이 보입니다. - 중앙의 Import Data 버튼을 클릭하고, 다운로드한 CSV 파일을 선택합니다.
- 가져오기 전에 각 컬럼의 데이터 타입을 적절히 설정합니다:
year,price,km,kW,cm3,standard→ Numberimported,registered→ Boolean
이 CSV 파일에는 7323대의 자동차 데이터가 포함되어 있으며, 기본적으로 모든 필드는 문자열로 설정됩니다. 데이터 타입을 올바르게 지정하는 것이 중요합니다. 향후 사용할 Motor나 PyMongo 같은 드라이버는 데이터 타입을 자동으로 인식하지만, Compass 같은 GUI 도구에서는 수동으로 설정해야 합니다.
Import 버튼을 누르면 7000개 이상의 문서가 포함된 컬렉션이 생성됩니다. 이후 Compass를 사용해 쿼리, 집계를 실행하고 CSV나 JSON 형식으로 데이터를 내보낼 수 있습니다. 필요하면 컬렉션이나 데이터베이스를 삭제하고 다시 가져올 수 있습니다.