인프런 커뮤니티 질문&답변

b0i4s님의 프로필 이미지
b0i4s

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

예제로 구현하는 파일 업로드, 다운로드

마지막 파일 저장 부분 전체적인 흐름 정리 질문

해결된 질문

작성

·

433

·

수정됨

0

전체적인 흐름에 있어서 생각하는 부분들이 맞는지에 대한 궁금증이 생겨 질문드립니다

다른 글들을 참고하였을 때

  1. Item은 현재, 별도의 DB가 없기 때문에 DB 역할을 하는 ItemRepository에 저장하기 위해 UploadFile(사용자가 업로드한 파일)를 사용하는 것이 맞나요?

  2. ItemForm은 form에서 넘어오는 file 타입을 저장하기 위해서는 MultipartFile 인터페이스를 사용해야 하기 때문에 MultipartFile 참조형을 가져오는 것이 맞나요?

  3. FileStore의 경우 실제 파일들이 저장되는 곳이며, 실제 파일들을 저장하고, Repository(실제 파일이 아닌 경로)에 저장하기 위해 형변환을 하는 역할을 하는 것이 맞나요?

  4. 김영한 강사님에 말씀에 따르면 Repository는 실제 파일들을 저장하는 곳이 아닌 경로를 저장하는 곳이라고 말씀하셨는데 이 말은 즉 Repository에는 경로를 저장하고 해당 실제 파일은 FileStore에 저장되어 있다가 Repository를 통해 호출되면 해당 파일이 호출되는 것이 맞는지 궁금합니다.

김영한 강사님께서 쉽고 자세하게 설명해주셨음에도 불구하고 이해가 많이 부족하여 여러가지 질문을 남깁니다...

답변 1

2

안녕하세요. BISoo님, 공식 서포터즈 David입니다.

  1. 네, 맞습니다.

  2. 네, 맞습니다.

  3. FileStore는 파일을 저장공간에 저장하는 역할을 담당합니다. FileStore에 파일이 저장되는 것은 아닙니다. 파일을 저장공간에 저장한 후 저장된 파일의 경로를 반환합니다.

  4. ItemRepository는 데이터베이스에 저장되어 있는 Item을 불러올 수 있습니다. 이때, Item에는 저장된 파일에 대한 정보가 함께 담겨 있습니다. 저장된 파일에 대한 정보를 가지고 저장공간에 저장된 파일을 불러옵니다. 이 과정이 35분 38초에서 보여지는 코드(downloadAttch 메서드)입니다.

감사합니다.


b0i4s님의 프로필 이미지
b0i4s
질문자

자세한 답변 감사합니다! 덕분에 잘못생각하고 있었던 부분도 바로 잡고 정리에 있어서 많은 도움이 되었습니다!

b0i4s님의 프로필 이미지
b0i4s

작성한 질문수

질문하기