공지 사항역대 가장 빠른 MongoDB, MongoDB 8.0을 소개합니다! 더 보기 > >>
공지 사항Voyage AI가 MongoDB와 협력하여 Atlas에서 더욱 정확하고 신뢰할 수 있는 AI 애플리케이션을 지원합니다. 자세히 알아보기 > >>

Java와 MongoDB

MongoDB Atlas 무료 체험

Java와 MongoDB의 인기를 고려하면, 두 기술이 함께 잘 작동하는 것은 놀라운 일이 아닙니다.

로컬 또는 온프레미스에 설치된 MongoDB에서 개발하든, MongoDB Atlas를 통해 클라우드 우선 방식으로 개발하든, MongoDB Java 드라이버와 관련 생태계를 통해 개발 프로세스에 MongoDB를 손쉽게 통합할 수 있습니다.

이 글에서는 다음 내용을 자세히 살펴보겠습니다.

MongoDB와 Java를 함께 사용하는 이유는 무엇인가요?

Java는 가장 널리 사용되는 프로그래밍 언어 중 하나이며, 여기에는 그만한 이유가 있습니다. 1995년에 처음 출시된 Java는 이후 개발자 커뮤니티에서 상당한 영향력을 유지해 왔습니다. 금융 서비스, 의료, 공공 부문을 비롯한 여러 산업에 매우 적합합니다. Java는 객체 지향 언어이며 WORA(write once, run anywhere, 한 번 작성하면 어디서나 실행 가능) 원칙을 따르므로, 다시 컴파일할 필요 없이 Java를 지원하는 모든 플랫폼에서 실행할 수 있습니다.

MongoDB는 여러 순위에서 가장 널리 사용되는 NoSQL 데이터베이스 기술로 1위를 차지하고 있습니다. 고가용성과 확장성을 갖춘 인터넷 애플리케이션을 구축하는 데 사용되는 문서 데이터베이스입니다. 2007년에 설립된 MongoDB는 전 세계 개발자 커뮤니티에서 지지를 받고 있습니다. MongoDB는 언제나 개발자에게 뛰어난 사용자 경험을 제공하는 데 중점을 두었으며, 이러한 사용자 경험과 다양한 기능 덕분에 전 세계 개발자들이 선호하는 데이터베이스가 되었습니다.

새로운 것을 구축하면서 데이터베이스가 필요하다면 처음부터 MongoDB Atlas를 사용하는 것을 고려해 보세요. Atlas는 전문 검색, 차트, 파트너 통합 등 다양한 기능을 갖춘 완전 관리형 클라우드 네이티브 데이터베이스 서비스를 제공합니다. iOS 또는 Android용으로 개발한다면 Atlas Device Sync를 통해 모바일 동기화를 손쉽게 수행할 수 있습니다. MongoDB Atlas를 기반으로 GraphQL을 사용하는 웹 애플리케이션을 직접 구축할 수도 있습니다.

Java 및 MongoDB 시작하기

Java 8(또는 이후 버전)이 설치되어 있고 선호하는 IDE가 준비되어 있는지 확인하세요.

먼저 최신 버전의 MongoDB Java 드라이버에 대한 종속성을 선언하세요. Gradle 또는 Maven을 사용해 종속성을 선언하는 방법과 예제 코드는 여기에서 확인할 수 있습니다.

첫 Atlas 클러스터 생성하기

Java 프로젝트의 종속성을 모두 설정했다면 데이터베이스가 필요합니다.

이 가이드에 따라 MongoDB Atlas에서 계정을 만들고 프리 티어 클러스터를 생성할 수 있습니다. 가이드에는 샘플 데이터를 삽입하는 방법도 수록되어 있습니다.

Atlas 클러스터에 연결하기

앞 섹션의 과정을 마쳤다면 Atlas에 새 MongoDB 클러스터가 배포되고 새 데이터베이스 사용자와 비밀번호가 생성되었으며, 클러스터에 샘플 데이터 세트가 로드되어 있을 것입니다.

