[서평] 실전 레디스

2024. 6. 22. 20:33Insight/서평

728x90

실전 레디스 표지

[1년 전에 이 책이 있었더라면]

약 7개월 전, RDBMS의 쿼리를 최소화하기 위한 목적으로 자체 캐싱 서버 구축 프로젝트에 참여했다.
Spring 프레임워크에서 Lettuce 라이브러리를 통해 Read-Through 및 Write-Through 방식으로 구현했고, 특정 키 패턴에 대해 동적으로 TTL을 수정할 수 있도록 하는 동시에, 한정된 메모리 내 LRU 방식으로 Cache Evict 전략을 구성했다.

다 끝난 뒤에 돌이켜보면, 그다지 특별하지 않은 일반적인 패턴이라 생각하지만, 당시에는 수많은 정보의 흐름 속에 무엇이 적합한지 따져보느라 시간을 많이 소요했던 것 같다. 만약 이러한 책이 당시에 있었다면, 입문부터 다양한 응용까지 큰 도움을 받았을 것 같다.

[책의 구성]
이 책의 구성은 크게 "기초 > 실전 > 고급" 단계로 나뉜다.

| <기초> 파트를 요약하자면, 모든 내용들이 처음 입문하는 이들에게 필요한 내용과 필요한 정도의 깊이로 제공된다.
| 처음부터 끝까지 정독하는 것을 추천한다.

기초 단계에서는 각 자료형의 특징과 각 명령어에 대해 간단히 소개한다.
물론 명령어에 대한 검색 기능은 공식 사이트에서도 지원한다. 하지만 명령어 이름으로만 검색이 가능하기 때문에, 기능과 시간 복잡도를 가볍게 훑어볼 수 있는 점은 입문에 큰 도움이 된다고 생각한다.

가벼운 팁 느낌으로 키 명명법이나 각 자료형을 사용할 때의 주의사항을 소개한다. 또한 처음에는 발견하기 어려운 HyperLogLog 등의 유용한 확률적 자료구조도, 도식을 통한 간단한 설명과 함께 설명한다.
일반적인 프로그래밍 언어에서의 자료구조 및 동작과 차이가 있으므로 입문에 큰 도움이 되리라 생각한다.

RTT 및 지연 시간을 감소시키기 위한 고급 기능과 실제 웹 어플리케이션 구성 예제도 소개하는데, 응용의 깊이는 다소 얕다.
하지만 생소하다면 언제 어떤 방법을 사용하는 것이 좋은지에 대한 청사진 제공한다는 측면에서 역시 입문에 필요하다.

| <실전> 파트를 요약하자면, 운영 단계에서 필수적인 기본 내용을 담고 있다.
| 각 주제에 대한 깊이는 얕지만, 언제 무엇을 어떻게 하면 될지, 방향성을 제시한다.

실전 단계에서는 시스템 구조적으로 성능을 개선하고, 문제를 식별하는 트러블 슈팅 요령을 소개한다.
데이터 삭제 패턴, 캐시 전략과 같은 간단한 팁에서부터
redis.conf, 로깅, 모니터링, 성능 측정, 분산 및 클라우드 환경에서의 운용 등까지 다양한 주제를 가볍게 다룬다.

다소 아쉬운 점은 실습 과정이 plaintext라 가독성이 좋지 않다.
이 부분은 n회독을 수행하며 자체적으로 필기를 하면 도움이 될 것 같다.

| <고급> 파트는 RESP, SDS, ae, RAX, COW, Raft, HyperLogLog 등 Redis를 구성하는 기술 및 이론을 소개한다.
| Redis 소스 수준에서의 이야기를 다루므로 github.com/redis 를 참고하는 것도 좋을 것 같다.

책 끝에 있는 INDEX도 명령어별 활용되는 지점을 매우 자세하게 기록해두어, 특정 명령어의 다양한 용례를 확인해보기 좋다.

[총평: 레거시 캐싱 서버의 유지보수를 처음 담당하게 된 이들의 필독서]
자료형의 특장단점부터 각 명령어의 간략한 소개까지 당장 알아야 하는 내용을 통해 Redis를 빠르게 이해할 수 있다.
deprecated 명령 및 버전 별 Breaking Change에 대해서도 명시하기 때문에, 오래된 버전을 최신과 호환되도록 보수해야 하는 경우에도 도움이 될 것 같다.
내용이 많으므로 끝까지 한 번 정독하는 것보다, 필요한 내용 위주로 강조 표시하며 N회독하는 것이 좋아보인다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
728x90