diff --git a/back/build.gradle.kts b/back/build.gradle.kts index bbcee3fa..9c971237 100644 --- a/back/build.gradle.kts +++ b/back/build.gradle.kts @@ -39,7 +39,6 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-web") - implementation ("org.springframework.boot:spring-boot-starter-data-redis") implementation("org.springframework.boot:spring-boot-starter-mail") // QueryDSL diff --git a/back/src/main/java/com/back/domain/member/member/email/EmailService.java b/back/src/main/java/com/back/domain/member/member/email/EmailService.java index c66cd2e0..18b0f530 100644 --- a/back/src/main/java/com/back/domain/member/member/email/EmailService.java +++ b/back/src/main/java/com/back/domain/member/member/email/EmailService.java @@ -3,9 +3,8 @@ import com.back.global.exception.ServiceException; import jakarta.mail.MessagingException; import jakarta.mail.internet.MimeMessage; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; @@ -14,15 +13,24 @@ @Slf4j @Service -@RequiredArgsConstructor -@ConditionalOnBean(JavaMailSender.class) public class EmailService { private final JavaMailSender mailSender; + public EmailService(@Autowired(required = false) JavaMailSender mailSender) { + this.mailSender = mailSender; + if (mailSender == null) { + log.warn("JavaMailSender is not available. Email sending will be disabled."); + } + } + /** * 간단한 텍스트 이메일 발송 */ public void sendSimpleEmail(String to, String subject, String text) { + if (mailSender == null) { + log.warn("JavaMailSender is not available. Skipping email to: {}", to); + return; + } try { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); @@ -44,6 +52,10 @@ public void sendSimpleEmail(String to, String subject, String text) { * HTML 이메일 발송 */ public void sendHtmlEmail(String to, String subject, String htmlContent) { + if (mailSender == null) { + log.warn("JavaMailSender is not available. Skipping email to: {}", to); + return; + } try { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); diff --git a/back/src/main/java/com/back/domain/member/member/verification/RedisVerificationCodeStore.java b/back/src/main/java/com/back/domain/member/member/verification/RedisVerificationCodeStore.java deleted file mode 100644 index 20977709..00000000 --- a/back/src/main/java/com/back/domain/member/member/verification/RedisVerificationCodeStore.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.back.domain.member.member.verification; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Profile; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Component; - -import java.time.Duration; -import java.util.Optional; - -@Component -@Profile("prod") -@ConditionalOnProperty(name = "spring.data.redis.host") -@RequiredArgsConstructor -@Slf4j -public class RedisVerificationCodeStore implements VerificationCodeStore { - private final RedisTemplate redisTemplate; - - @Override - public void saveCode(String email, String code, Duration ttl) { - String key = "verification:" + email; - redisTemplate.opsForValue().set(key, code, ttl); - } - - @Override - public Optional getCode(String email) { - String key = "verification:" + email; - String code = redisTemplate.opsForValue().get(key); - return Optional.ofNullable(code); - } - - @Override - public void deleteCode(String email) { - String key = "verification:" + email; - redisTemplate.delete(key); - } -} \ No newline at end of file diff --git a/back/src/main/resources/application-dev.yml b/back/src/main/resources/application-dev.yml index ba771fba..db7b0d32 100644 --- a/back/src/main/resources/application-dev.yml +++ b/back/src/main/resources/application-dev.yml @@ -4,6 +4,3 @@ spring: username: sa password: driver-class-name: org.h2.Driver - autoconfigure: - exclude: - - org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration diff --git a/back/src/main/resources/application-prod.yml b/back/src/main/resources/application-prod.yml index 3b5673b4..bf137086 100644 --- a/back/src/main/resources/application-prod.yml +++ b/back/src/main/resources/application-prod.yml @@ -1,7 +1,4 @@ spring: - autoconfigure: - exclude: - - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration datasource: url: jdbc:mysql://devcos-team10-mysql.czvbgr7hie3i.ap-northeast-2.rds.amazonaws.com:3306/fivelogic?useSSL=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8 username: ${DB_USERNAME} diff --git a/back/src/main/resources/application.yml b/back/src/main/resources/application.yml index 3556e1d3..e614e9a4 100644 --- a/back/src/main/resources/application.yml +++ b/back/src/main/resources/application.yml @@ -15,9 +15,6 @@ spring: import: optional:file:.env[.properties] profiles: active: dev - autoconfigure: - exclude: - - org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration output: ansi: enabled: always