diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
index 7895ea5..7f12513 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendRepository.kt
@@ -44,6 +44,7 @@ class LiveRecommendRepository(
 
     fun getOnAirRecommendChannelList(
         memberId: Long,
+        isBlocked: (Long) -> Boolean,
         isAdult: Boolean
     ): List<GetRecommendChannelResponse> {
         var where = member.role.eq(MemberRole.CREATOR)
@@ -75,12 +76,16 @@ class LiveRecommendRepository(
             .orderBy(Expressions.numberTemplate(Double::class.java, "function('rand')").asc())
             .limit(20)
             .fetch()
+            .asSequence()
+            .filter { !isBlocked(it.creatorId) }
+            .toList()
     }
 
     fun getRecommendChannelList(
         memberId: Long,
         withOutCreatorList: List<Long>,
-        limit: Long
+        limit: Long,
+        isBlocked: (Long) -> Boolean
     ): List<GetRecommendChannelResponse> {
         val where = member.role.eq(MemberRole.CREATOR)
             .and(member.isActive.isTrue)
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendService.kt
index 9b400ae..5ffe915 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/recommend/LiveRecommendService.kt
@@ -1,10 +1,14 @@
 package kr.co.vividnext.sodalive.live.recommend
 
 import kr.co.vividnext.sodalive.member.Member
+import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
 import org.springframework.stereotype.Service
 
 @Service
-class LiveRecommendService(private val repository: LiveRecommendRepository) {
+class LiveRecommendService(
+    private val repository: LiveRecommendRepository,
+    private val blockMemberRepository: BlockMemberRepository
+) {
 
     fun getRecommendLive(member: Member): List<GetRecommendLiveResponse> {
         return repository.getRecommendLive(
@@ -14,7 +18,11 @@ class LiveRecommendService(private val repository: LiveRecommendRepository) {
     }
 
     fun getRecommendChannelList(member: Member): List<GetRecommendChannelResponse> {
-        val onAirChannelList = repository.getOnAirRecommendChannelList(member.id!!, isAdult = member.auth != null)
+        val onAirChannelList = repository.getOnAirRecommendChannelList(
+            member.id!!,
+            isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) },
+            isAdult = member.auth != null
+        )
 
         if (onAirChannelList.size >= 20) {
             return onAirChannelList
@@ -27,7 +35,8 @@ class LiveRecommendService(private val repository: LiveRecommendRepository) {
         val notOnAirCreatorList = repository.getRecommendChannelList(
             member.id!!,
             withOutCreatorList = onAirCreatorIdList,
-            limit = (20 - onAirChannelList.size).toLong()
+            limit = (20 - onAirChannelList.size).toLong(),
+            isBlocked = { blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it) }
         )
 
         return onAirChannelList + notOnAirCreatorList
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt
index 50d6a21..4de90c2 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomService.kt
@@ -115,9 +115,13 @@ class LiveRoomService(
                 isAdult = member.auth != null
             )
             .asSequence()
+            .filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.member!!.id!!) }
             .map {
                 val roomInfo = roomInfoRepository.findByIdOrNull(it.id!!)
 
+                val reservations = it.reservations
+                    .filter { reservation -> reservation.member!!.id!! == member.id!! && reservation.isActive }
+
                 val beginDateTime = it.beginDateTime
                     .atZone(ZoneId.of("UTC"))
                     .withZoneSameInstant(ZoneId.of(timezone))
@@ -138,13 +142,17 @@ class LiveRoomService(
                     channelName = it.channelName,
                     managerNickname = it.member!!.nickname,
                     managerId = it.member!!.id!!,
-                    tags = listOf(),
+                    tags = it.tags
+                        .asSequence()
+                        .filter { tag -> tag.tag.isActive }
+                        .map { tag -> tag.tag.tag }
+                        .toList(),
                     coverImageUrl = if (it.coverImage!!.startsWith("https://")) {
                         it.coverImage!!
                     } else {
                         "$cloudFrontHost/${it.coverImage!!}"
                     },
-                    isReservation = false,
+                    isReservation = reservations.isNotEmpty(),
                     isPrivateRoom = it.type == LiveRoomType.PRIVATE
                 )
             }
@@ -742,7 +750,7 @@ class LiveRoomService(
             isSpeaker = isSpeaker,
             isManager = isManager,
             isFollowing = isFollowing,
-            isBlock = false
+            isBlock = blockMemberRepository.isBlocked(blockedMemberId = userResponse.id, memberId = memberResponse.id)
         )
     }