얼마전에 SMTP를 활용하여 이메일 인증을 개발했다.
SMTP(Simple Mail Transfer Protocol)란 이메일을 전송하기 위한 인터넷 표준 프로토콜이다.
회원가입 시 랜덤으로 생성한 6자리 숫자를 이메일로 전송하고 사용자가 인증 번호를 완료하면 회원가입을 하도록 개발했다.
이메일 인증 API를 개발할때 블로그를 검색하니 이메일 인증코드는 관계형 데이터베이스로 관리하지 않고 in-memory에 저장하는 Redis 데이터베이스를 많이 사용한다는 걸 알게 되었다.
Redis는 디스크에 데이터를 저장하지 않고 RAM에 데이터를 저장하여 읽기, 쓰기 등 속도가 RDBMS보다 훨씬 빠른 성능을 가지고 있다.
다른 특징으로는
그래서 나도 Redis를 활용해서 이메일 인증코드를 저장할 때 TTL을 설정하여 자동삭제 되도록 했다. 그리고 인증완료 플래그를 설정하여 인증이 되었는지 인증 완료 여부를 저장하여 검증하도록 했다.
로그인 API를 개발하면서 성능에 관한 많은 문제점이 있었는데 캐싱은 CRUD 중에서 Read를 할때 사용되는데 Redis에 캐싱 기능도 있어서 회원정보를 조회할 때 한번 적용해봐야 겠다는 생각이 들었다.
Redis를 사용하면 얼마나 성능이 좋아지는지 나중에 테스트 해봐야겠다. 후..