MongoDB 연동을 위한 튜토리얼
에서 설정을 할때 2가지 방식으로 가능하다. 나는 첫번째 방식인 를 통해서 연동을 진행했다. TestCode를 통해 DB에 insert를 진행하니 정상적으로 데이터가 저장된다. 이…
java
1//Config2
3@Configuration 4@EnableMongoAuditing 5class MongoConfig { 6}java
1//Repository2
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=majorityyaml
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 시점에 자동 생성