Java & Kotlin44 Start Spring Data MongoDB - 4. Application 코드 작성 개발을 위한 MongoDB 설정과 Spring Data MongoDB 설정을 마쳤으니 본격적으로 Application 코드를 작성해보도록 하겠다. (컨텐츠에 대한 데이터를 저정하는 애플리케이션을 기반으로 코드를 작성하였다.) (관련 코드는 여기에서 확인 가능하다) BaseDocumentEntity 먼저 Entity id와 생성일자, 수정일자를 갖는 BaseDocumentEntity 기반 클래스를 생성해보자. import org.springframework.data.annotation.CreatedDate import org.springframework.data.annotation.Id import org.springframework.data.annotation.LastModifiedDate import .. 2021. 9. 4. Start Spring Data MongoDB - 3. Spring Data MongoDB 설정 앞서 포스팅을 통해 MongoDB instance를 실행시키고 Transaction을 위한 Replica Set 설정을 마쳤다면, 이제 Spring Boot application과 MongoDB를 연동하기 위해 필요한 설정을 진행하도록 해보자. (관련 코드는 여기에서 확인 가능하다) application.yml 먼저 application.yml 설정을 하자. MongoDB에 접속할 수 있는 MongoDB instance 정보와 접속 설정을 위한 spring.data.mongodb.uri 와 Spring Data MongoDB의 debug log를 확인하기 위한 logging.level 설정을 추가한다. spring: data: mongodb: uri: mongodb://127.0.0.1:27017/pla.. 2021. 8. 30. Start Spring Data MongoDB - 2. MongoDB Single node replica set 설정 MongoDB에서 Transaction을 사용하기 위해서는 Replica Set이나 Sharded Cluster를 사용해야한다. https://dba.stackexchange.com/questions/265236/how-can-we-use-transaction-in-mongodb-standalone-connection https://docs.mongodb.com/manual/core/retryable-writes/ 개발 시에 여러대에 MongoDB instance를 띄우고 Replica Set이나 Sharded Cluster를 구성하는 것은 불편하기 때문에 개발 시 단순 Transaction 처리를 위해서라면 하나의 MongoDB instance를 사용하여 Single node replica set을 구.. 2021. 8. 30. Start Spring Data MongoDB - 1. 개요 및 프로젝트 생성 Spring Data Project는 Spring framework와 여러 data source를 쉽게 통합할 수 있는 방법을 제공한다. Spring Data Project 중 하나인 Spring Data MongoDB를 사용하면 쉽게 MongoDB와 통합이 가능하다. 이번 포스팅 시리즈에서는 Spring Boot(w/ Kotlin)와 MongoDB를 사용하여 간단한 애플리케이션을 만드는 과정을 살펴보도록 하겠다. (관련 코드는 여기에서 확인 가능하다) Project 생성 Spring Initializr를 통해 Spring Boot Application을 생성한다. Spring Web과 Spring Data MongoDB를 dependency로 추가한 뒤 프로젝트를 생성한다. 당장의 프로젝트 설정은 위와.. 2021. 8. 30. gradle multi module test 속도를 높여보자 (with parallel) gradle multi module 기반으로 개발을 할 때 각 모듈의 테스트 속도가 오래 걸릴 경우 전체 테스트 시간이 길어져서 전체적인 개발 사이클이 그만큼 느려지게 되는데, multi module 환경에서 모듈 별 테스트를 병렬로 실행시켜 테스트 속도를 높일 수 있는 방안에 대해 알아보자. 테스트에 사용된 코드는 여기에서 확인할 수 있다. 다음과 같이 test1, test2, test3 모듈을 생성하고 각 모듈의 테스트가 일부러 오래걸리도록 Testcontainers를 사용하여 테스트를 실행하도록 하였다. @SpringBootTest class Test1ApplicationTests { companion object { private val mysqlContainer = MySQLContainer(".. 2021. 7. 29. JUnit5 - @TestInstance에 대해 알아보자 다음과 같은 JUnit 테스트 코드가 있다고 해보자. import org.junit.jupiter.api.Test class TestForTestInstance { var number = 0 @Test fun add1() { number++ println("[add1] number is $number") } @Test fun add2() { number+=2 println("[add2] number is $number") } } 테스트를 진행하면 콘솔에 출력되는 number 값은 어떻게 될까? 테스트 순서를 정하지 않아 순서는 몰라도 결과적으로는 둘 중 하나는 number가 3으로 출력되어야 할 것 같다. 테스트를 실행시켜보면 다음과 같이 콘솔에 출력되는 것을 확인할 수 있다. number 값이 테스트 .. 2021. 7. 25. 이전 1 ··· 3 4 5 6 7 8 다음