몽고DB(MongoDB)는 자체적으로 소멸 주기 혹은 생명주기라고 하는 TTL(Time to Live) 인덱스 기능이 내장되어 있습니다. 예를 들어 로그 데이터와 같이 일반적인 데이터와 달리 중요도가 적은 경우 Info, Warning, Error 처럼 중요도에 따라 데이터 자동 삭제 시기를 설정할 수 있고, 혹은 특정 주기마다 무조건 삭제를 할 수 있는 기능을 제공합니다. TTL의 구현방법 TTL은 날짜값에 Index를 걸고, expireAfter 속성을 추가적으로 걸면 됩니다. 데이터의 날짜값이 각각 아래와 같다고 가정을 해보겠습니다. A-> 2022년 9월 5일 오후 5시 40분 B-> 2022년 9월 6일 오전 10시 10분 C-> 2022년 9월 5일 오후 7시 20분 그리고 현재 시간이 202..
다중채팅 솔루션은 우리가 흔히 아는 채팅방을 만들고 여러명이 대화를 하는 구조를 말한다. 이러한 기술은 사실 크게 어려운 방법이 아니다. 인터넷을 조금만 뒤져봐도 HTML 5.0 기술의 웹소켓(Web Socket)을 이용하여 구현한 사례는 얼마든지 있으며, 필자 역시 개인적으로 웹소켓을 구현해서 다중채팅을 만든적이 있다. 그러나 이 채팅 시스템이 상담사와 사용자가 대화를 한다고 가정을 해보자, 그러면 한가지 문제가 되는 것이 웹소켓의 세션 처리 방식이다. 웹소켓은 서로간에 대화를 쉽게 하게 만들지만 상담 시스템은 상담사 한명당 여러명의 사용자와 대화를 해야 한다. 여기에 한가지를 더 포함해서 챗봇과 공유하는 시스템은 어떻게 만들면 될 것인가? 즉 카카오톡처럼 한명당 여러개의 채팅방이 존재할 수 있고, 방..
스프링(Spring) 프레임워크로 몽고DB에 데이터를 삽입하는 방법이야 많겠지만, 이번 방식은 JDBC 방식과 유사한 방식(java-driver)으로 직접 제어를 하여 데이터를 가져오는 것을 보여준 후, 추후 MongoTemplate 방식을 활용하여 Connection을 제어를 하지 않는 방식을 포스팅하고자 한다. MongoDB는 모든 데이터가 JSON구조로 저장이 되기 때문에 기존 DB에서처럼 테이블을 미리 설계하고 데이터를 넣는 번거로운 작업이 필요없이 DB가 만들어지고, 콜렉션만 만들어졌다면 자유롭게 데이터를 넣을 수 있다. 그렇기 때문에 몽고DB의 장점은 자유롭게 데이터를 넣을 수 있어서 개발 공수가 짧다라는 큰 장점을 가지고 있다. 보통 DBA 혹은 DA롤을 가진 사람이 깊게 고민을 하여 데이터..
일반적으로 RDB 같은 경우, 다양한 접속 및 관리툴들을 지원해준다 대표적으로 Quest 사의 토드(Toad)와 같은 프로그램이 있는데 이를 통해 현재 DB에 어떤 데이터가 들어가 있는지 확인 할 수 있으며 데이터를 쉽게 핸들링 할 수도 있다. 몽고DB도 이와같은 여러가지 관리툴이 있는데 대표적으로 Robomongo라는 관리툴이 존재한다. 대표적인 DB 관리 툴인 토드 https://www.quest.com/products/toad-for-oracle/ 이번 포스팅 주제인 Robomongo 사이트에 들어가면, Studio 3T라는 프로그램과 Robo 3T라는 프로그램이 있는데 Robo 3T를 선택한다. 설치 단계 https://robomongo.org/download 자신에 맞는 OS와 프로그램을 입맛에..
몽고DB(MongoDB)란 하둡(Hadoop)의 전성기를 열어주며 빅데이터 시대를 알려주기도 했으며, 현재는 Node.js 등과 함께 가볍게 사용하는 프로젝트에서 많이 사용하고 있는 대표적인 NoSQL DB이다. 설명에 대한 부분은 다른 포스팅에서 하기로 하고, 이번 포스팅은 설치에 관련된 것만 적어보기로 한다. https://www.mongodb.com/download-center 몽고DB의 다운로드 페이지에 들어가면 위와 같은 화면으로 Cloud, Server, Tools라는 메뉴가 나오는데 Server를 선택한다. Server를 선택 한 후, MongoDB Community Server를 클릭 후, 원하는 Version과 본인에 맞는 OS그리고 Package를 선택한다. 필자는 이런류의 설치는 기본..