블로그 글

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

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

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

✅ 구현 방법 하루동안 서비스에 방문한 사용자 수를 카운팅하려면, 하루에 어떤 사용자가 방문했는 지 데이터로 저장해두어야 한다. 이 때, 한 명의 사용자가 여러 번 방문하더라도 한 번으로 카운팅해야 하기 때문에 중복없이 저장해야 한다. 또한 순서와는

Bitmap 자료 구조 (SETBIT, GETBIT, BITCOUNT)
Redis

Bitmap 자료 구조 (SETBIT, GETBIT, BITCOUNT)

✅ Bitmap 자료 구조 Redis에서 Bitmap은 아주 적은 메모리로 대량의 boolean 상태를 저장할 때 사용하는 자료구조이다. Bitmap의 가장 큰 장점은 공간 효율성이다. 일반적으로 boolean 값을 하나 저장하려면 8 bit 이상이

Redis

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

✅ 상황 실무에서 ‘내 위치를 기준으로 반경 1km에 위치한 카페 찾는 기능’을 구현해야 한다고 가정하자. 만약 이 기능을 RDB인 MySQL로 구현해야 한다면 SQL문이 굉장히 복잡해지고 거리 계산을 일일이 다 해야되기 때문에 성능도 좋지 않다. 그

Set 자료 구조 (SADD, SMEMBERS, SCARD)
Redis

Set 자료 구조 (SADD, SMEMBERS, SCARD)

✅ Set 이전 강의에서 Redis의 Sorted Set 자료 구조를 먼저 배웠었다. Sorted Set은 score(점수)를 기준으로 자동 정렬되는 중복없는 자료 구조라고 설명했다. Set은 정렬되지 않는 중복 없는 자료구조를 뜻한다. 이런 특성 때

Hash 자료 구조 (HSET, HGET, HGETALL)
Redis

Hash 자료 구조 (HSET, HGET, HGETALL)

✅ Hash Redis에서 Hash는 하나의 key 안에 여러 개의 field-value 쌍을 저장할 수 있는 자료구조이다. Hash는 json 객체의 구성과 유사해서, 여러 속성들을 묶어서 저장할 때 적합하다. ✅ Hash에 데이터 저장 # Hash

Redis

String 자료 구조 (SET, GET, DEL, SETNX)

✅ String 자료 구조의 SETNX # key, value 구조로 데이터 저장하기 $ SET hobby soccer # key로 value 조회하기 $ GET hobby # 기존에 hobby라는 key가 존재하더라도, 해당 key에 value를

[실습] 많이 검색한 키워드 Top 10을 보여주는 '인기 검색어 기능’ 만들기 - 1
Redis

[실습] 많이 검색한 키워드 Top 10을 보여주는 '인기 검색어 기능’ 만들기 - 1

✅ 인기 검색어 기능 구현 실제 서비스를 구현하다보면 특정 기준으로 순위별 데이터를 보여줘야 하는 경우가 많다. 예를 들어, 인기 게시글이라던지, 인기 검색어라던지, 인기순으로 영화 데이터를 보여줘야 된다던지, 상품을 판매순으로 보여줘야 되는 것들이

Sorted Set 자료 구조 (ZADD, ZRANGE, ZINCRBY)
Redis

Sorted Set 자료 구조 (ZADD, ZRANGE, ZINCRBY)

✅ Sorted Set (ZSet) Redis에서 Sorted Set(ZSet)은 score(점수)를 기준으로 자동 정렬되는 중복 없는 자료구조이다. 이런 특성 때문에 실제 서비스에서 랭킹 시스템, 실시간 인기 데이터 관리처럼 순서와 가중치가 중요한

[실습] 많이 검색한 키워드 Top 10을 보여주는 '인기 검색어 기능’ 만들기 - 2
Redis

[실습] 많이 검색한 키워드 Top 10을 보여주는 '인기 검색어 기능’ 만들기 - 2

이번에는 검색 API와 인기 검색어 조회 API를 Redis를 활용해 구현해보자. ✅ 구현 방법 인기 검색어 조회 API에서는 인기순으로 검색어를 정렬해야 하기 때문에, 자동 정렬을 해주는 자료구조인 Sorted Set을 활용한다. 검색을 할 때마다

Redis

Redis의 수많은 자료 구조를 효율적으로 배우려면?

✅ Redis의 수많은 자료 구조를 실전에서 써먹을 수 있게 배우는 방법 ‘비전공자를 위한 Redis 입문/실전 (조회 성능 최적화편)’ 강의에서는 가장 기본적이고 많이 쓰이는 String 타입 딱 한 가지를 배웠다. 하지만 Redis는 String

[실습] 재고를 차감할 때 동시성 이슈로 인한 오차가 발생하지 않도록 만들기 - 1
Redis

[실습] 재고를 차감할 때 동시성 이슈로 인한 오차가 발생하지 않도록 만들기 - 1

✅ 문제 상황 100명의 사용자가 하나의 상품을 1개씩 구매하면, 이 상품의 재고는 정확하게 100개가 차감되는 게 당연하다. 그런데 실제 코드를 실행시켜보면 오차가 발생하는 경우가 많다. 한 마디로, 재고가 100개가 차감되어야 하는데 95개, 92

List 자료 구조 (RPUSH, LRANGE, LPOP 등)
Redis

List 자료 구조 (RPUSH, LRANGE, LPOP 등)

✅ List (리스트) Redis에서 List(리스트)는 순서대로 데이터를 저장할 수 있는 자료구조이다. 이런 특성 때문에 실제 서비스에서 스택(stack)과 큐(queue)로 자주 사용된다. ✅ 자주 사용하는 명령어 # RPUSH [key] [val

박재성 선생님 블로그 글 (2쪽) | JSCODE