메타코딩 SNS프로젝트

27. 프로필 페이지 - Image 업로드 경로를 프로젝트 외부에 두는 이유

정현3 2022. 6. 20. 21:25

우리가 프로젝트를 진행하고 있는 폴더는 EasyUp-Springboot-Photogram-Start 이다

그런데 왜 Image가 Upload되는 폴더의 경로를 이 폴더 내부의 static에 두지 않고, '외부'에 두었는지 설명하려고 한다

 

현재 '프로젝트 폴더'에는 .java파일이 있는데, 서버가 실행될때 여기있는 코드들은 컴파일되면서 .class파일로 변경되어 실행되게 된다. 

컴파일되면 프로젝트 폴더 내부 target이라는 경로에 .class파일이 들어가면서 파일이 실행되는 것이다.

우리가 프로젝트를 진행하고 있는 폴더 내부에 upload폴더가 존재한다면, 이 upload폴더 내부의 파일들도 target경로에 반영되어야 한다.

한마디로 Image파일도 반영이 된다는것인데, Image파일은 '컴파일' 되지 않고 '저장'만 된다.

이렇게 target폴더에 데이터들이 저장되는 행위를 Deploy(배포)라고 한다

 

서버가 실행되면서 파일들이 target에 Deploy(배포)때, 파일의 사이즈에 따라 저장되는 속도가 다르다. 

특히 동영상, 이미지 파일들은 용랑이 .java파일보다 수십배, 수천배까지 크다

즉, Image파일들이 Deploy되기도 전에 '서버'가 실행이 되버리기 떄문에 '클라이언트'가 페이지를 응답받았을때 이런 용량이 큰 파일들은 응답이 되지 않게 되버린다. 

결론은 경로가 외부에 있으면 deploy하지 않기 때문에 이런 문제가 발생하지 않는다는 것이다.