분류 전체보기

개발을 하다 보면 여러 Redis 명령어를 하나의 흐름으로 묶어 실행해야 하는 경우가 있다.나의 경우, Rate Limit 기능을 Redis로 구현하면서 이런 상황을 마주했다.1. 현재 window 만큼 sorted set 자르기2. sorted set의 크기 가져오기3. 해당 크기가 limit보다 작다면, 현재의 timestamp를 sorted set에 추가하기이 모든 과정은 반드시 원자적(atomic) 으로 보장돼야 한다.만약 2번 → 3번 실행 사이에 다른 요청이 들어오면, 잘못된 limit 체크 결과가 나올 수 있기 때문이다.이를 해결하기 위해, Redis에서는 여러 명령어를 하나의 단위로 실행할 수 있는 방법을 제공한다. 그중 하나가 Lua Script이다.Lua Script란?Redis 공식 ..
암호화의 두 축: 대칭키 vs 비대칭키암호화 시스템은 크게 두 가지 방식으로 나뉜다.대칭키 암호화: 하나의 비밀키로 암호화와 복호화를 모두 수행. 대표적으로 AES. 빠르고 계산량이 적어 대용량 데이터 암호화에 적합.비대칭키 암호화: 공개키와 비공개키라는 두 개의 키를 사용. 대표적으로 RSA가 있으며, 한 키로 암호화한 데이터는 반드시 다른 키로만 복호화 가능. 키 교환, 인증, 서명 등에 사용⚡ 성능 측면에서의 차이항목 대칭키 (AES) 비대칭키 (RSA)속도매우 빠름상대적으로 느림연산량적음많음 (큰 수 연산)자원 사용낮음높음사용 용도메시지/파일 암호화키 전달/서명/인증이러한 성능 차이로 인해 실제 보안 시스템에서는 “하이브리드 암호화”라는 방식이 등장 하이브리드 암호화란?빠르고 효율적인 AES로 메..
Railway란?기존 AWS의 EC2 프리티어를 사용하였는데, 프리티어 기간에 매번 의존해야하고, 인프라도 모두 스스로 구축해야하는 부분이 굉장히 번거롭게 느껴졌다. 그래서 저렴하게 호스팅할 수 있는 서비스를 찾다가 Railway를 발견하였다.Railway는 개발자가 손쉽게 인프라를 구축하고 애플리케이션을 배포할 수 있도록 돕는 PaaS(Platform as a Service) 서비스이다.https://railway.com/ RailwayRailway is an infrastructure platform where you can provision infrastructure, develop with that infrastructure locally, and then deploy to the cloud.ra..
https://zknill.io/posts/patterns-for-building-realtime/?utm_source=tldrwebdev Patterns for building realtime featuresRealtime features make apps feel modern, collaborative, and up-to-date. The features predominantly require sharing changes triggered by one user to other users, as the changes are happening. This typically means your server needs to send data to some set ozknill.io실시간 기능은 앱을 더 현대적..
점이
'분류 전체보기' 카테고리의 글 목록