관리 메뉴

The Nirsa Way

[Spring Boot] 이메일 인증 구현 - Redis 유효 시간 적용하기 본문

Development/Spring Boot

[Spring Boot] 이메일 인증 구현 - Redis 유효 시간 적용하기

KoreaNirsa 2025. 8. 5. 14:36
반응형

 

이메일 인증 구현 - Redis 유효 시간 적용하기

이미 로컬에 redis가 설치되어 있다는 전제하에 진행합니다. 윈도우 환경에 redis를 설치하는 것은 https://github.com/microsoftarchive/redis/releases 으로 접속하셔서 msi를 다운 받아 실행하시면 됩니다.

build.gradle에 redis 의존성과 application.properties쪽에 설정을 추가해주세요.

implementation("org.springframework.boot:spring-boot-starter-data-redis:3.5.4")
spring.data.redis.host=localhost
spring.data.redis.port=6379

 

RedisConfig를 생성하여 빈을 등록해줍니다.

@Configuration
class RedisConfig {
    @Bean
    fun redisTemplate(redisConnectionFactory: RedisConnectionFactory): StringRedisTemplate {
        return StringRedisTemplate(redisConnectionFactory)
    }
}

 

이후 이 전 포스팅(2025.08.05 - [Development/Spring Boot] - [Spring Boot] 이메일 인증 구현 - Naver SMTP) 에서 만들어 두었던 전송 부분에 코드를 추가합니다. prefix(emailCode)를 붙여 키를 주고 값에 랜덤 숫자(code)를 넣습니다. 또한 이 정보는 5분의 TTL을 가지므로 5분간 유효한 정보가 됩니다.

override fun sendEmailCode(emailDTO : ReqEmailDTO) : String {
    val code = generateCode()
    sendEmail(emailDTO.email, code)

    redisTemplate.opsForValue().set(
        "emailCode:${emailDTO.email}",
        code,
        5, TimeUnit.MINUTES
    )
    return code;
}

 

이제 인증 요청을 한 뒤 아래 명령어를 redis-cli에 입력하여 확인해보시면 됩니다.

// prefix가 emailCode: 인 모든 키 조회
keys emailCode:*

// 키가 emailCode:islandtim@naver.com인 데이터의 값 조회
get emailCode:islandtim@naver.com

 

※ .msi 설치 후 redis-cli가 되지 않을 경우
만약 https://github.com/microsoftarchive/redis/releases 에서 msi로 설치 후 redis-cli가 존재하지 않는 명령어라고 뜬다면 윈도우+R 키 누르신 후 sysdm.cpl → 고급 → 환경 변수 → 시스템 변수 (편집) → 새로 만들기를 클릭하신 후 redis가 설치된 경로(C:\Program Files\Redis)를 입력해주시면 됩니다.

 

반응형