티스토리 뷰

카테고리 없음

MongoDB Atlas 개념/세팅

구스피크 2024. 5. 4. 14:38
728x90

MongoDb와 NoSQL

가능한 쉽게 MongoDB Atlas에 대한 개념을 알아보고 가이드대로 세팅해본다.

 

우선, MongoDB는 NoSQL DBMS다.
학교든, 학원이든, 어딘가에서 개발에 대해 공부를 했다면 MySQL이나 Oracle과 같은 RDB에 대해 알고 있을 것이다.

그렇다면 NoSQL은 뭘까.
NoSQL은 Not Only SQL의 약자로 RDB와의 가장 큰 차이는 컬럼을 고정하느냐이다.
RDB에서 테이블을 생성할 때에 아래와 같은 Create 문을 사용하여 table을 만드는 것을 봤을 것이다.

CREATE TABLE testTable(                               
  id INT(11) NOT NULL AUTO_INCREMENT,                 
  name VARCHAR(20) NOT NULL,                          
  ouccupation VARCHAR(20) NULL,                       
  height SMALLINT,                                    
  profile TEXT NULL,                                  
  date  DATETIME,                                     
  CONSTRAINT testTable_PK PRIMARY KEY(id)             
);



RDB에서 Table 역할을 NoSQL에서는 Collection이 한다.
자세히 파고들면 두 개념은 명확히 다르지만 비슷한 역할을 한다정도로 생각하자

db.createCollection("test")



RDB는 Table 생성시 컬럼명과 타입, Null 허용여부, 기본값, 오토인덱싱, 포링키와 컬럼의 특징을 고정하는 반면, 
NoSQL은 그저 Collection의 이름을 정하고 생성하면 된다.( option으로 사이즈, 오토인덱싱 여부 등 설정할 수 있다. )
Collection에는 Document라고 부르는 Json 형태의 데이터가 들어간다. 
Document의 데이터는 Json 처럼 타입이 강제되지 않는다.
이를 보고 유연한 스키마라고 하고, 확장성있는 디자인이라고 부르기도 한다.
MongoDB는 NoSQL 진영에서 가장 대중적인 선택지이다.

 

MongoDB Atlas 

MongoDB Atlas는 MongoDB를 아주 쉽게 사용하는 방법이라고 볼 수 있다.
MongoDB는 오픈소스이기에 AWS, GCP, Azure 같은 Cloud 업체들은 MongoDB를 사용한 제품을 제공한다.
AWS에서 EC2나 Docker 컨테이너를 사용해 인프라를 직접 구성할 수 있는데, 프로덕션으로 관리하기에 소규모 개발조직에 적합하지 않다. 차라리  비용을 지불하면 보안이나 자동확장등을 지원해주는 Amazon DocumentDB나 Firebase 와 같은 다른 NoSQL 제품을 선택할 수 있다. 

그럼에도 내가 Volution 프로젝트를 진행하면서 MongoDB Atlas를 선택한 이유는 가장 쉽고, 테스트 단계에선 충분히 free tier로 검증할 수 있다고 판단했기 때문이다. 또한 나같은 1인개발이나 소규모 개발조직은 DBA를 두기 어렵다. 자동관리형 제품을 선택하는 것이 내가 시간을 들여서 만드는 것보다 차라리 낫다.


어떻게 쉬운가.
24년 1월 3일 기준 MongoDB Atlas에 가입하고 설치하는 과정을 보자

 

- https://www.mongodb.com/ko-kr/cloud/atlas/lp/try4 접속, [무료로 시작하세요] 클릭

- 가입 혹은 구글 로그인, 후에 몇가지 survey 참여

- Atlas OverView 확인, Create 클릭

 

 

- 일단 Free로 제공되면서 Seoul을 제공하는 Cloud 중에 선택하자. Azure는 없다. 거리에 따른 속도차이가 분명 있다. Cluster 명을 정해주고 Create 버튼을 클릭한다.

 

 

- 읽고 쓸 권한이 있는 계정 정보를 생성한다.

 

- 접속가능한 IP를 설정하자. 지금 접속한 PC의 IP가 기본으로 들어가 있다. 이후에 함께 개발하는 개발자 혹은 Volution 서버의 IP를 여기에 추가하면 된다. IP는 반드시 외부IP를 확인해서 넣는다. 

 

 

- 이 화면을 확인하고 Add Data를 클릭한다.

 

 

- Create Database on Atlas

 

 

- Database명과 Collection명(RDB에서 Table역할)을 넣고 Create. Capped collection과 Time series collection 은 해당 정보에 대해 구글링하고 본인이 필요하다고 판단되면 적용하자. 일단 Time series collection은 update와 delete가 어렵다. collection의 성질에 맞춰서 설정한다.

 

 

- 기본 셋팅 완료. Connect를 클릭하여 접속 주소까지 확인하면 끝이다.

 

 

Volution의 초기 운영은 이 Atlas를 통해 DB를 관리할 예정이며, 이후에 접속량이 많아지면 비용을 지불하거나 다른 Cloud 제품을 고려해볼 것이다. 그런데... 애초에 서버에서 Mongoose로 개발할 예정이라 Firebase나 DocumentDB가 고려사항일지는 모르겠다.

 

728x90