2025년 12월 10일2분 분량

MongoDB 연동을 위한 튜토리얼

에서 설정을 할때 2가지 방식으로 가능하다. 나는 첫번째 방식인 를 통해서 연동을 진행했다. TestCode를 통해 DB에 insert를 진행하니 정상적으로 데이터가 저장된다. 이…

java
1//Config
2
3@Configuration
4@EnableMongoAuditing
5class MongoConfig {
6}
java
1//Repository
2
3interface MailContentsRepository : MongoRepository<MailContents, String> {
4}
java
1//Entity(Document)
2@Document(collection = "mail_contents")
3class MailContents(
4
5 @Id
6 val id : String? = null,
7
8 var name : String,
9
10 var content : String,
11
12 var category: MailCategory = MailCategory.NONE,
13
14 var siteLink: String,
15
16 @CreatedDate
17 val createdAt: Instant? = null,
18
19 @LastModifiedDate
20 val updatedAt: Instant? = null,
21 )

yaml 에서 설정을 할때 2가지 방식으로 가능하다. 나는 첫번째 방식인 URI를 통해서 연동을 진행했다.

yaml
1spring:
2 data:
3 mongodb:
4 uri: mongodb+srv://{id}:{password}@{uri}/{dbName}?retryWrites=true&w=majority
yaml
1spring:
2 data:
3 mongdb:
4 host:
5 port:
6 user:
7 password:

TestCode를 통해 DB에 insert를 진행하니 정상적으로 데이터가 저장된다.

kotlin
1@Test
2@DisplayName("Insert 테스트")
3fun insert() {
4 val mailContents =
5 MailContents(null, "name", "contents", MailCategory.NONE, "test.com", Instant.now(), Instant.now())
6 mailContentsRepository.save(mailContents)
7}

작업결과
작업결과

확인
확인

이때 RDB는 서버 기동과 동시에 DDL을 통해 테이블과 스키마를 만들지만, MongoDB에서는 컬렉션을 미리 만들지 않고, 첫 insert가 진행되는 시점에서 자동 생성된다. 간단하게 정리해보자.

RDB

  • 테이블 먼저 생성
  • 그 다음에 INSERT 가능

MongoDB

  • 컬렉션을 미리 안 만들어도 됨
  • 첫 insert 시점에 자동 생성