프로젝트 단체개발 일지

현정재·2024년 9월 11일
1

얼마전에 SMTP를 활용하여 이메일 인증을 개발했다.
SMTP(Simple Mail Transfer Protocol)란 이메일을 전송하기 위한 인터넷 표준 프로토콜이다.
회원가입 시 랜덤으로 생성한 6자리 숫자를 이메일로 전송하고 사용자가 인증 번호를 완료하면 회원가입을 하도록 개발했다.

이메일 인증 API를 개발할때 블로그를 검색하니 이메일 인증코드는 관계형 데이터베이스로 관리하지 않고 in-memory에 저장하는 Redis 데이터베이스를 많이 사용한다는 걸 알게 되었다.

Redis는 디스크에 데이터를 저장하지 않고 RAM에 데이터를 저장하여 읽기, 쓰기 등 속도가 RDBMS보다 훨씬 빠른 성능을 가지고 있다.

다른 특징으로는

  • 다양한 데이터 구조 지원: 키-값 외에도 리스트, 세트, 해시 등 다양한 구조 사용 가능하며
  • 캐시로 자주 활용: 빠른 데이터 조회를 위한 캐시, 세션 관리에 적합하고
  • 영속성 옵션 제공: 필요 시 RDBAOF 방식으로 데이터를 디스크에 저장하여 데이터 손실 방지 가능하다

그래서 나도 Redis를 활용해서 이메일 인증코드를 저장할 때 TTL을 설정하여 자동삭제 되도록 했다. 그리고 인증완료 플래그를 설정하여 인증이 되었는지 인증 완료 여부를 저장하여 검증하도록 했다.

로그인 API를 개발하면서 성능에 관한 많은 문제점이 있었는데 캐싱은 CRUD 중에서 Read를 할때 사용되는데 Redis에 캐싱 기능도 있어서 회원정보를 조회할 때 한번 적용해봐야 겠다는 생각이 들었다.

Redis를 사용하면 얼마나 성능이 좋아지는지 나중에 테스트 해봐야겠다. 후~

profile
wonttock

0개의 댓글