작성
·
429
0
src에서 정적 에셋을 관리할 경우
src 안의 파일은 삭제하거나 오타를 내면 빌드 실패로 알 수 있으나, public 폴더는 그게 불가능해서 위험함
public 이미지는 캐시되어서 변경되었을 경우 바뀌지 않을 수 있음
javascript에서 모듈 형식으로 import 가능
라는 장단점을 찾았는데, public에서 관리할 경우의 장점은 무엇이 있을까요?
그리고 public에서 관리되는 에셋은 왜 Javascript 코드 내에서 사용하지 말아야 할까요? Vite 공식 문서에도 사용하지 말라는 설명은 있는데, 이유가 궁금합니다. 우선 src 안의 파일은 삭제하거나 오타를 내면 빌드 실패로 알 수 있으나, public 폴더는 그게 불가능해서 위험함 이게 이유 같긴 한데요. 더 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
태림님의 질문에 답변드리겠습니다. public에서 정적 에셋을 관리할 경우의 장점 중 하나는 간단하게 콘텐츠를 제공할 수 있다는 것입니다. 예를 들어, 빌드 과정 없이 직접적으로 참조할 수 있는 정적 파일을 제공하고자 할 때 public 폴더를 사용합니다. 또한, 브라우저 캐시를 활용하여 반복되는 요청을 줄이고 성능을 향상시킬 수도 있습니다.
public 폴더 내의 에셋을 Javascript 코드에서 사용하지 말아야 하는 이유는 여러 가지가 있습니다. 예를 들어, public 폴더의 에셋은 웹팩 같은 모듈 번들러를 통해서 처리되지 않기 때문에 빌드 최적화의 혜택을 받지 못하고, 에셋의 참조가 끊어지거나 변경되었을 때 이를 감지하기 어렵습니다. 이로 인해 프로덕션 환경에서 오류가 발생할 가능성이 증가합니다. 또한, 모듈 시스템을 통해 관리할 경우 의존 관계가 명확해지고 더 나은 프로젝트 구조를 유지할 수 있습니다.
실제로 정적 자원 버전 관리의 한 예시로 Spring Boot에서는 설정을 통해 정적 자원에 대한 버전 관리 전략을 구성할 수 있는데 이는 spring.web.resources
설정을 통해 이루어집니다. 예를 들어 특정 경로의 자바스크립트 모듈에 고정된 버전 전략을 사용하도록 설정할 수 있으며, Spring Boot 문서에서 이에 대한 자세한 정보를 확인할 수 있습니다.
더 자세한 내용을 원하시면 Vite 공식 문서나 해당 웹 프레임워크의 공식 문서를 참고하는 것이 좋습니다.