목록2024/07/22 (4)
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과 비슷하지만, 업데이트 발생 시에만 응답을 보내는 방식.서버로 요청이 들어올 경우, 일정 시간..
오늘은 프로젝트 ERD 설계를 하면서 지속적으로 고민했던 문제인 Table, Record 중 서버의 영향을 가장 많이 끼치는 부분이 어떤것인지에 대해서 조사후 정리해보려고 한다. 우선 DB에게 많은 연산을 시키면 부담이 매우 크다. 그 이유는 DB랑 서버랑 요금을 비교할 때 서버 비용이 훨씬 저렴하다.그래서 서버가 연산을 해서 간단한 쿼리문을 통해 DB에게 요청하는 방식을 사용하고 있다. 테이블 수 정규화로 인한 테이블 수 증가데이터베이스 정규화 과정에서 데이터 중복을 최소화하고 데이터 무결성을 유지하기 위해 테이블이 분할될 때 많은 테이블이 생성될 수 있다. 잘 설계된 정규화는 쿼리 성능과 데이터 무결성을 유지하는데 도움이 된다. 영향 많은 테이블을 가지고 있을 때, 관리 및 유지보수의 복잡성이 증가..