Redis 캐시로 몰려드는 트래픽을 견디다 — 토니모리 공식몰 성능 개선기
토니모리 사례를 통해 시스템의 병목을 정확히 파악하고 캐시를 전략적으로 도입함으로써 성능과 안정성을 근본적으로 개선할 수 있다는 것을 배웠다.
데이터 분야에서도 마찬가지로 어떤 데이터가 자주, 반복적으로, 동일하게 조회되는 지를 분석해서 캐시를 사용하면 데이터 파이프라인이나 모델 파이프라인을 개선할 수 있다는 인사이트를 얻었다.
데이터 접근 패턴 분석
캐시의 전략적 위치 선정
TTL(Time-To-Live)과 만료 전략 설계
안정성 확보 수단으로서의 캐시 활용
Redis
는 In-memory key-value store로 디스크가 아닌 메모리에 데이터를 저장하는 방식이다. 그렇기 때문에 마이크로초 단위 응답이 가능할 정도로 매우 빠르다.
Key-value
구조 외에도 String
, List
, Set
, Hash
등 다양한 자료구조를 지원한다.
데이터 파이프라인을 아직 설계하지는 않았지만 이번 프로젝트에서 Redis를 사용할 것 같다. 시간날 때 틈틈히 알아봐야겠다.
프로젝트를 진행할 때 질서있게(?) 유지되지 않았던 것이 있다면 브랜치 전략이었다. 이전까지 해왔던 프로젝트의 팀원들은 대부분 플젝이 처음이었고 기능 개발 등에 집중하느라 merge 등이 잘 이루어지지 않아, 프로젝트가 끝나면 브랜치가 두루마리 휴지마냥 길게 남아있었다.
이번 프로젝트는 팀원들과 브랜치 관리를 제대로 해서 프로젝트 마지막에는 dev와 release 등 필요한 브랜치만 남아있는 깔끔한 모습으로 프로젝트를 마무리하고 싶다.