diff --git a/src/main/kotlin/roomescape/member/implement/MemberValidator.kt b/src/main/kotlin/roomescape/member/implement/MemberValidator.kt new file mode 100644 index 00000000..402d3168 --- /dev/null +++ b/src/main/kotlin/roomescape/member/implement/MemberValidator.kt @@ -0,0 +1,22 @@ +package roomescape.member.implement + +import io.github.oshai.kotlinlogging.KLogger +import io.github.oshai.kotlinlogging.KotlinLogging +import org.springframework.stereotype.Component +import roomescape.member.exception.MemberErrorCode +import roomescape.member.exception.MemberException +import roomescape.member.infrastructure.persistence.MemberRepository + +private val log: KLogger = KotlinLogging.logger {} + +@Component +class MemberValidator( + private val memberRepository: MemberRepository +) { + fun validateCanSignup(email: String) { + if (memberRepository.existsByEmail(email)) { + log.info { "[MemberValidator.validateCanSignup] 중복 이메일: email=$email" } + throw MemberException(MemberErrorCode.DUPLICATE_EMAIL) + } + } +}