Go로 작성된 정적 사이트 생성기에 라이브 리로드 추가하기
Lumaca라는 Go 언어로 작성된 최소한의 정적 사이트 생성기에 라이브 리로드 기능을 추가하는 방법을 소개합니다.
핵심 기술로는 fsnotify 라이브러리를 활용한 파일 감시, 디바운싱(debouncing) 기법으로 중복 빌드를 방지하며, Server-Sent Events(SSE)를 통해 서버에서 클라이언트 브라우저로 변경 알림을 실시간 전송합니다.
또한, 개발 서버에서 HTML 응답에 자동으로 라이브 리로드용 자바스크립트 코드를 주입하는 미들웨어를 구현하여, 파일 변경 시 브라우저가 자동으로 새로고침되도록 합니다.
이 접근법은 복잡한 WebSocket 대신 SSE를 사용해 단방향 통신을 간단하게 처리하며, 여러 브라우저 탭을 지원하는 브로커 패턴도 포함되어 있어 개발 생산성을 높입니다.