블로그 글

박재성 선생님이 개발 블로그에 쓴 글입니다.

[실습] 악의적인 요청을 방지하기 위해, 10초당 API 요청 횟수를 5회로 제한하기 - 2
Redis

[실습] 악의적인 요청을 방지하기 위해, 10초당 API 요청 횟수를 5회로 제한하기 - 2

✅ 실습하기 코드 작성하기 서버 실행시키기 Postman으로 요청 보내보기

[실습] 악의적인 요청을 방지하기 위해, 10초당 API 요청 횟수를 5회로 제한하기 - 1
Redis

[실습] 악의적인 요청을 방지하기 위해, 10초당 API 요청 횟수를 5회로 제한하기 - 1

✅ 문제 상황 클론 받은 프로젝트의 API에는 요청 횟수에 대한 제한(Rate Limit)이 전혀 걸려있지 않다. 이 상태에서는 특정 사용자가 악의적으로 아주 짧은 시간 안에 수십, 수백 번의 요청을 보내면 서버 부하가 급격히 증가할 수 있다. 따라서

Redis

Sorted Set 자료 구조 (ZCARD, ZREMRANGEBYSCORE, EXPIRE)

API 요청 횟수 제한 기능을 구현하기 위해 필요한, Sorted Set 자료 구조의 명령어를 추가로 더 배워보자. ✅ Sorted Set의 데이터 개수 조회 # Sorted Set 생성 및 데이터 삽입 $ ZADD ranking 1 apple $ Z

[실습] 인증 기능을 로컬 세션 스토리지로 구현했을 때 발생하는 문제점 - 2
Redis

[실습] 인증 기능을 로컬 세션 스토리지로 구현했을 때 발생하는 문제점 - 2

이번에는 Spring Boot 서버를 2대 실행시켜서, 이전 강의에서 이론으로 배웠던 로컬 세션 스토리지의 문제점을 눈으로 직접 확인해보자. ✅ 실습 Spring Boot 서버 두 대 띄우기 Postman으로 API 테스트해보기

Redis

Set과 Bitmap의 공통점 / 차이점

✅ Set vs Bitmap [공통점] Set과 Bitmap은 둘 다 중복을 허용하지 않는 자료구조라는 점이 공통점이다. [차이점] Set은 실제 값을 있는 그대로 저장하는 자료구조이다. 문자열, 숫자, UUID 등 다양한 형태의 데이터를 그대로 담을

[실습] 내 위치를 기준으로 반경 1km에 위치한 카페 찾기 - 2
Redis

[실습] 내 위치를 기준으로 반경 1km에 위치한 카페 찾기 - 2

✅ 실습 테스트를 위해 Redis에 생성되어 있는 Key 삭제하기 서버 실행시키기 Postman으로 카페 추가하기 Postman으로 특정 위치를 기준으로 1km 반경에 있는 카페 조회하기

[실습] 하루 동안 서비스에 방문한 사용자 수(DAU) 카운팅하기 - 3
Redis

[실습] 하루 동안 서비스에 방문한 사용자 수(DAU) 카운팅하기 - 3

✅ 구현 방법 하루동안 서비스에 방문한 사용자 수를 카운팅하려면 사용자 별로 방문을 했는 지 여부를 기록으로 남겨야 한다. 방문을 했는 지 여부는 true/false로 표현할 수 있기 때문에 Redis의 자료구조 중에서 Bitmap을 활용한다. 하루

Redis

Geospatial 자료 구조 (GEOADD, GEOPOS, GEODIST, GEOSEARCH)

✅ Geospatial 자료 구조 Redis에서 Geospatial은 위치 데이터(경도, 위도)를 저장하고 검색하는 데 최적화된 자료 구조이다. 이 자료 구조는 특정 위치 기준으로 주어진 거리 내의 데이터를 찾아야 할 때 자주 사용하는 자료 구조이다.

[실습] 인증 기능을 로컬 세션 스토리지로 구현했을 때 발생하는 문제점 - 1
Redis

[실습] 인증 기능을 로컬 세션 스토리지로 구현했을 때 발생하는 문제점 - 1

Redis로 세션 스토리지를 구축하기 전에, 로컬 세션 스토리지 방식으로 구현한 코드를 먼저 살펴보자. ✅ 실습 코드 살펴보기 Spring Boot 서버 실행하기 Postman으로 API 잘 작동하는 지 테스트해보기

[실습] Redis로 세션 스토리지 구축하기
Redis

[실습] Redis로 세션 스토리지 구축하기

Spring Boot에는 spring-session-data-redis라는 라이브러리가 있어서 Redis로 세션 스토리지를 쉽게 구축할 수 있다. 이 라이브러리를 활용해서 세션 스토리지를 구축해보자. ✅ 실습 의존성 추가하기 application.ym

[실습] 하루 동안 서비스에 방문한 사용자 수(DAU) 카운팅하기 - 1
Redis

[실습] 하루 동안 서비스에 방문한 사용자 수(DAU) 카운팅하기 - 1

✅ 문제 상황 서비스를 운영하다보면 하루 동안 서비스에 방문한 사용자 수(DAU, Daily Active Users)를 파악해야 할 때가 많다. 그런데 하루 방문자 수를 카운팅하고 조회할 때마다 RDB(ex. MySQL)로 처리하면 트래픽이 많아질수록

서버가 2대 이상일 경우, Redis로 세션 스토리지를 구축해야 하는 이유
Redis

서버가 2대 이상일 경우, Redis로 세션 스토리지를 구축해야 하는 이유

✅ 세션(Session) 서비스에서 로그인 기능을 구현할 때 크게 2가지 방식으로 구현한다. JWT 방식과 세션(Session) 방식이 있다. 그 중에서 세션 방식은 다음과 같은 흐름으로 동작한다. 사용자가 ID / 비밀번호로 로그인 요청 서버는 인증