MongoDB란 무엇인가 ?
MongoDB는 문서 지향(Document-Oriented) NoSQL 데이터베이스이다. RDBMS(예 : MySQL) 처럼 테이블에 데이터를 저장하지 않고, JSON과 유사한 BSON(Binary JSON) 형식으로 데이터를 저장한다.
MongoDB의 특징
- 문서 기반 : 데이터를 테이블이 아닌, 문서(document)로 저장
- 스키마 유연성 : 칼럼 정의 없이 자유롭게 필드 추가 가능
- 빠른 읽기/쓰기 : 대용량 데이터를 빠르게 저장/조회 가능
- JSON 형식과 유사 : 프론트와 백엔드 간 데이터 교환 형식과 자연스럽게 연동 가능
왜 MongoDB를 도입하게 되었을까 ?
우리 팀이 진행하는 handDoc 프로젝트는 수어-텍스트-음성 변환 AI 기반 통역 시스템으로, 수어가 텍스트로 변환되고 음성 역시 텍스트로 변환되어 채팅창에 채팅 형식으로 보이게 된다. '채팅' 형태에서는 MySQL 과 같은 RDBMS보다는 NoSQL 데이터베이스가 적합하다. 이 대화의 흐름을 채팅 형태의 문서로 직관적으로 저장하기 위해 도입하게 되었다.
Docker로 MongoDB 환경 구축하기
MongoDB 를 적용하기 위해, 도커(Docker)를 활용해 로컬 환경을 구축하고, 팀원들과 공유 가능한 환경을 `docker-compose.yml` 로 구성하였다.
1) 내 로컬에서 MongoDB 도커 환경 구축하기
아래 명령어를 실행해 MongoDB의 최신 이미지를 다운로드한다.
docker pull mongo
그리고, 몽고 디비의 이미지를 확인하였다.
docker images

그리고 컨테이너를 생성한다. MongoDB의 기본 포트 번호는 27017이다.
docker run --name handdoc-mongo -p 37017:27017 -d mongo
- `--name` : 컨테이너 이름 설정
- `-p 37017:27017` : 로컬 포트 (37017)를 컨테이너의 27017 포트에 매핑
- `-d` : 백그라운드 모드 실행
컨테이너 실행 상태 확인 : 컨테이너가 정상적으로 실행 중이라면, STATUS가 `Up` 상태로 표시된다.
docker ps -a

2) 팀원들과 공유 가능한 docker-compose.yml 구성
프로젝트에서 MongoDB를 공통 개발 환경으로 사용하기 위해, 아래와 같은 `docker-compose.yml` 을 작성하였다.
version: "3.8"
services:
mongodb:
image: mongo:6.0
container_name: handdoc-mongo
restart: always
ports:
- "37017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: ${DOCKER_MONGO_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${DOCKER_MONGO_PASSWORD}
volumes:
- mongo_data:/data/db
networks:
- handdoc-net
volumes:
mongo_data:
networks:
handdoc-net:
팀원들은 실행하기 위해서 다음 명령어만 입력해주면 된다.
docker-compose up -d
MongoDB Compass로 접속 확인하기
MongoDB Compass는 GUI를 제공하는 MongoDB 관리 도구이다. (MySQL Workbench와 같은 것이다 !!) 설치 후 다음과 같이 설정하면 로컬 MongoDB 컨테이너에 쉽게 접속할 수 있다.
https://www.mongodb.com/try/download/compass
Try MongoDB Tools - Download Free Here
Free download for MongoDB tools to do more with your database. MongoDB Shell, Compass, CLI for Cloud, BI Connector and other database tools available.
www.mongodb.com
다운로드 받으면 다음과 같이 나오게 되고,

Add new Connection을 눌러서 다음과 같이 작성해 연결하면 된다.

Connect를 눌러 성공하게 되면 다음과 같이 나오게 된다 !

여담
구글에 '몽고디비' 라고 검색하니깐, '몽고디비 쓰지마세요' 라는 연관검색어가 나오는 것을 알 수 있다. 그래서 왜 이런 이야기가 나왔나 찾아보니, 옛날에 몽고디비가 아쉬운 점들이 많아서 사용하지 말라는 이야기가 돌았다고 한다. 그러나, 지금은 몽고디비는 널리 사용되고 있으며 많은 장점을 가진 데이터베이스가 되었다고 한다. 엄청난 업데이트 속도...에 빠르게 발전한 데이터베이스라고 한다. 클라우드 기술이 발전하면서 몽고에서 제공하는 관리형 서비스인 Atlas가 있어 운영 부담을 줄일 수 있기에 사용 사례가 많이 늘었다고 한다... !!
'프로젝트 > handDoc' 카테고리의 다른 글
| [AI] 수어 동작 인식 모델 만들기 - CNN과 LSTM (0) | 2025.10.01 |
|---|---|
| [AI] 구음장애 환자 발화 데이터셋을 활용한 Whisper 모델 파인튜닝 (0) | 2025.09.21 |
| [Spring] WebRTC 정리 - 시그널링 서버와 STUN/TURN 서버 (0) | 2025.09.08 |
| [Spring] NAVER CLOVA CSR 적용하여 음성을 텍스트로 변환하기 (0) | 2025.08.15 |
| [Spring] MongoDB Atlas 설정하기 (0) | 2025.08.04 |
