diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentRepository.kt
index 0e791f3..5d0e9ce 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentRepository.kt
@@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.content.comment
 import com.querydsl.jpa.impl.JPAQueryFactory
 import kr.co.vividnext.sodalive.content.QAudioContent.audioContent
 import kr.co.vividnext.sodalive.content.comment.QAudioContentComment.audioContentComment
+import kr.co.vividnext.sodalive.member.QMember.member
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
 import java.time.ZoneId
@@ -30,7 +31,11 @@ interface AudioContentCommentQueryRepository {
         limit: Int
     ): List<GetAudioContentCommentListItem>
 
-    fun findPushTokenByContentCommentId(contentCommentId: Long): FindPushTokenByContentCommentIdResponse?
+    fun findPushTokenByContentIdAndCommentParentIdMyMemberId(
+        contentId: Long,
+        commentParentId: Long?,
+        myMemberId: Long
+    ): List<FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse>
 }
 
 @Repository
@@ -143,27 +148,49 @@ class AudioContentCommentQueryRepositoryImpl(
             .toList()
     }
 
-    override fun findPushTokenByContentCommentId(contentCommentId: Long): FindPushTokenByContentCommentIdResponse? {
-        val response = queryFactory
-            .selectFrom(audioContentComment)
-            .innerJoin(audioContentComment.audioContent, audioContent)
-            .where(audioContentComment.id.eq(contentCommentId))
-            .fetchFirst()
+    override fun findPushTokenByContentIdAndCommentParentIdMyMemberId(
+        contentId: Long,
+        commentParentId: Long?,
+        myMemberId: Long
+    ): List<FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse> {
+        var where = audioContent.id.eq(contentId)
+            .and(member.id.ne(myMemberId))
+            .and(audioContentComment.isActive.isTrue)
 
-        return if (response == null) {
-            null
-        } else {
-            if (response.parent != null) {
-                FindPushTokenByContentCommentIdResponse(
-                    pushToken = response.parent!!.member!!.pushToken ?: "",
-                    container = response.parent!!.member!!.container
-                )
-            } else {
-                FindPushTokenByContentCommentIdResponse(
-                    pushToken = response.audioContent!!.member!!.pushToken ?: "",
-                    container = response.audioContent!!.member!!.container
-                )
-            }
+        if (commentParentId != null) {
+            where = where.and(
+                audioContentComment.parent.id.eq(commentParentId)
+                    .or(audioContentComment.id.eq(commentParentId))
+            )
         }
+
+        val response = if (commentParentId != null) {
+            queryFactory
+                .select(
+                    QFindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse(
+                        member.pushToken.coalesce(""),
+                        member.container
+                    )
+                )
+                .from(audioContentComment)
+                .innerJoin(audioContentComment.audioContent, audioContent)
+                .innerJoin(audioContentComment.member, member)
+                .where(where)
+                .fetch()
+        } else {
+            queryFactory
+                .select(
+                    QFindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse(
+                        member.pushToken.coalesce(""),
+                        member.container
+                    )
+                )
+                .from(audioContent)
+                .innerJoin(audioContent.member, member)
+                .where(where)
+                .fetch()
+        }
+
+        return response
     }
 }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt
index 8f25068..a35de3f 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt
@@ -57,7 +57,8 @@ class AudioContentCommentService(
                     "콘텐츠에 댓글을 달았습니다.: ${audioContent.title}"
                 },
                 contentId = audioContentId,
-                contentCommentId = audioContentComment.id!!
+                commentParentId = parentId,
+                myMemberId = member.id
             )
         )
     }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentCommentIdResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentCommentIdResponse.kt
deleted file mode 100644
index 6fd6d89..0000000
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentCommentIdResponse.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package kr.co.vividnext.sodalive.content.comment
-
-data class FindPushTokenByContentCommentIdResponse(
-    val pushToken: String,
-    val container: String
-)
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse.kt
new file mode 100644
index 0000000..1876da4
--- /dev/null
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse.kt
@@ -0,0 +1,8 @@
+package kr.co.vividnext.sodalive.content.comment
+
+import com.querydsl.core.annotations.QueryProjection
+
+data class FindPushTokenByContentIdAndCommentParentIdMyMemberIdResponse @QueryProjection constructor(
+    val pushToken: String,
+    val container: String
+)
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
index 8b0c4d9..32a1236 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
@@ -25,7 +25,8 @@ class FcmEvent(
     val contentId: Long? = null,
     val messageId: Long? = null,
     val creatorId: Long? = null,
-    val contentCommentId: Long? = null
+    val commentParentId: Long? = null,
+    val myMemberId: Long? = null
 )
 
 @Component
@@ -228,17 +229,45 @@ class FcmSendListener(
             }
 
             FcmEventType.CREATE_CONTENT_COMMENT -> {
-                if (fcmEvent.contentCommentId != null && fcmEvent.contentId != null) {
-                    val response = contentCommentRepository.findPushTokenByContentCommentId(
-                        contentCommentId = fcmEvent.contentCommentId
+                if (fcmEvent.myMemberId != null && fcmEvent.contentId != null) {
+                    val response = contentCommentRepository.findPushTokenByContentIdAndCommentParentIdMyMemberId(
+                        contentId = fcmEvent.contentId,
+                        commentParentId = fcmEvent.commentParentId,
+                        myMemberId = fcmEvent.myMemberId
                     )
 
-                    if (response != null) {
+                    val iosPushTokens = response
+                        .asSequence()
+                        .distinct()
+                        .filter { it.pushToken.isNotBlank() }
+                        .filter { it.container == "ios" }
+                        .map { it.pushToken }
+                        .toList()
+
+                    val aosPushTokens = response
+                        .asSequence()
+                        .distinct()
+                        .filter { it.pushToken.isNotBlank() }
+                        .filter { it.container == "aos" }
+                        .map { it.pushToken }
+                        .toList()
+
+                    if (iosPushTokens.isNotEmpty()) {
                         pushService.send(
-                            tokens = listOf(response.pushToken),
+                            tokens = iosPushTokens,
                             title = fcmEvent.title,
                             message = fcmEvent.message,
-                            container = response.container,
+                            container = "ios",
+                            contentId = fcmEvent.contentId
+                        )
+                    }
+
+                    if (aosPushTokens.isNotEmpty()) {
+                        pushService.send(
+                            tokens = aosPushTokens,
+                            title = fcmEvent.title,
+                            message = fcmEvent.message,
+                            container = "aos",
                             contentId = fcmEvent.contentId
                         )
                     }