Next.js
에서 SSG를 보면서 참 의문이 들었었다.
<aside> 💡 그래서, 정적 데이터를 빌드 타임에서 캐싱하면 무슨 이득이 있는 걸까...?
</aside>
그저 '빠르다'로 대체하기엔 너무나 납득이 되지 않았다. 현재 많은 프로젝트들이 데이터가 동적으로 interactive하게 렌더링이 되고, 이러한 상황에서 정적인 데이터 캐싱은 서버 응답 과부하를 줄여주는 데에는 도움이 될지는 몰라도, UX에서는 현저하게 떨어질 것이라 생각했기 때문이다.
그런데, 오늘 Next.js
에서 revalidate
라는 옵션이 있다는 것을 알았다.
쉽게 말하자면, 빌드 타임에서 캐싱에 대해 Max-Age
를 주는 느낌이었다. 따라서 빌드 타임 캐싱을 원하는 시간 때마다 interval
하게 업데이트할 수 있는 것이다.
어쩌면, 이러한 렌더링 방식을 토대로, 마치 배치의 효과를 얻을 수 있을 거 같다는 느낌이 들었고, 따라서 통계할 때 적용해보고 싶기도 하다. (통계는 실시간으로 빠르게 살피기보다는, 하루에 한 번 분석하는 것이 더욱 권장된다고 생각하기 때문이다)
결국 squash
옵션의 특징은 '한 데 모아서 처리하는 것'이라고 생각한다.
따라서 오늘은 rebase -i
에서 스쿼시를 통해 합치고 싶은 로직들을 간단히 합쳐서 처리할 수 있었다.
참고로 pick
은 변하지 않는 것, squash
는 합치고 싶은 것이라 보면 된다. 나중에 까먹지 말자!