Web
Django) static file & media file
서영환
2024. 10. 1. 20:06
Static File
- 이미지, CSS, JavaScript 파일과 같이 서버에서 변하지 않는 파일을 의미
- 사용자에게 제공되는 동안 별도로 처리되거나 수정되지 않고 고정된 상태로 제공
- 대체적으로 settings.py를 수정 하지 않을 경우 /static/ 경로를 가지며 배포 할 때에는 settings.py에 STATIC_ROOT를 설정해 주어여 한다
Media File
- 사용자가 업로드하는 파일
- 해당 부분을 관리하기 위해 pillow 패키지를 설치하고 settings.py에 설정을 해주어야한다. 그리고 urls.py에서도 셋팅을 해주어야 한다
배포를 생각하기 전인 개발 단계에서는 로컬에서 관리하면 되는 부분이라 따로 신경을 쓰지 않아도 문제가 없다. 문제는 배포때 발생한다.
기본적으로 Static File의 경우 github 에 같이 올려도 된다. 이유는 위에 설명한대로 서버에서 변하지 않고 사용자에게 제공해야 하는 파일들이다. 그래서 올려도 된다기 보다는 프로젝트가 정상적으로 구동될려면 올려야만 한다.
그에 반해 Media File의 경우에는 올리면 안된다. 이유는 개발 중 테스트중에 올라가는 파일들로 서버 입장에서 보면 더미파일일 뿐이다. 그러나 초기 셋팅이 필요하면 github 에 올리기 보다는 일다는 개발자가 가지고 있다가 배포가 끝난 뒤 셋팅으로 잡는게 어찌보면 더 좋은 방향인거같다.
물론 github에 올려도 되기는 한데 한번 배포하고 추후 유지보수를 할 예정이라면 github에 올리지 않는 것을 추천한다. 이유는 git에서는 한번 주시하게 된 폴더나 파일은 gitignore에 등록이 되어 있다고 해도 계속 주시하게 되어 추후 유지보수시 더미데이터가 올라갈 가능성이있다. 물론 해당 부분을 git add &commit 때 제외하면 되지만 계속 제외해줘야하는 수고로운이 있으니 웬만해서는 올리지 말자.