BEER&DEV

NEXT.js 14 로 블로그 운영하기 (3) <Cloud Database - MongoDB 등록> 본문

생활/블로그

NEXT.js 14 로 블로그 운영하기 (3) <Cloud Database - MongoDB 등록>

사당맥주 2024. 1. 31. 15:02
혼자서만 개발을 할 것인가?

개발기획에 앞서 지금은 혼자서 블로그 개발에 참여하고 있지만, 추후 동료들 또는 친구들과 함께 작업할 수 도 있다는 생각을 먼저 했다. 보통 개발단계에서는 로컬에 Database를 두고 진행하는 게 편하지만, 함께 작업을 한다면? 편하다기보다는 개발하면서 기획이 변경될 수도 데이터의 형태가 바뀌는 등 많은 변수가 있을 것으로 보이므로 함께 사용할 Database를 고민해 보던 중 Cloud 서비스를 이용하면 모든 문제를 해결할 수 있다고 판단했다. 하나의 Database로 테스트 데이터 파편화 및 샘플링 작업, 무엇보다 작업하는 로컬 컴퓨터는 부하도 없다. 그래서 무료로 제공하는  Database Cloud 서비스를 찾기로 했다.

DB의 종류가 많은데 무엇을 선택해야 할까?
  • 계층형 데이터베이스(HDBMS)
  • 네트워크형 데이터베이스(NDBMS)
  • 관계형 데이터베이스(RDBMS)
  • 객체지향 데이터베이스(ODBMS)
  • NoSQL(Not Only SQL)
  • 시계열 데이터베이스(TSDB, Time Series Database)

위와 같이 대충 검색만 해봐도 데이터베이스의 종류가 다양하다. 물론 블로그 서비스의 도메인을 충분히 이해한 상태이며, 데이터 모델링에 자신이 있다면, RDBMS 이자 오픈소스인 MariaDB를 사용하려고 했었지만 아쉽게도 데이터 모델링에 대한 지식이 많이 없고 설계를 하더라도 견고하게 할 수 없을 것으로 보였다. 하물며 위에서 언급했듯 개발을 진행하면서 기획의 변경도 잦을 것으로 보이기 때문에 섣불리 스키마를 잡고 관계를 짓기에도 재작업의 부담이 크다..

그래서, 서비스 중점으로 개발하고 DB는 단순히 데이터 저장용도이자 마치 Mockup 데이터처럼 사용하고 싶었다. 이후 많은 시행착오를 거쳐 견고한 모델이 정해진다면 그때 다른 Database로 변경하면 될 것 같다. 그렇기에 우선 NoSQL DB 중 MongoDB 를 선택하게 되었다. 이유는 단순하게 "이미 사용해 봤던", "무료 Cloud Service" 이 두 가지로 정하게 되었다. 아쉬운 점은 가입도 쉽고 DB 생성도 편하지만 저장용량을 512MB 제공한다는 점이 있지만, 개발하면서 테스트 용도로는 매우 훌륭하다고 생각한다.

MongoDB Cloud Service에 가입해 보자
 

MongoDB Cloud

MongoDB Cloud is a unified data platform for modern applications and includes a global cloud database, search, data lake, mobile, and application services.

www.mongodb.com

위 링크로 접근해서 가입을 하면 되고, 현재 크롬 브라우저를 주로 사용하고 구글 계정이 있다면 구글 계정으로 등록을 하면 매번 로그인할 필요 없이 접근이 가능하다.

위 페이지에 접근하게 되면(2024-01-31 기준) Try Free 버튼을 눌러주면 로그인페이지로 이동하게 되면 "Sign up with Google" 버튼을 클릭하여, 구글 계정을 선택하여 가입하자.

가입하게 되면 서비스 약관 동의를 체크해 주시고 "Submit" 버튼을 눌러 다음 페이지로 이동한다.( 등록 완료까지 15초 정도 소요..)

다음은 사용 목적과 개발을 진행할 서비스의 종류 정보를 수집하는 과정인데, 자신에게 맞는 상황을 선택 후 "Finish" 버튼을 눌러준다.

위 화면은 사용할 Plan을 선택하는 건데, 우리는 무료로 사용할 예정이므로 "M0" 서비스에 "AWS" Provider를 선택해 주고 맨 아래 "Create"버튼을 눌러줍니다.

다음은 DB에 접근할 계정을 생성하는 메뉴이다. 아마 바로 Security Quickstart 메뉴로 바로 이동할 텐데, 빨간 네모 박스 순서대로 진행해주면 된다. "Username and Password" 방식을 선택(어차피 테스트용도이니 편한 게 좋다)해주고, 자신이 사용할 사용자명, 비밀번호를 입력하고 "Create User"버튼을 눌러준다.

다음으로 그 아래에 보면 어떤 환경에서 접근할 것인지 묻는 메뉴인데, 우리는 로컬 컴퓨터에서 개발을 진행한다는 가정하에 "My Local Environment"을 선택해 준다. 그 아래  "Add My Current IP Addres" 버튼을 눌러 지금 연결되어 있는 IP 주소에서 DB에 접근할 수 있도록 허용 IP목록에 등록해준다.(매번 다른 장소에서 작업하거나, 공유기를 사용하는 경우 매번 IP가 달라지므로 개발하기 전에 등록해주어야 한다.). 위와 같이 화면에 사용자와 IP Access List에 정보들이 추가되었다면 "Finish and Create" 버튼이 활성화될 것이다. 눌러준다.

누르게 되면 지금 굳이 할 필요 없는 팝업들이 뜰 텐데 대충 닫고 다음단계로 진행하면 된다.

모든 준비는 완료되었고, 이제 상태를 확인하고 직접 연결해 보면 된다.

Deployment > Database 메뉴로 접근해 보자. 접근하게 되면 오른쪽에 내가 지정한 클러스터이름과 초록색 배지가 보인다면 정상적으로 서비스 중이라는 의미이다. 

"Connect" 버튼을 눌러 DB에 접근을 해보도록 하자.

다양한 방식의 DB에 접근 가이드가 있는데, 이 중에서 프로그램에서 DB Connection을 맺고 싶다면 "Drivers" 메뉴로 들어가고 MongoDB 클라이언트에서 접근하고 싶다면 "Compass"를 선택하면 된다. 물론 터미널에서 직접 접근("Shell")도 가능하다.

먼저 프로그램에서 접근("Drivers")하는 방법을 보자.

현재의 경우 Nextjs14로 개발하고 있기 때문에 Drivers는 "Node.js"로 선택했다. Select 박스를 눌러서 보면 아주 다양한 언어를 지원하는 것을 알 수 있다. 아주 친절하게 설명하고 있는 팝업의 순서대로 드라이버 설치 명령어로 드라이버를 설치해 주고 "View full code sample" 버튼을 누르게 되면 실제 JS 코드에서 어떻게 DB에 접근하는지 아주 상세하게 샘플코드를 제공해 준다.

이제 DB는 준비가 되었으니 본격적으로 개발을 진행하면 할 수 있게 되었다.

반응형