Infrastructure 6

서버 개발자가 알면 좋은 MySQL Tips

서비스를 개발하는 서버 개발자라면, 빼놓을 수 없는 고민은 데이터를 어떻게 저장하고 어떻게 읽을지에 대한 고민이다.대부분의 서비스는 데이터를 저장하기 위해 RDB에 저장하고, 많은 RDB 솔루션 중 MySQL을 가장 많이 이용한다. 실제로 나도 MySQL을 이용해 데이터를 저장하고, 서빙하고 있다. 그러다 문득, "내가 MySQL이라는 솔루션을 제대로 이해하고 사용하는건가?"라는 의문이 들었다. 그래서 MySQL 서적 중 가장 많이 읽히는 RealMySQL을 읽었다. 이번글에서는 RealMySQL을 읽으면서 서비스 개발자가(내가..) 알고있으면 좋은 지식들을 정리하겠다. MySQL 아키텍쳐MySQL Engine : MySQL의 두뇌에 해당하는 처리를 수행한다. 요청된 SQL 문장을 분석하고, 최적화해 ..

Infrastructure 2025.08.31

Redis Operate

이번 글을 통해 Redis를 운영할 수 있는 방법들을 정리하겠다. Redis 운영 방식 Standalone가장 간단한 형태로, 하나의 서버에 Redis를 설치하고 실행하는 방식이다. 위 방법은 간단하지만, SPOF(Single Point of Failure)이기 때문에 실제 서비스에서는 사용할 수 없다. SentinelSentinel : a soldier or guard whose job is to stand and keep watch. Sentinel로 운영한다는 의미는 Redis Master와 Replication를 두고, Sentinel Process를 이용해 Master와 Replication의 상태를 계속 모니터링 하고, 문제가 발생하면 자동으로 대응해주도록 구성한다는 의미다. 가장 기본적인..

Infrastructure 2025.08.07

Redis Eviction Strategy

Redis는 데이터를 메모리에 저장하기 때문에 파일 시스템에 데이터를 저장하는 전통적인 데이터베이스보다 빠르게 원하는 데이터를 찾을 수 있다. 대신, 데이터를 저장할 수 있는 데이터 양은 전통적인 데이터베이스도보다 훨씬 적다. 따라서 Redis를 사용한다면, 메모리를 효율적으로 사용하는게 중요하다. 이번글을 통해 Redis에서 제공하는 Memory관련 설정과 Eviction 전략을 정리하겠다. Redis에서 지원하는 Eviction 전략Redis에서 메모리 관련해 제공해주는 옵션은 크게 maxmeory와 maxmemory-policy가 있다. maxmemoryThe maxmemory configuration directive specifies the maximum amount of memory to us..

Infrastructure 2025.07.24

Redis 성능의 비밀: 메모리부터 싱글 스레드까지 파헤치기

개발을 하다보면, 전통적인 데이터베이스만으로는 원하는 성능이 나오는 애플리케이션을 개발할 수 없습니다.이럴때 주로 캐시를 통해 서비스의 성능을 높입니다. 캐시도 다양한 솔루션들이 있지만, 그 중 가장 인기있는 솔루션은 Redis 입니다.https://db-engines.com/en/ranking_trend/key-value+store Redis는 빠르고, 다양한 자료구조를 지원해 개발자들이 좋아합니다.이번 글에서는 Redis가 어떻게 요청에 빠르게 응답하는지에 대한 비밀을 정리합니다. 1. 속도의 출발점: 인메모리(In-Memory) 아키텍처Redis 성능의 가장 근본적인 토대는 모든 데이터를 **RAM(메모리)**에 저장하는 것입니다.전통적인 데이터베이스는 데이터를 **디스크(HDD, SSD)**에 보..

Infrastructure 2025.05.21

K8S CPU Requests와 Limits 의미

쿠버네티스를 이용해 서버를 배포하면, Pod 설정 파일에 cpu request와 limit 설정 값이 존재한다. 이 값들이 실제로 어떤 의미인지 궁금해 여러 글들을 찾아보다, 좋은 글을 발견해 공유차 남겨둔다. 자세한 내용은 첨부한 글을 참고하길 바란다. 글에 있는 핵심 내용만 간략하게 정리하겠다. K8S에서 Pod의 Container는 Worker 노드 관점에서 Cgroup로 관리되고, CFS를 이용해 Cgroup이 얼만큼의 리소스를 사용할지 결정된다. cpu request는 CFS가 Cgroup에게 CPU 리소스를 할당할 때, 얼만큼 할당할지의 기준으로 사용한다. 따라서 request 값이 클 수록 worker node에서 더 오랫동안 cpu를 점유할 수 있다. cpu limit은 CPU 사용량 제한..

Infrastructure 2024.03.31

Redis Pub/Sub과 Kafka 비교

목차 들어가면서 Redis Pub/Sub Kafka Redis Pub/Sub vs Kafka 마치면서 들어가면서 이번 글을 통해 Redis Pub/Sub과 Kafka를 비교해보겠다. Pub/Sub 패턴을 구현한 Message Queue로 여러 솔루션이 존재하지만, Kafka는 그 중 유명한 솔루션 중 하나이다. 하지만 Redis Pub/Sub은 Redis의 캐시 기능에 밀려 잘 모르는 분도 많다. 알고보면 Reids Pub/Sub도 적절한 상황에 활용한다면 좋은 솔루션이 될 수 있다. 이번글을 통해 Reids Pub/Sub과 Kafka의 차이를 알아보고 언제 사용하는게 좋을지 정리해보겠다. Redis Pub/Sub Redis Pub/Sub은 Redis에서 제공하는 기능으로 mesage broker로 사용..

Infrastructure 2024.02.17