목록프로젝트/Extra (6)
MDP
스프링부트를 활용한 회원가입, 로그인 기능을 구현하기 위해서 Redis Refresh Token을 사용하려고 한다. 회의를 하면서 Redist Refresh Token을 사용하는 이유와 Black List 활용 방법과 사용하는 이유도 함께 조사해 보려고 한다. Redis- 메모리 기반의 데이터 저장소- 키 - 밸류(Value) 데이터 구조에 기반한 다양한 형태의 자료 구조를 제공하며, 데이터들을 저장할 수 있는 저장소- 최신 버전의 레디스는 PUB/SUB 형태의 기능을 제공하여 메시지를 전달할 수 있다.- 주로 보조데이터 저장소로 사용한다.- 레디스 클러스터 기능을 제공하고 있어 저장 공간을 확장할 수 있다.- 저장된 데이터를 영구적으로 디스크에 저장할 수 있는 백업 기능을 제공하므로 애플리케이션의 주..
알림 기능을 구현하기 위해 다양한 실시간 통신 방법을 고려한 결과, SSE 방식을 활용하는 것이 프로젝트에 적합하다고 판단하였다.그래서 이후 알림이 언제 발생했는지를 확인하기 위해 DB에 저장하려고 하는데 어떤 DB를 사용하는 게 효율적인지에 대해 조사해보려고 한다. RDBMS vs NoSQL RDBMS장점ACID 속성 트랜잭션의 일관성과 신뢰성을 보장한다.알림이 정확하게 기록되고 전송되도록 보장할 수 있다.SQL 쿼리 복잡한 쿼리와 조인을 쉽게 수행할 수 있다. 특정 사용자의 알림을 조회하거나 특정 시간 범위 내의 알림을 검색하는 등의 작업에 용이단점확정성수평 확장이 어렵고, 대량의 데이터를 처리할 때 성능 저하가 발생할 수 있다.많은 사용자에게 실시간으로 알림을 전송해야하는 경우 문제가 발생할 수 ..
이번 프로젝트에서 채팅 기능, 의상 컨펌 게시판 기능, 댓글, 좋아요 등 다양한 기능에서 알림 기능을 사용해야 되기 때문에 스프링부트를 활용하여 알림 기능을 구현하는 방법에 대해 조사하려고 한다. 실시간 통신 방법Polling일정 주기를 가지고 서버의 API를 호출하는 방법HTTP 통신을 기반으로 하기 때문에 호환성이 좋다.예를 들어, 5초마다 알림 목록을 호출하면, 업데이트 내역이 5초마다 갱신되어 변경 사항을 적용할 수 있음.단점업데이트 주기가 길면 실시간으로 데이터가 갱신되지 않고, 짧으면 갱신 사항이 없음에도 서버에 요청이 들어와 불필요한 서버 부하가 발생할 수 있음. Long-PollingPolling과 비슷하지만, 업데이트 발생 시에만 응답을 보내는 방식.서버로 요청이 들어올 경우, 일정 시간..
오늘은 이번에 채팅 서비스 사용시 채팅 내용을 저장할 데이터베이스로 MongoDB를 활용하려고 하는데 NoSQL의 내용과 사용방법에 대해서 간단하게 정해보려고 한다. MongoDB를 사용하려고 하는 이유- 비정규화 - 채팅을 통해서 주고 받는 내용들은 중복이 가능한 데이터들이다.특정한 데이터 모델에 맞추기 위해서 같은 데이터를 도큐먼트나 테이블에 복제하여 중복하는 것을 허용한다. - 유연한 스키마 설계 가능 -JSON과 유사한 BSON 형식의 문서를 저장하기 때문에 채팅 메시지를 다양한 형식으로 저장할 수 있다. (ex. 메시지 본문, 발신자 정보, 타임스탬프, 첨부 파일 등 다양한 데이터를 포함할 수 있음)채팅 메시지 구조가 변경되더라도 쉽게 확장하고 수정할 수 있다. 새로운 기능 추가나 데이터 구조..
프로젝트 기능 중 QR 코드를 인식하여 출근, 퇴근을 관리하는 기능을 넣어야 하는 요구사항이 생겨서 어떤 방법이 있는지 고민하던 중 20살때 쿠팡 아르바이트를 하면서 사용했던 방법이 떠올라서 관련 내용을 정리해보려고 한다. 1. 사용자 QR 생성- 사용자의 이름, 생년월일 데이터를 담고 있는 QR 코드를 생성한다. 2. 관리자는 생성 된 QR을 스캔하는 기기를 준비한다.- 스캔을 하기 이전에 관리자는 출근 시간을 미리 기입하고 이름, 생년월일 구역은 QR 스캔을 통해 입력받을 수 있게 한다. 3. 스캔이 완료되면 출근 시간, 퇴근 시간이 저장된다.- 스캔이 완료되면 QR을 통해 전달받은 이름, 생년월일 데이터가 기입되고 확인 버튼을 통해 데이터를 저장한다.- 확인 버튼을 사용하는 이유는 QR 스캔이 완료..
이번에 프로젝트를 진행하면서 실시간 채팅 구현을 진행해야 하는데 현재 목표로 잡고 있는것은 카카오톡과 같은 채팅 프로그램을 개발하는것이 목표이다. 그래서 오늘부터 이와 관련된 글을 작성해 보려고 한다. WebSocket vs STOMPWebSocket- WebSocket은 클라이언트와 서버 간의 전이중 통신을 지원하는 프로토콜이다. HTTP보다 낮은 레벨에서 동작하고 있고 주로 실시간 통신이 필요한 애플리케이션에서 사용되고 있다. - 장점 - 메시지 라우팅, 구독 관리, ACK/NACK, 트랜잭션 등의 고급 기능을 내장하고 있음텍스트 기반 프로토콜로, 명령, 헤더, 바디로 구성된 프레임을 사용하여 메시지를 전달RabbitMQ, ActiveMQ 등과 같은 메시지 브로커와 쉽게 연동할 수 있음- 단점 -추..