뭐 때는 바야흐로 작년 건국대학교 축제 때…

피드백으로 받았던 것중 하나가 주문번호가 쓸모가 없다는 것이었다!! 사실 그도 그럴게… 테이블 번호로 서빙하는 것이 먼저지 주문번호가 딱히 알려주는 것은 별로 없었기 때문이다.

그래서 해당 축제 기간동안 테이블 번호를 더 강조해서 보여주게끔 레이아웃을 변경했었다.

또한 문제가 하나 더 있다면 지금 구현상 모든 주문은 한 테이블에 들어있는데, 우리는 id를 주문번호로 사용하고 있었다. 즉 다른 주점과 주문 번호를 공유하고 있는 상황이라 주점을 새로 만들었더라도 주문 번호는 1000번부터 시작한다거나 하는 사용자 입장에서는 헷갈릴 수도 있는 상황이었다.

이게 나름 마음에 많이 안들었었고, 이를 해결하기 위해서 어떻게 처리할까 고민해봤을 때 다음과 같은 방식이 있었다.

  1. 해당 주점의 가장 마지막 주문을 조회하고 그 주문 번호보다 1 높은 값을 할당하여 주문 생성하기
  2. 주점별로 할당할 주문 번호를 저장하고 있는 테이블을 추가하기
  3. 2번 내용을 redis로 구현하기

1 번은 생각만하고 사실 시도조차 할 생각은 전혀 없었다. 딱 봐도 그냥 겁나 별로인 구현이자늠!!

주점이 늘어나고.. 주문이 늘어날 수록.. 성능이 급격하게 안좋아질게 너무 분명하기 때문이다. (물론 지금 우리 수준에서는 문제가 안되긴 하지만… 주문이 10억개 정도 쌓여도 인덱스만 잘 넣어주면 널널할듯…)

사실 원래 스펙대로라면 2번을 시도하는게 맞지만… 주문 번호만을 위한 테이블을 만든다는 것은 내 입장에서는 너무 별로였다… 이걸 왜 테이블까지 만들면서 만들어…? 라는 느낌??

그래서 이번 기회에 redis라는 친구와 한 번 친해져보고자 redis를 활용해서 문제를 해결하려고 했다!!

먼저 redis를 준비해야겠지?? redis를 구성하는 docker-compose 파일을 작성했다.