이제 드라이버를 사용해 데이터베이스에 연결할 차례입니다. 데이터베이스 연결을 설정하려면 드라이버에 연결 방법을 알려주는 정보가 필요합니다. 이 지침을 연결 문자열이라고 합니다. Atlas 계정에 로그인한 후 Database(데이터베이스) 섹션으로 이동하여 ‘Connect(연결)’를 클릭하면 이전 단계에서 생성한 클러스터와 사용자 이름에 해당하는 연결 문자열을 확인할 수 있습니다.

드라이버와 버전을 선택하라는 팝업이 표시됩니다. 두 드롭다운에서 각각 값을 선택하면 생성된 데이터베이스 연결 문자열(‘mongdb+srv://’로 시작)을 사용해 클러스터에 연결할 수 있습니다. 사용자 이름과 비밀번호는 반드시 본인의 값으로 바꿔야 합니다.

이 연결 문자열을 사용하면 애플리케이션에서 MongoDB 클러스터에 쿼리를 실행할 수 있습니다. 더 자세한 안내와 예제 코드는 여기에서 확인할 수 있습니다.

문서 및 컬렉션

SQL 데이터베이스와 달리 MongoDB는 문서와 컬렉션에 정보를 저장합니다.

문서

MongoDB는 데이터 기록을 BSON 문서로 저장합니다. BSON은 JSON 문서의 이진 표현이지만 JSON보다 더 많은 데이터 유형을 포함하고 있습니다. 문서는 필드-값 쌍으로 구성되며 다음과 같은 구조를 갖습니다.

 

 

필드와 관련된 값은 다른 문서, 배열, 심지어 문서 배열을 포함한 모든 BSON 데이터 유형이 될 수 있습니다. 필드 이름 자체는 문자열입니다.

문서는 고정된 스키마 대신 동적 스키마를 제공하므로 관계형 데이터베이스의 일반적인 행보다 훨씬 유연합니다(원한다면 MongoDB에서도 스키마 유효성 검사를 수행할 수 있습니다).

컬렉션

MongoDB는 문서를 컬렉션에 저장합니다. 컬렉션은 relational database의 테이블과 유사합니다. 컬렉션 생성 방법에 대한 자세한 내용과 컬렉션에 관한 기타 정보는 여기에서 문서를 확인하세요.

CRUD 작업 및 MongoDB 쿼리 언어

CRUD(생성, 읽기, 업데이트, 삭제) 작업은 데이터베이스에서 수행하는 네 가지 기본 작업입니다. MongoDB에서는 CRUD 작업을 통해 문서를 삽입하고, 조건에 일치하는 문서를 찾는 쿼리를 작성하며, 문서를 업데이트하고 삭제할 수 있습니다. 이러한 작업에는 MongoDB 쿼리 언어인 MQL을 사용할 수 있습니다. SQL 문과 달리 MQL은 문서와 동일한 구문을 사용하므로 고급 쿼리도 직관적이고 쉽게 작성할 수 있습니다.

전체 CRUD 튜토리얼과 Java 드라이버를 사용하는 네 가지 작업 각각의 예제 코드는 MongoDB Developer Center에서 확인할 수 있습니다.

다른 기술과의 통합

귀사의 기술 스택은 IDE와 선호하는 버전의 Java 그 이상일 것입니다. MongoDB를 사용할 수 있는 다양한 방법은 다음과 같습니다.

Spring Data MongoDB

Spring Data MongoDB는 각 데이터 저장소의 고유한 기능과 역량을 유지하면서 새로운 데이터 저장소에 익숙하고 일관된 Spring 기반 프로그래밍 모델을 제공하는 것을 목표로 하는 상위 프로젝트인 Spring Data의 일부입니다. MongoDB 데이터베이스와의 통합, MongoDB 컬렉션과 상호 작용하기 위한 POJO 중심 모델 등을 제공합니다.

Hibernate ORM용 MongoDB 확장

Hibernate는 관계형 데이터베이스의 제약 조건을 수용하면서 객체 지향 Java 코드를 관계형 데이터베이스에 매핑하기 위해 개발되었습니다. 이를 통해 Java 개발자는 Java 객체를 관계형 데이터베이스에 영구 저장할 수 있는 형태로 변환하는 번거롭고 오류가 발생하기 쉬운 과정보다 코드 작성에 더 집중할 수 있게 되었습니다. 이제 정식 출시된 Hibernate ORM용 MongoDB 확장은 Java 개발자가 MongoDB의 문서 모델과 Hibernate의 사용자 친화적인 기능을 활용해 현대적인 애플리케이션을 자유롭고 유연하게 구축할 수 있도록 지원합니다. 이러한 기능에는 엔터티 어노테이션, Hibernate Query Language(HQL) 지원, 조건 쿼리 등이 포함됩니다. 이 확장 기능은 JOIN(INNER 및 LEFT OUTER) 지원, 낙관적 잠금, Spring Boot 자동 구성(수동 재정의 불필요), 개선된 예외 메시지와 로깅도 제공하므로 프로덕션 워크로드에 사용할 수 있습니다.

클라우드 컴퓨팅 플랫폼

퍼블릭 클라우드 공급자라고 하면 떠오르는 주요 공급자 세 곳은 Amazon Web Services(AWS), Microsoft Azure 및 Google Cloud Platform(GCP)입니다. MongoDB Atlas는 이 세 주요 클라우드 서비스 공급자를 모두 지원합니다 멀티 클라우드 및 멀티 리전 배포도 지원합니다. 여기에서 자세히 알아보세요.

인프라 자동화

Terraform은 인프라를 안전하고 예측 가능한 방식으로 생성하고 변경하며 개선할 수 있는 오픈 소스 코드형 인프라 소프트웨어 도구입니다. HashiCorp Terraform MongoDB Atlas Provider는 HashiCorp가 개발한 공식 플러그인으로, Terraform을 사용해 모든 클라우드 공급자에서 Atlas 구성을 프로비저닝하고 관리하며 제어할 수 있도록 지원합니다.

모니터링 서비스

Atlas는 프로젝트의 지표 데이터를 Datadog 대시보드 또는 Prometheus 인스턴스로 전송할 수 있습니다. 또한 Flowdock, Microsoft Teams, OpsGenie, PagerDuty, Slack 등으로 정보를 전송하도록 Atlas를 구성할 수도 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다.

도움 받기

MongoDB를 사용할 때 가장 좋은 점은 다양한 수준의 Java 드라이버 경험을 갖춘 사용자들로 구성된 활발한 Java 커뮤니티입니다. 일반적인 질문에 대한 도움을 받는 가장 좋은 방법은 MongoDB Community 포럼을 이용하는 것입니다.

예상치 못한 오류가 발생하거나, Java 드라이버에서 버그를 발견했다고 생각하거나, 기능을 요청하고 싶다면 JAVA 프로젝트에 JIRA 티켓을 등록하세요. 티켓 등록 방법은 이 문서에서 확인할 수 있습니다. Java 드라이버와 코어 서버의 버그 보고서는 모두 공개되어 있습니다.

자주 묻는 질문

지금 Atlas 시작하기

몇 초 만에 시작할 수 있습니다. 무료 클러스터에는 512MB의 스토리지가 포함되어 샘플 데이터를 자유롭게 테스트해 보고 플랫폼에 익숙해질 수 있습니다.
무료로 사용해 보기영업 팀에 문의하기
다음으로 시작해 보세요.
  • 전 세계 125개 이상의 지역
  • 샘플 데이터 세트
  • 상시 활성화된 인증
  • 종단 간 암호화
  • 명령줄 도구