전 제작일지에서도 언급했듯, SharedArrayBuffer 사용을 위해선 사이트 격리를 위한 헤더 추가가 필요한데, snowpack에는 dev server의 응답 헤더를 수정하는 기능이 없습니다. 억지로 node_modules/snowpack/lib/cjs/commands/dev.js 파일을 수정하여 응답 헤더를 추가해줬습니다.
headers로 검색하면 찾으실 수 있을 겁니다. 글을 작성하는 시점엔 120번 줄부터 위 코드가 시작됩니다.
결과 화면 업데이트
원본과 변환된 결과를 비교할 수 있게 업데이트했습니다.
메모리 누수 해결
URL.createObjectURL로 생성한 객체 URL을 더 사용하지 않을 땐URL.revokeObjectURL로 메모리에서 해제해줘야 합니다.
지금까지 이 기본적인 걸 안 하고 있어서 허구한 날 오류 페이지를 보고 있어야 했습니다…
파일 이름 수정
원본 파일의 확장자를 제대로 제거하지 못하던 오류를 수정했고, fileExtension으로 변환된 blob의 type을 넘겨줘 코드를 훨씬 간결하게 수정했습니다.
Expires 헤더 기간 단축
보통 아무리 오래전에 작성한 코드라도 다시 보면 그때 무슨 생각으로 이 코드를 썼는지 기억이 나던데, 대체 왜 js, css 파일 등에 expires를 1년 정도 추가해뒀는지는 알 수가 없네요.
아마 수정할 일이 없으리라 생각하고 그랬지 싶은데, '여긴 이제 건드릴 일 없겠지'라고 생각하면 보통 수정할 일이 생기더라고요.