내배캠 주요 학습/TIL : Today I Learned

왜 Redis 를 활용 하였나?

chaeyoung- 2023. 9. 14. 16:08

참조: 

https://www.notion.so/azuressu/f88358f2cfa74951ad4482235b955b06

 

트러블 슈팅

🔔 알림 🔔

www.notion.so

 

Redis 저장소 활용의 용이성

 

Redis의 장,단점 

  • 빠른 I/O 처리가 가능하다.
  • 인메모리 형태의 저장소이다.
  • key- value 형태로 저장이 되고, 다양한 형태의 저장도 가능하다. 
  • 테이블 구조가 정형화 되어 있는 RDBMS의 단점을 보완할 수 있다.
  • 스키마가 정해져 있지 않아 확장성이 좋다.

단점으로는, 테이블 구조가 정형화 되어 있지 않아 JOIN문을 실행할 수 없다.

 

 

이메일 인증번호 데이터 수명 주기

회원가입 시 이메일을 입력하고 해당 이메일을 인증하는 절차를 거친다.

이때 이메일에 따른 랜덤값을 인증번호로 갖는데, 이를 어떤 DB에 저장할지 고민하였다.

이메일 인증 번호에 따른 조건은 아래와 같다.

  • 이메일 주소를 통해 인증 번호를 참조할 수 있어야 한다.
  • 이메일 인증 유효 기간 5분으로, 5분 뒤에는 데이터의 삭제가 필요하다.
  • 인증 번호 여부 일치를 위한 빠른 참조가 필요하다.
  • Join 쿼리문을 활용할 필요가 없다.
위와 같은 조건에 적합한 데이터 베이스로 Redis 저장소를 활용

 

RDBMS의 최대 장점인 정형화된 스키마 구조와 복잡한 Join 쿼리문이 해당 상황에서 필요하지 않는다.

 

Redis는 데이터의 저장 유효 시간을 따로 설정하여 저장할 수 있다.

또한, key-value 형식으로 저장할 수 있는 NoSQL이고,

인메모리의 형태로서 빠른 I/O 처리가 가능하다는 점을 고려하여 선택하였다.

 

이메일을 key 값으로, value를 인증 번호로 저장하고, Redis에 저장되는 유효시간도 5분으로 설정하였다.