이번 글에서는 분산 시스템 환경에서 데이터 전달에 대한 방법이나 문제 그리고 다음 글에서는 프로젝트에 어떻게 적용 했는지에 대해 적어보려 합니다.분산 시스템이란?목표를 달성하기 위해 여러 개의 컴퓨터 리소스를 사용하는 시스템시스템은 두 개 이상의 컴포넌트로 구성되어 있다.엔터프라이즈 애플리케이션마이크로 서비스 아키텍처 애플리케이션모놀리식 아키텍처 애플리케이션 + 검색엔진네트워크를 사용하여 컴포넌트 간의 기능을 통합분산 시스템은 네트워크를 사용하여 데이터를 전달하는 것이 특징이다.네트워크를 통해 데이터를 전달하는 방법네트워크를 통해 데이터를 전달하는 방법은 크게 아래 2가지 방식이 존재한다.Remote API(rest-api, GRPC 등)MessageQueueRemote API를 사용한 데이터 전달서버-..
이번 글에서는 SockJS를 사용한 웹소켓 연결 시 발생했던 CORS 이슈에 대해 글을 작성해보려 합니다.발생 이슈SockJS를 사용한 웹소켓 연결 시 CORS와 403 오류가 발생했습니다.Access to XMLHttpRequest at 'https://fittrip.site/stomp/ws-stomp/info?t=1717573508675' from origin 'http://localhost:3000/' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.useWebSocketStore.js:10 GET https://fittrip.site/stomp/ws-..
이번 글에서는 FitTrip 프로젝트에 사용한 WebSocket과 STOMP에 대해서 작성하고자 합니다.websocket과 stomp에 대해 더 자세한 내용을 알고 싶으면 아래 글을 참고 바랍니다.https://an-jjin.tistory.com/category/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/WebSocketWebSocket 선택 이유1️⃣ HTTP Polling HTTP Polling 방식은 WebSocket과 다르게 Connection을 맺고 있지 않아도 돼서, 서버 리소스를 상당히 절약할 수 있었고, API 서버 개발만으로 간단하게 기능 구현이 가능하다는 점에서 고려하게 되었습니다. 그러나 일정 주기로 메시지를 클라이언트에서 가져가는 방식이기 때문에 다른 사용자가..
서론Spring Boot에서 MongoDB를 사용할 때 @GeneratedValue을 사용할 수 없어 AUTO_INCREMENT를 사용할 수 없습니다. 따라서 JPA와 SQL DB를 사용할 때와 동일한 효과를 낼 수 있는 방법이 필요합니다.이러한 문제의 해결책은 다음과 같습니다.다른 컬렉션(테이블)에서 생성된 시퀀스를 저장할 컬렉션(테이블)을 만듭니다.그리고 새로운 레코드를 생성할 때, 이 컬렉션을 사용하여 다음 값을 가져오면 됩니다. 코드 예시FitTrip 프로젝트에서 적용한 코드를 예시로 들어 설명해 보겠습니다.Collections우선 위에서 얘기한 것과 같이 다른 컬렉션을 위한 auto-incremented sequence를 저장할 컬렉션을 만들 것입니다.이 컬렉션의 이름을 auto_sequence..