본문 바로가기

분류 전체보기67

Redis란? Remote Dictionary Server Redis; Remote Dictionary Server;1. 소개Redis는 오픈 소스 인메모리 데이터 저장소로, 주로 속도와 성능에 중점을 둔 키-값 저장소이다.데이터의 Scale out을 위해 Consistent Hashing을 활용한 분산 시스템에서 널리 사용되고 있다.특징영속성을 지원하는 In-Memory 데이터 저장소데이터를 disk에 저장할 수 있음 → 서버가 내려가더라도 disk에 저장된 데이터를 읽어서 메모리에 로딩을 함저장방식RDB(Snapshotting): 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨담는 방식AOF(Append On File): redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태읽기 성능 증대를 위한 서버 측 복제를 지원문.. 2024. 7. 8.
[Spring/Java] FCM을 통해 Push 알림 보내기 프로젝트 마지막 즈음에 push 알림 기능을 추가했다. 기획 의도와 잘 맞아서 좋았지만, 개발 기간이 짧아서 다양한 방법들 중에 fcm을 선택했다.  FCM이란? Firebase Cloud Messaging은 Google의 Firebase 플랫폼에서 제공하는 클라우드 메시징 서비스로, 개발자는 이를 통해 간편히 안드로이드, iOS, 웹 애플리케이션에 푸시 알림을 보낼 수 있다. 장점- Firebase 플랫폼과 통합되어 있어 설정과 사용이 간편하다. Firebase 콘솔에서 설정을 쉽게 관리할 수 있다. - 안드로이드, iOS, 웹을 포함한 여러 플랫폼에서 사용 가능하다. - Google의 인프라를 기반으로 하여, 대량의 메시지를 안정적으로 처리할 수 있다. - FCM은 무료로 제공되며, 추가 비용 없이 .. 2024. 7. 8.
[Spring/Java] CORS란? 해결법은? CORS란? Cross-Origin Resource Sharing = 교차 출처 리소스 공유 정책 자세히는 추후 말하겠다. 출처(Origin)란? URL의 Protocol + Host + Port를 의미하는데, 간단히 말해선 웹 페이지나 리소스의 출처를 나타내는 개념이다. 그러면, 아무래도 보안 때문에 같은 출처끼리의 리소스를 공유하는 정책이랑 다른 출처끼리의 리소스를 공유하는 정책이 각각 존재할 것 같다는 생각이 든다. 1. SOP (Same-Origin Policy)동일 출처 정책은 웹 브라우저가 동일한 출처에서만 리소스를 공유하도록 제한하는 보안 정책이다. 기본적으로 같은 출처끼리는 리소스를 공유할 수 있도록 허용된다. 만일, 다른 출처끼리도 제약 없이 공유가 허용된다면, 해커가 개인정보를 가로챌 .. 2024. 7. 7.
[Spring/Java] 동시성 제어 통한 게시물 좋아요 및 댓글 수 관리 (비관적 락, 반정규화, 세마포어) 상황게시물에 좋아요 버튼을 누르면 좋아요 수가 1씩 증가하거나 감소해야하고, 댓글을 작성하거나 삭제하면 댓글 수가 1씩 증가하거나 감소해야 했다. 그런데, 그런 요청이 있을 때마다 좋아요 댓글 수 컬럼 값을 1씩 증가하거나 1씩 감소시키게 된다면, 충돌의 위험이 있었고, 데이터 무결성에 문제가 생길 수 있었다. 그래서 충돌을 방지하여 데이터 무결성을 높이는 락을 사용해야 했다. 하지만, 동시성 처리가 많은 상황에서는 락 경합이 빈번하게 발생하여 락 대기 시간이 길어질 수 있었고, 데이터베이스의 성능이 저하될 수 있었다. 해결방법 [ 1. 별도의 테이블을 사용하여 성능 향상 ]좋아요와 댓글에 대한 테이블을 따로 만들고, 생성이 될 때마다 데이터를 하나씩 추가시키고 삭제할때마다 해당 데이터를 하니씩 삭제했다.. 2024. 7. 7.