diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt
index a8756b5..8f33f47 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/ChargeService.kt
@@ -3,7 +3,7 @@ package kr.co.vividnext.sodalive.can.charge
 import com.fasterxml.jackson.databind.ObjectMapper
 import kr.co.bootpay.Bootpay
 import kr.co.vividnext.sodalive.can.CanRepository
-import kr.co.vividnext.sodalive.can.charge.event.ChargeSpringEvent
+import kr.co.vividnext.sodalive.can.charge.event.ChargeEventService
 import kr.co.vividnext.sodalive.can.payment.Payment
 import kr.co.vividnext.sodalive.can.payment.PaymentGateway
 import kr.co.vividnext.sodalive.can.payment.PaymentStatus
@@ -16,7 +16,6 @@ import okhttp3.Request
 import okhttp3.RequestBody.Companion.toRequestBody
 import org.json.JSONObject
 import org.springframework.beans.factory.annotation.Value
-import org.springframework.context.ApplicationEventPublisher
 import org.springframework.data.repository.findByIdOrNull
 import org.springframework.http.HttpHeaders
 import org.springframework.security.core.userdetails.User
@@ -31,7 +30,7 @@ class ChargeService(
     private val memberRepository: MemberRepository,
     private val objectMapper: ObjectMapper,
     private val okHttpClient: OkHttpClient,
-    private val applicationEventPublisher: ApplicationEventPublisher,
+    private val chargeEventService: ChargeEventService,
 
     @Value("\${bootpay.application-id}")
     private val bootpayApplicationId: String,
@@ -85,11 +84,9 @@ class ChargeService(
                     charge.payment?.status = PaymentStatus.COMPLETE
                     member.charge(charge.chargeCan, charge.rewardCan, "pg")
 
-                    applicationEventPublisher.publishEvent(
-                        ChargeSpringEvent(
-                            chargeId = charge.id!!,
-                            memberId = member.id!!
-                        )
+                    chargeEventService.applyChargeEvent(
+                        chargeId = charge.id!!,
+                        memberId = member.id!!
                     )
                 } else {
                     throw SodaException("결제정보에 오류가 있습니다.")
@@ -139,11 +136,9 @@ class ChargeService(
                 charge.payment?.status = PaymentStatus.COMPLETE
                 member.charge(charge.chargeCan, charge.rewardCan, "ios")
 
-                applicationEventPublisher.publishEvent(
-                    ChargeSpringEvent(
-                        chargeId = charge.id!!,
-                        memberId = member.id!!
-                    )
+                chargeEventService.applyChargeEvent(
+                    chargeId = charge.id!!,
+                    memberId = member.id!!
                 )
             } else {
                 throw SodaException("결제정보에 오류가 있습니다.")
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt
index add2181..96dcd1c 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeEventService.kt
@@ -15,7 +15,6 @@ import kr.co.vividnext.sodalive.member.auth.AuthRepository
 import org.springframework.context.ApplicationEventPublisher
 import org.springframework.data.repository.findByIdOrNull
 import org.springframework.stereotype.Service
-import org.springframework.transaction.annotation.Transactional
 import kotlin.math.ceil
 import kotlin.math.round
 
@@ -28,13 +27,12 @@ class ChargeEventService(
     private val chargeEventRepository: ChargeEventRepository,
     private val applicationEventPublisher: ApplicationEventPublisher
 ) {
-    @Transactional
     fun applyChargeEvent(chargeId: Long, memberId: Long) {
         val charge = chargeRepository.findByIdOrNull(chargeId)
-            ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.")
+            ?: throw SodaException("결제정보에 오류가 있습니다.")
 
         val member = memberRepository.findByIdOrNull(memberId)
-            ?: throw SodaException("이벤트가 적용되지 않았습니다.\n고객센터에 문의해 주세요.")
+            ?: throw SodaException("결제정보에 오류가 있습니다.")
 
         if (member.auth != null) {
             val authDate = authRepository.getOldestCreatedAtByDi(member.auth!!.di)
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt
deleted file mode 100644
index 5a6b014..0000000
--- a/src/main/kotlin/kr/co/vividnext/sodalive/can/charge/event/ChargeSpringEvent.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package kr.co.vividnext.sodalive.can.charge.event
-
-import org.springframework.scheduling.annotation.Async
-import org.springframework.stereotype.Component
-import org.springframework.transaction.event.TransactionalEventListener
-
-class ChargeSpringEvent(
-    val chargeId: Long,
-    val memberId: Long
-)
-
-@Component
-class ChargeSpringEventListener(
-    private val chargeEventService: ChargeEventService
-) {
-    @Async
-    @TransactionalEventListener
-    fun applyChargeEvent(event: ChargeSpringEvent) {
-        chargeEventService.applyChargeEvent(event.chargeId, event.memberId)
-    }
-}