[kotlin] 코틀린 서버 사이드 개발에서 파일 업로드 및 다운로드 처리

서버 측 애플리케이션을 개발할 때 파일 업로드와 다운로드 기능은 매우 중요합니다. 여기에서는 코틀린을 사용하여 서버 측 애플리케이션에서 파일 업로드와 다운로드를 다루는 방법을 알아보겠습니다.

파일 업로드

Mulitpart 요청 처리

클라이언트로부터 파일을 업로드하기 위해서는 multipart/form-data 형식의 요청을 처리해야 합니다. Spring 프레임워크의 @RequestPart@RequestParam 애노테이션을 사용하여 이러한 종류의 요청을 처리할 수 있습니다.

아래는 코틀린과 스프링 프레임워크를 사용하여 파일을 업로드하는 간단한 예제 코드입니다.

@PostMapping("/upload")
fun uploadFile(@RequestPart file: MultipartFile) {
    // 파일 처리 로직 구현
}

이제 클라이언트에서 multipart/form-data 형식으로 파일을 업로드할 수 있습니다.

파일 다운로드

HTTP Response에 파일 포함

파일을 다운로드하려면 웹 서버가 해당 파일을 클라이언트에게 보내야 합니다. 이를 위해 HTTP response에 파일을 첨부하여 보내야 합니다. 스프링 프레임워크를 사용한다면, ResponseEntity를 사용하여 파일을 HTTP response에 첨부할 수 있습니다.

아래는 코틀린과 스프링 프레임워크를 사용하여 파일을 다운로드하는 간단한 예제 코드입니다.

@GetMapping("/download")
fun downloadFile(): ResponseEntity<ByteArrayResource> {
    // 파일 가져오는 로직 구현
    val file = ... // 파일 가져오기

    return ResponseEntity.ok()
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.filename + "\"")
            .body(ByteArrayResource(file.readBytes()))
}

이제 클라이언트는 /download 엔드포인트에 HTTP 요청을 보내면 파일을 다운로드할 수 있습니다.

위의 예제 코드는 스프링 프레임워크를 사용한 예제이지만, 다른 웹 프레임워크나 라이브러리에서도 비슷한 방식으로 파일 업로드와 다운로드를 처리할 수 있습니다.

파일 업로드와 다운로드는 웹 애플리케이션에서 매우 중요한 기능이며, 코틀린을 사용하여 간단하게 이를 처리할 수 있습니다.

이상으로 코틀린을 사용한 서버 측 애플리케이션에서의 파일 업로드 및 다운로드 처리 방법에 대해 알아보았습니다.

참고 자료