Spring + RabbitMQ를 통한 1:1 채팅방 구현 - 인증 적용 (4)
·
Project/RabbitMQ(STOMP)를 적용한 1:1 채팅
GitHub - lsh2613/spring-rabbitmq: Spring + RabbitMQ를 활용한 1:1 채팅방 구현Spring + RabbitMQ를 활용한 1:1 채팅방 구현. Contribute to lsh2613/spring-rabbitmq development by creating an account on GitHub.github.com 1. 인증 방법이 프로젝트에서는 JWT + Session을 적용하였다.정확히 인증은 JWT를 활용한다 2. JWT는 Session 대신 사용하는 건데 왜 굳이 둘 다 사용할까?먼저 JWT의 인증 방식에 대해 알아 보자프로젝트마다 약간 다르겠지만 본인이 구현하는 방식은 아래와 같다HTTP 요청 -> JwtAuthenticationFilter -> header..
Spring + RabbitMQ를 통한 1:1 채팅방 구현 - 읽음/안읽음 적용 (3)
·
Project/RabbitMQ(STOMP)를 적용한 1:1 채팅
GitHub - lsh2613/spring-rabbitmq: Spring + RabbitMQ를 활용한 1:1 채팅방 구현Spring + RabbitMQ를 활용한 1:1 채팅방 구현. Contribute to lsh2613/spring-rabbitmq development by creating an account on GitHub.github.com 1. 읽음/안 읽음개발자마다 부르는 말이 다른 것 같다. 하지만 둘 다 구현하고자 하는 바는 메시지에 대해 읽었는지, 안 읽었는지를 알 수 있게 해주는 지표를 구현하고자 하는 것이다. 크게 다음과 같은 기능을 의미한다1. 나의 채팅방에서 읽지 않은 메시지의 개수 표시2. 채팅방 내에서 메시지가 다른 참가자들에 의해 얼마나 읽혔는지(혹은 안 읽혔는지)를 표시 2..
Spring + RabbitMQ를 통한 1:1 채팅방 구현 - 채팅내역을 MongoDB로 (2)
·
Project/RabbitMQ(STOMP)를 적용한 1:1 채팅
GitHub - lsh2613/spring-rabbitmq: Spring + RabbitMQ를 활용한 1:1 채팅방 구현Spring + RabbitMQ를 활용한 1:1 채팅방 구현. Contribute to lsh2613/spring-rabbitmq development by creating an account on GitHub.github.com 1. 채팅 내역을 MongoDB에 저장하는 이유1. MongoDB는 NoSQL의 한 종류로 RDB보다 더 빠른 읽기/쓰기 성능을 가진다.2. 사용자가 많아질수록 채팅 데이터는 훨씬 많아지기 때문에 scale-out을 고려해야 하는데, 대부분의 NoSQL을 클러스터링을 지원하여 보다 쉬운 scale-out을 적용할 수 있다.3. 채팅은 정형화되어 있기 보다는 언..
Spring + RabbitMQ를 통한 1:1 채팅방 구현 (1)
·
Project/RabbitMQ(STOMP)를 적용한 1:1 채팅
GitHub - lsh2613/spring-rabbitmq: Spring + RabbitMQ를 활용한 1:1 채팅방 구현Spring + RabbitMQ를 활용한 1:1 채팅방 구현. Contribute to lsh2613/spring-rabbitmq development by creating an account on GitHub.github.com  1. RabbitMQ 선택 이유우선 채팅방을 구현하기 위해 실시간으로 데이터 통신이 이루어져야 하기 때문에 HTTP가 아닌 소켓을 활용해야 한다.STOMP라는 소켓을 활용한 메시징 프로토콜을 사용하면 채팅을 쉽게 구현할 수 있다.STOMPSTOMP(Simple Text Oriented Messaging Protocol)는 이름 그대로 간단한 텍스트 기반의 메..