"Chunk hash"는 웹 개발과 같은 프로그래밍 컨텍스트에서 주로 사용되며, 특히 웹팩(Webpack)과 같은 모듈 번들러에서 자주 볼 수 있습니다. 이 용어는 빌드 과정에서 생성된 "chunk"라는 코드 덩어리나 파일에 부여되는 고유한 해시 값을 나타냅니다.
웹팩 같은 도구를 사용할 때, 전체 프로젝트를 작은 "chunk"들로 분할하게 됩니다. 이러한 chunk들은 별도의 JavaScript 파일이거나 CSS 파일 등이 될 수 있습니다. 각각의 chunk에는 고유한 해시 값이 할당되어, 이를 통해 캐싱과 같은 최적화를 수행합니다.
예를 들어, 사용자가 웹 페이지를 새로고침할 때마다 모든 코드를 다시 다운로드하는 것은 비효율적입니다. 대신 해시 값이 변경되지 않았다면, 캐싱된 버전을 사용하여 불필요한 다운로드를 방지할 수 있습니다. 만약 코드의 일부가 변경되었다면, 해당 chunk의 해시 값만 바뀌게 되어 사용자는 변경된 부분만 새로 다운로드하게 됩니다. 이러한 방식은 네트워크 자원을 효율적으로 사용하게 해주며, 웹 애플리케이션의 로딩 시간을 개선하는 데 도움이 됩니다
ex) deduplication system에서 파일을 작은 청크 (8kb)로 나눔 모든 청크들은 20byte SHA-1 fingerprint로 hashed됨 기존 hash가 존재하면 기존 fingerprint를 가르키고 새로운 fingerprint라면 chunk가 새로운 것으로 가정하고 저장함 고려해야하는 점은 flash store에 작성할때 chunk들은 일단 in memory wrrte buffer에 저장되고 buffer가 가득 차면 한번에 flush하는 방식으로 구현함