ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] Spring Boot로 MongoDB Atlas 사용하는 법
    Server/Spring Boot 2021. 5. 23. 03:07
    728x90
    반응형

    Spring Boot에서 MongoDB Atlas 사용하는 법

    이번 글에서는 Spring BootMongoDB Atlas를 사용하는 법에 대해서 정리해보려 합니다. 먼저 https://www.mongodb.com/cloud/atlas1 MongoDB Atlas 사이트에 먼저 접속하겠습니다.

     

    스크린샷 2021-05-17 오전 10 47 05

    MongoDB Atlas를 사용하기 위해서는 회원가입을 먼저 해야 합니다.

     

     

    스크린샷 2021-05-17 오전 10 48 43

    위에 자기의 정보에 맞게 입력 후에 회원가입을 하겠습니다.

     

     

    스크린샷 2021-05-17 오전 10 51 00

    저는 자바를 사용할 것이기 때문에 Java를 선택하고 다음을 누르겠습니다.

     

     

    스크린샷 2021-05-17 오전 10 51 43스크린샷 2021-05-17 오전 10 55 01

    무료 버전을 사용할 것이기 때문에 FREE를 선택하고 나머지는 기본 설정대로 두고 만들겠습니다.

     

     

    스크린샷 2021-05-17 오전 11 00 11

    그리고 1~3분 정도 기다리면 클러스터가 하나 생성이 됩니다. 생성이 되었다면 Connect를 눌러서 DB User 계정을 생성하겠습니다.

     

     

    스크린샷 2021-05-17 오전 11 08 45

    그리고 위에서 유저 계정을 하나 만들겠습니다. 이것은 디비에 접속할 때 중요한 정보이기 때문에 본인이 잘 기억할 수 있고 안전하게 정해서 만드는 것을 추천드립니다.

     

    스크린샷 2021-05-17 오전 11 23 22

     

    스크린샷 2021-05-17 오전 11 24 02

     

    스크린샷 2021-05-17 오전 11 26 23

     

     

    그리고 Java를 사용할 것이기 때문에 자바를 선택하고 복사 버튼을 누르겠습니다.(application.yml 에서 사용할 예정)

    mongodb+srv://<UserName>:<password>@<클러스터이름>.ergif.mongodb.net/<dbName>?retryWrites=true&w=majority

     

     

    IP 등록하기

    스크린샷 2021-05-17 오전 11 28 10

     

    MongoDB Atlas는 네트워크 설정에 등록되어 있는 IP만 접근할 수 있습니다. 그래서 위와 같이 IP 주소를 등록하는 과정이 필요합니다.

     

     

    스크린샷 2021-05-17 오후 12 01 07

    위의 보이는 것처럼 클릭을 하면 본인이 사용하고 있는 IP가 자동으로 뜰 것입니다. ADD IP Address를 누르겠습니다.

     

     

     

    데이터베이스 생성

    스크린샷 2021-05-23 오전 2 20 41스크린샷 2021-05-23 오전 2 22 10

     

    스크린샷 2021-05-23 오전 2 23 05

     

    본인이 사용할 데이터베이스, 컬렉션 이름을 정하고 생성을 누르겠습니다.

     

     

    Spring Boot 간단한 예제

    스크린샷 2021-05-23 오전 2 56 07

    현재 제가 만든 프로젝트의 구조는 위와 같습니다. 먼저 MongoDB 의존성을 추가하겠습니다.

     

     

    build.gradle

    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'

    그리고 application.yml에 DB 설정을 하겠습니다.

     

     

    application.yml

    spring:
      data:
        mongodb:
          uri: mongodb+srv://<유저이름>:<비밀번호>@<클러스터이름>.ergif.mongodb.net/<데이터베이스이름>?retryWrites=true&w=majority

    uri에 위에서 만든 유저이름, 비밀번호, 클러스터이름, 데이터베이스이름을 자신의 정보에 맞게 넣어주면 됩니다.

     

     

    Document

    @AllArgsConstructor
    @Getter
    @Document("alarm_log")
    public class AlarmLog {
        @Id
        private Long id;
        private String title;
        private String message;
    }

    그리고 위에서 만든 컬렉션과 해당 클래스가 매칭되도록 간단하게 만들었습니다. 이것을 가지고 MongoDB Atlas에 INSERT를 할 것입니다.

     

     

    Service

    @RequiredArgsConstructor
    @Service
    public class UserService {
    
        private final MongoTemplate mongoTemplate;
    
        public void mongoInsert() {
            AlarmLog alarmLog = new AlarmLog(1L, "제목", "메세지");
            mongoTemplate.insert(alarmLog);
        }
    }

    그리고 MongoTemplate를 사용해서 AlarmLog 클래스를 INSERT 하는 아주 간단한 코드를 작성했습니다. 실제로 위의 코드를 실행하면 아래와 같이 잘 INSERT 되는 것도 확인할 수 있습니다.

     

     

    스크린샷 2021-05-23 오전 2 30 50

     

    자세한 코드가 궁금하다면 Github 에서 확인할 수 있습니다.

     

     

    에러 정리

    스크린샷 2021-05-23 오전 2 26 43스크린샷 2021-05-23 오전 2 27 14

     

    접속하다가 위와 같은 에러를 만난다면 atlas에서 IP 주소를 등록하지 않아서 그렇습니다.

     

     

    스크린샷 2021-05-23 오전 2 33 20

     

    위와 같이 네트워크 설정에서 IP 등록이 되어 있어야 합니다.

    반응형

    댓글

Designed by Tistory.