Redis 소개Redis는 Remote Dictionary Server의 약자로, 고성능의 key-value 저장소이다. 오픈 소스로 개발되었으며, 네트워크를 통해 접근할 수 있는 인메모리 데이터 구조 저장소로, 다양한 데이터 구조를 지원한다. 예를 들어 문자열(String), 해시(Hash), 리스트(List), 집합(Set), 정렬된 집합(Sorted Set) 등의 데이터 타입을 지원하여, 이를 활용해 매우 빠른 읽기와 쓰기 속도를 제공한다.Redis의 특징빠른 성능: 데이터를 메모리에 저장하므로, 디스크 기반의 데이터베이스에 비해 훨씬 빠른 읽기/쓰기 속도를 제공한다.지속성 옵션: Redis는 데이터를 디스크에 저장할 수 있는 옵션을 제공한다.메모리의 내용이 시스템 장애로 인해 손실되더라도 데이터를..
프로젝트 구성루트 폴더(miri-miri-msa)core-moduleuser-service-modulegoods-service-moduleorder-service-module 그리고 루트 폴더의 settings.gradle 파일과 build.gradle 파일을 다음과 같이 설정한다.setggins.gradle (root 프로젝트)rootProject.name = 'miri-miri-msa'include 'core-module'include 'user-service-module'include 'goods-service-module'include 'order-service-module' build.gradle (root 프로젝트)plugins { id 'java'..
채팅 기능 기본 설정 설명에 앞서, 시스템에서 채팅 기능이 어떻게 동작하는지 로직을 우선 설명하도록 한다. 웹소켓 생명주기 관리🥸우리 시스템의 대략적인 웹소켓 연결 과정은 다음과 같다. 웹소켓 연결 초기화사용자가 로그인을 완료하면, "ISLOGIN" 쿠키 값을 확인하여 로그인 상태(True)일 경우에 한 번만 웹소켓 연결을 요청한다.웹소켓 연결 유지 관리웹소켓 연결이 성공적으로 이루어지면, 서버는 사용자의 ID를 웹소켓 세션에 저장한다.리액트 클라이언트는 웹소켓을 통한 모든 통신 과정을 진행하기 전에 웹소켓 연결 상태를 확인한다. 연결이 끊어진 경우, 자동 재연결 시도와 함께 필요한 토픽 구독을 재요청한다.토픽 구독 및 메시지 처리사용자는 서버로부터 자신의 ID를 받고, 이를 사용하여 알림 및 채팅방 ..