Next.js 보안 패치, 저장소 3개에 하루 만에 적용한 기록
Next.js 보안 업데이트가 나온 날, 플랜비·플랜씨·플랜엘 세 저장소에 같은 패치를 적용하며 정리한 1인 개발자의 유지보수 절차예요.
혼자 여러 서비스를 운영하면 보안 공지 하나가 그대로 그날 밤 할 일 목록이 돼요. 혹시 저장소마다 똑같은 패치를 복사해 붙이다가 하나를 빠뜨린 적 없나요?
지난 8월 30일이 그런 날이었어요. 인증 없이 원격 코드 실행이 가능한 취약점 수정이 포함된 Next.js 16.3.3이 나왔고, 제가 운영하는 플랜비(plan-b)·플랜씨(plan-c)·플랜엘(plan-l)이 모두 Next.js 기반이라 미룰 수가 없었어요.
세 저장소, 같은 패치
절차 자체는 단순해요. 4단계로 정리하면 이렇게 돼요.
직접 올려 보니 저장소마다 바뀐 파일은 3개씩이었어요. package.json과 pnpm-lock.yaml, 그리고 워크스페이스 설정 파일이에요. 세 저장소를 합치면 파일 9개가 하루의 패치 작업으로 갱신된 셈이에요. 업그레이드 뒤에는 빌드를 돌려 보고 나서야 커밋했어요.
나중에 커밋 로그를 확인해 보니 세 저장소의 커밋 시각이 초 단위까지 같았어요. 터미널 창을 나란히 띄워 두고 같은 명령을 이어서 실행한 흔적이 기록으로 남은 거예요.
커밋 메시지에 '왜'를 남기기
이번에 적용해 봤더니 가장 도움이 된 습관은 커밋 메시지에 이유를 적는 거였어요. "upgrade next to 16.3.3 for unauthenticated RCE fixes"처럼 버전과 이유를 함께 남기면, 몇 달 뒤 롤백을 고민할 때 커밋 하나만 보고 판단할 수 있어요.
버전만 덜렁 올라간 커밋은 시간이 지나면 왜 올렸는지 아무도 몰라요. 혼자 운영하면서 더 절실히 느끼는 부분이에요. 미래의 나는 남이거든요.
반복이 보이면 도구를 고민할 때
세 번째 저장소에서 같은 명령을 치면서 반복을 줄이고 싶다는 생각이 들었어요. 지금은 3개라 손으로 돌릴 만하지만, 저장소가 더 늘면 버전 확인부터 업그레이드까지 묶어 주는 작은 도구를 만들어 볼 생각이에요.
- 보안 패치는 그날 처리
- 커밋 메시지에 이유 남기기
- 같은 작업 3회면 자동화 검토
정리하면 세 가지예요. 보안 패치는 규모와 상관없이 그날 처리하고, 판단 근거는 커밋 메시지에 남기고, 같은 손동작이 세 번 반복되면 자동화를 검토해요. 1인 개발의 유지보수는 화려하지 않지만, 이런 작은 규칙이 서비스를 계속 굴러가게 해요.
관련 글
댓글
아직 댓글이 없어요. 첫 댓글을 남겨주세요.