[java] 스프링 부트와 하이버네이트를 사용한 파일 업로드 처리

파일 업로드는 웹 애플리케이션에서 자주 사용되는 기능 중 하나입니다. 이 포스트에서는 스프링 부트하이버네이트를 사용하여 파일 업로드를 처리하는 방법에 대해 살펴보겠습니다.

1. 스프링 부트 의존성 설정

먼저, 스프링 부트 프로젝트에 파일 업로드 기능을 추가하기 위해 다음과 같이 Maven 또는 Gradle을 사용하여 의존성을 추가해야 합니다.

Maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Gradle

implementation 'org.springframework.boot:spring-boot-starter-web'

2. 파일 업로드 요청 처리

이제 파일을 업로드하는 요청을 처리할 컨트롤러를 작성해야 합니다. 아래는 파일을 업로드하기 위한 REST API 컨트롤러의 예시입니다.

Java

@RestController
@RequestMapping("/api/files")
public class FileUploadController {

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) {
        // 파일 업로드 처리 로직
        return "File uploaded successfully";
    }
}

위 코드에서 @RequestParam("file") MultipartFile file은 업로드된 파일을 나타냅니다.

3. 하이버네이트를 사용한 파일 저장

파일 업로드 요청을 처리하고 나면, 이 파일을 서버에 저장해야 합니다. 하이버네이트를 사용하여 파일을 데이터베이스나 파일 시스템에 저장할 수 있습니다. 아래는 하이버네이트를 사용하여 파일을 데이터베이스에 저장하는 예시입니다.

Java

@Entity
@Table(name = "files")
public class File {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String fileName;

    @Lob
    private byte[] data;

    // 게터와 세터
}

위 코드에서 @Lob 어노테이션은 데이터베이스에 대용량 데이터를 저장하는데 사용됩니다.

마무리

이제, 스프링 부트하이버네이트를 사용하여 파일 업로드를 처리하는 방법에 대해 알아보았습니다. 파일 업로드는 보안상의 이유로 신중하게 처리해야 하며, 실제 환경에서 사용될 때에는 추가적인 보안 검사가 필요할 수 있습니다.

참고 자료: Spring Boot, Hibernate

관련 포스트: 하이버네이트를 사용한 자바 객체와 데이터베이스 연동

키워드: 스프링 부트, 하이버네이트, 파일 업로드, REST API, 데이터베이스 저장