diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionController.kt
index ab1e9ef..ebba99c 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionController.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionController.kt
@@ -4,6 +4,7 @@ import kr.co.vividnext.sodalive.common.ApiResponse
 import org.springframework.data.domain.Pageable
 import org.springframework.security.access.prepost.PreAuthorize
 import org.springframework.web.bind.annotation.GetMapping
+import org.springframework.web.bind.annotation.PathVariable
 import org.springframework.web.bind.annotation.PostMapping
 import org.springframework.web.bind.annotation.PutMapping
 import org.springframework.web.bind.annotation.RequestMapping
@@ -34,4 +35,9 @@ class AdminAuditionController(private val service: AdminAuditionService) {
             limit = pageable.pageSize.toLong()
         )
     )
+
+    @GetMapping("/{id}")
+    fun getAuditionDetail(@PathVariable id: Long) = ApiResponse.ok(
+        service.getAuditionDetail(auditionId = id)
+    )
 }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionRepository.kt
index f548802..6e0ad41 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionRepository.kt
@@ -1,11 +1,13 @@
 package kr.co.vividnext.sodalive.admin.audition
 
+import com.querydsl.core.group.GroupBy.list
 import com.querydsl.core.types.dsl.DateTimePath
 import com.querydsl.core.types.dsl.Expressions
 import com.querydsl.core.types.dsl.StringTemplate
 import com.querydsl.jpa.impl.JPAQueryFactory
 import kr.co.vividnext.sodalive.audition.Audition
 import kr.co.vividnext.sodalive.audition.QAudition.audition
+import kr.co.vividnext.sodalive.audition.QAuditionRole.auditionRole
 import org.springframework.beans.factory.annotation.Value
 import org.springframework.data.jpa.repository.JpaRepository
 import org.springframework.stereotype.Repository
@@ -17,6 +19,7 @@ interface AdminAuditionRepository : JpaRepository<Audition, Long>, AdminAudition
 interface AdminAuditionQueryRepository {
     fun getAuditionList(offset: Long, limit: Long): List<GetAuditionListItem>
     fun getAuditionListCount(): Int
+    fun getAuditionDetail(auditionId: Long): GetAuditionDetailResponse
 }
 
 class AdminAuditionQueryRepositoryImpl(
@@ -54,6 +57,30 @@ class AdminAuditionQueryRepositoryImpl(
             .size
     }
 
+    override fun getAuditionDetail(auditionId: Long): GetAuditionDetailResponse {
+        return queryFactory
+            .select(
+                QGetAuditionDetailResponse(
+                    audition.id,
+                    audition.title,
+                    audition.imagePath.prepend("/").prepend(coverImageHost),
+                    audition.information,
+                    audition.originalWorkUrl,
+                    list(
+                        QGetAuditionDetailRole(
+                            auditionRole.id,
+                            auditionRole.name,
+                            auditionRole.imagePath.prepend("/").prepend(coverImageHost)
+                        )
+                    )
+                )
+            )
+            .from(audition)
+            .leftJoin(auditionRole).on(auditionRole.audition.id.eq(audition.id))
+            .where(audition.id.eq(auditionId))
+            .fetchFirst()
+    }
+
     private fun getFormattedDate(dateTimePath: DateTimePath<LocalDateTime>): StringTemplate {
         return Expressions.stringTemplate(
             "DATE_FORMAT({0}, {1})",
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionService.kt
index bfec948..5127a00 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/AdminAuditionService.kt
@@ -87,4 +87,8 @@ class AdminAuditionService(
         val items = repository.getAuditionList(offset = offset, limit = limit)
         return GetAuditionListResponse(totalCount, items)
     }
+
+    fun getAuditionDetail(auditionId: Long): GetAuditionDetailResponse {
+        return repository.getAuditionDetail(auditionId = auditionId)
+    }
 }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/GetAuditionDetailResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/GetAuditionDetailResponse.kt
new file mode 100644
index 0000000..803aca6
--- /dev/null
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/GetAuditionDetailResponse.kt
@@ -0,0 +1,18 @@
+package kr.co.vividnext.sodalive.admin.audition
+
+import com.querydsl.core.annotations.QueryProjection
+
+data class GetAuditionDetailResponse @QueryProjection constructor(
+    val id: Long,
+    val title: String,
+    val imageUrl: String,
+    val information: String,
+    val originalWorkUrl: String,
+    val roleList: List<GetAuditionDetailRole> = listOf()
+)
+
+data class GetAuditionDetailRole @QueryProjection constructor(
+    val id: Long,
+    val name: String,
+    val imageUrl: String
+)