MSA-11. 대용량 트래픽 처리 방법에 대한 프로젝트 기획
대용량 트래픽 처리에 대한 경험이 없어 기획부터 어려웠다. 그래도 어떻게 처리할 것인지 예상되는 로직을 기획하고 구현해 보려고 한다.
Cool developers never die
대용량 트래픽 처리에 대한 경험이 없어 기획부터 어려웠다. 그래도 어떻게 처리할 것인지 예상되는 로직을 기획하고 구현해 보려고 한다.
남은 수량은 실시간으로 줄어들기 때문에 최대한 빠르게 Read & Write 할 수 있어야 한다.
기획했던 대로 우선 구현해 보았다.
발급한 모든 리퀘스트 토큰과 엑세스 토큰을 무효화하면 된다. 레디스에서 요청한 해당 이메일로 등록된 모든 토큰 데이터를 삭제하는 방식.
전자상거래(E-Commerce), 증권이나 은행 등 업무 관련 시스템에서 안정성과 직결되는 부분인 동시성(Concurrency) 제어를 고려하지 않고 개발하게 되면 데이터 정합성(Consistency)이 중요한 상황에서 여러 가지 이슈가 발생할 수 있다. 다중 쓰레드(Multi thread) 환경에서 서로 다른 쓰레드(Thread)가 공유 자원에 접근하여 가변 데이터를 동시에 연산 작업을 수행하는 상황에 데이터 정합성이 보장되지 않아 일관성 있는 데이터 조회가 어려울 수 있다. 이를 해결하기 위해 동기화 작업을 수행해야 하며 별도의 처리가 필요하다.
Redis란? Redis(REmote DIctionary Server)는 주로 애플리케이션 캐시나 빠른 응답 속도를 가진 데이터베이스로 사용되는 오픈 소스 인메모리 NoSQL 키/값 저장소이다. Redis는 디스크나 솔리드 스테이트 드라이브(SSD)가 아닌 메모리에 데이터를 저장하기 때문에 탁월한 속도, 안정성, 성능이 제공된다.