diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayController.kt
new file mode 100644
index 0000000..c9b3739
--- /dev/null
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayController.kt
@@ -0,0 +1,22 @@
+package kr.co.vividnext.sodalive.content.main.tab.replay
+
+import kr.co.vividnext.sodalive.common.ApiResponse
+import kr.co.vividnext.sodalive.common.SodaException
+import kr.co.vividnext.sodalive.member.Member
+import org.springframework.security.core.annotation.AuthenticationPrincipal
+import org.springframework.web.bind.annotation.GetMapping
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
+
+@RestController
+@RequestMapping("/v2/audio-content/main/replay")
+class AudioContentMainTabLiveReplayController(private val service: AudioContentMainTabLiveReplayService) {
+    @GetMapping
+    fun fetchContentMainTabLiveReplay(
+        @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
+    ) = run {
+        if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
+
+        ApiResponse.ok(service.fetchData(member))
+    }
+}
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayService.kt
new file mode 100644
index 0000000..560ca76
--- /dev/null
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/AudioContentMainTabLiveReplayService.kt
@@ -0,0 +1,84 @@
+package kr.co.vividnext.sodalive.content.main.tab.replay
+
+import kr.co.vividnext.sodalive.content.AudioContentRepository
+import kr.co.vividnext.sodalive.content.ContentType
+import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerService
+import kr.co.vividnext.sodalive.content.main.curation.AudioContentCurationQueryRepository
+import kr.co.vividnext.sodalive.content.main.tab.GetContentCurationResponse
+import kr.co.vividnext.sodalive.event.EventService
+import kr.co.vividnext.sodalive.member.Member
+import kr.co.vividnext.sodalive.rank.RankingService
+import org.springframework.stereotype.Service
+import java.time.DayOfWeek
+import java.time.LocalDateTime
+import java.time.temporal.TemporalAdjusters
+
+@Service
+class AudioContentMainTabLiveReplayService(
+    private val bannerService: AudioContentBannerService,
+    private val contentRepository: AudioContentRepository,
+    private val rankingService: RankingService,
+    private val eventService: EventService,
+    private val curationRepository: AudioContentCurationQueryRepository
+) {
+    fun fetchData(member: Member): GetContentMainTabLiveReplayResponse {
+        val isAdult = member.auth != null
+        val memberId = member.id!!
+        val theme = "다시듣기"
+        val tabId = 6L
+
+        val contentBannerList = bannerService.getBannerList(
+            tabId = tabId,
+            memberId = memberId,
+            isAdult = isAdult
+        )
+
+        val newLiveReplayContentList = contentRepository.findByTheme(
+            memberId = memberId,
+            theme = theme,
+            isAdult = isAdult,
+            contentType = ContentType.ALL,
+            limit = 10
+        )
+
+        val currentDateTime = LocalDateTime.now()
+        val startDate = currentDateTime
+            .withHour(15)
+            .withMinute(0)
+            .withSecond(0)
+            .minusWeeks(1)
+            .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
+        val endDate = startDate
+            .plusDays(6)
+
+        val rankLiveReplayContentList = rankingService.getContentRanking(
+            memberId = memberId,
+            isAdult = isAdult,
+            startDate = startDate,
+            endDate = endDate,
+            theme = theme
+        )
+
+        val eventBannerList = eventService.getEventList(isAdult = isAdult)
+
+        val curationList = curationRepository.findByContentMainTabId(tabId = tabId, isAdult = isAdult)
+            .map {
+                GetContentCurationResponse(
+                    title = it.title,
+                    items = contentRepository.findAudioContentByCurationId(
+                        curationId = it.id!!,
+                        isAdult = isAdult,
+                        contentType = ContentType.ALL
+                    )
+                )
+            }
+
+        return GetContentMainTabLiveReplayResponse(
+            contentBannerList = contentBannerList,
+            newLiveReplayContentList = newLiveReplayContentList,
+            rankLiveReplayContentList = rankLiveReplayContentList,
+            eventBannerList = eventBannerList,
+            curationList = curationList
+        )
+    }
+}
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/GetContentMainTabLiveReplayResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/GetContentMainTabLiveReplayResponse.kt
new file mode 100644
index 0000000..eea8309
--- /dev/null
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/tab/replay/GetContentMainTabLiveReplayResponse.kt
@@ -0,0 +1,16 @@
+package kr.co.vividnext.sodalive.content.main.tab.replay
+
+import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem
+import kr.co.vividnext.sodalive.content.main.GetAudioContentRankingItem
+import kr.co.vividnext.sodalive.content.main.banner.GetAudioContentBannerResponse
+import kr.co.vividnext.sodalive.content.main.tab.GetContentCurationResponse
+import kr.co.vividnext.sodalive.event.GetEventResponse
+
+data class GetContentMainTabLiveReplayResponse(
+    val tabId: Long = 6,
+    val contentBannerList: List<GetAudioContentBannerResponse>,
+    val newLiveReplayContentList: List<GetAudioContentMainItem>,
+    val rankLiveReplayContentList: List<GetAudioContentRankingItem>,
+    val eventBannerList: GetEventResponse,
+    val curationList: List<GetContentCurationResponse>
+)