diff --git a/src/main/java/me/dev/oliver/mytube/controller/VideoController.java b/src/main/java/me/dev/oliver/mytube/controller/VideoController.java
index 3d2dbe4..623d766 100644
--- a/src/main/java/me/dev/oliver/mytube/controller/VideoController.java
+++ b/src/main/java/me/dev/oliver/mytube/controller/VideoController.java
@@ -1,13 +1,11 @@
 package me.dev.oliver.mytube.controller;
 
-import java.io.IOException;
 import javax.validation.Valid;
 import lombok.AllArgsConstructor;
 import me.dev.oliver.mytube.dto.VideoLikeDto;
+import me.dev.oliver.mytube.dto.VideoUploadDto;
 import me.dev.oliver.mytube.dto.VideoWatchDto;
 import me.dev.oliver.mytube.service.VideoService;
-import org.apache.ibatis.annotations.Delete;
-import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -25,17 +23,27 @@ public class VideoController {
   private final VideoService videoService;
 
   /**
-   * 동영상 및 세부 사항 업로드
+   * 동영상 업로드
+   * 주의) uploadVideoInfo 메서드와 같이 사용해야함.
    *
-   * @param multipartFile 동영상 파일을 및 userId, title, detail contents를 받아옴
+   * @param multipartFile 동영상 파일을 및 userId, title, detail contents를 받아옴.
    */
   @PostMapping
-  public void uploadVideo(@RequestParam("fileVideo") MultipartFile multipartFile,
-      @Valid @RequestParam String userId,
-      @Valid @RequestParam String title,
-      @Valid @RequestParam String detailContents) throws IOException {
+  public void uploadVideo(@RequestParam("fileVideo") MultipartFile multipartFile) {
 
-    videoService.uploadVideo(multipartFile, userId, title, detailContents);
+    videoService.uploadVideo(multipartFile);
+  }
+
+  /**
+   * 동영상에 필요한 정보들을 업로드.
+   * 주의) uploadVideo 메서드와 같이 사용해야함.
+   *
+   * @param videoUploadDto userId, title, detailContents를 받아옴.
+   */
+  @PostMapping("infos")
+  public void uploadVideoInfo(@Valid @RequestBody VideoUploadDto videoUploadDto) {
+
+    videoService.uploadDetailInfo(videoUploadDto);
   }
 
   /**
diff --git a/src/main/java/me/dev/oliver/mytube/service/VideoService.java b/src/main/java/me/dev/oliver/mytube/service/VideoService.java
index efa9642..c160b7d 100644
--- a/src/main/java/me/dev/oliver/mytube/service/VideoService.java
+++ b/src/main/java/me/dev/oliver/mytube/service/VideoService.java
@@ -36,16 +36,9 @@ public class VideoService {
    * amazon s3에 동영상 업로드 및 file size는 byte 단위로 저장됨, 동영상 컨텐츠 내의 세부사항 기록 db에 저장.
    *
    * @param multipartFile  게시물 관련 정보를 담은 객체
-   * @param userId         회원 아이디
-   * @param title          동영상 제목
-   * @param detailContents 동영상에 대한 세부 내용
    */
-  @Transactional
   @LoginValidation
-  public void uploadVideo(MultipartFile multipartFile,
-      String userId,
-      String title,
-      String detailContents) {
+  public void uploadVideo(MultipartFile multipartFile) {
 
     String fileName = multipartFile.getOriginalFilename();
 
@@ -59,20 +52,27 @@ public void uploadVideo(MultipartFile multipartFile,
       long fileSize = multipartFile.getSize();
 
       VideoUploadDto videoUploadDto = VideoUploadDto.builder()
-          .userId(userId)
-          .title(title)
-          .detailContents(detailContents)
           .fileUrl(fileUrl)
           .fileSize(fileSize)
           .build();
       videoMapper.insertVideo(videoUploadDto);
-      videoMapper.insertDetailInfo(videoUploadDto);
     } catch (RuntimeException e) {
       log.error("uploadVideo 메서드에서 {} file 처리 중 에러가 발생했습니다. s3 활성화 유무와 관련 정보를 확인하십시오", fileName, e);
       throw new IllegalStateException("서버에서 파일 처리중 예상치 못한 에러가 발생했습니다");
     }
   }
 
+  /**
+   * 동영상 파일과 관련된 세부 정보를 업로드.
+   *
+   * @param videoUploadDto userId, title, detailContents를 받아옴.
+   */
+  @LoginValidation
+  public void uploadDetailInfo(VideoUploadDto videoUploadDto) {
+
+    videoMapper.insertDetailInfo(videoUploadDto);
+  }
+
   /**
    * 동영상 조회 특성상 여러 유저가 접근했을 때 데이터베이스에 데이터 요청 수를 줄이기 위해 caching을 사용.
    * caching 할 때 key는 id를 사용, value는 getVideoInfo() 메서드의 return 값을 사용함.