현재 진행중인 프로젝트에는 채팅이 있습니다.
이러한 채팅 기능은 많이들 NoSQL을 이용하여 구현하는데, 그 이유는 다음과 같습니다.
1️⃣ 데이터의 수정이 없습니다. 현재 진행중인 프로젝트 특성 상 채팅내역 삭제는 고려하지 않았습니다.
2️⃣ 많은 데이터가 실시간으로 생성됩니다. 하지만, 채팅방에 대해 채팅 메세지가 존재할 뿐, 그 외의 관계는 따로 없습니다.
(즉, Join이 없습니다.)
전 채팅 기능에 대해 다음과 같은 특성을 추출해보았고, 기존의 MySQL 에서 MongoDB로 변경한 후 데이터를 가져오는 데에서 테스트를 해보고자 합니다.
MongoDB는 무료이며, 또한 이전에 노마드코더에서 node.js 강의를 들었을 때 한번 다루어보았기 때문에 선택하게 되었습니다.
그러기 위해 우선 현재 프로젝트에 MongoDB를 연결해보겠습니다.
MongoDB 설치하기
저는 다음 사이트를 참고하여 MongoDB를 설치해주었습니다.
저는 다음과 같은 버전으로 다운로드했습니다.
자세한 셋업 이미지를 보시려면 더보기를 눌러주세요









설치를 완료하면 다음과 같은 UI가 보입니다.
그리고, Connection을 연결해줍니다.
연결이 되면, 웹페이지에 다음과 같이 localhost:27017을 입력했을 때, 다음과 같은 화면이 뜹니다.
Spring 프로젝트에 MongoDB 연결하기
mongoDB를 실행했으니 이제 SpringBoot에 mongodb를 올려보도록 하겠습니다.
1️⃣ build.gradle에 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
2️⃣ application.yml 정보 추가
spring:
data:
mongodb:
host: localhost
port: 27017
database: restagram_chat
이렇게까지 하면 1차적으로 연결은 끝났습니다.
다음 포스팅에서는 실제로 채팅 메세지에 대한 내용을 mongodb에 저장해보도록 하겠습니다.
'프로젝트' 카테고리의 다른 글
[Redis] Redis에 RefreshToken 저장하기 - 설치, Spring boot 적용 (1) | 2024.09.22 |
---|---|
[트러블슈팅] 객체 삭제 시 org.hibernate.StaleObjectStateException 에러 발생 (0) | 2024.06.24 |
[QueryDSL] 피드의 각 첫번째 이미지 가져오는 쿼리 개선하기 (0) | 2024.06.13 |
[Spring/QueryDSL] Fetch Join이랑 limit은 함께 못쓴다고요 ? (1) | 2024.06.13 |
[Java] Record란? & 프로젝트에 Record 적용해보기 (0) | 2024.06.12 |