개발 slecs

운세박스 배포 스크립트에서 사이트명 옵션을 명시화해 안전성 향상

목차

publish.sh 에서 insert_meta_post 호출 시 --site-name 옵션을 명시적으로 전달하는 작업을 했다.

왜 옵션을 명시화했는가

원래는 insert_meta_post 가 내부적으로 기본값(혹은 환경변수)에 의존해서 사이트명을 결정했을 것 같다. 그런데 여러 사이트를 다루는 publish 파이프라인이 커지면서 '어느 사이트로 메타 데이터를 삽입할 건지' 암묵적으로 남겨두는 게 위험해 보였다.

배시 스크립트에서는 이런 상황이 자주 일어난다. 함수나 커맨드가 "설정 파일에서 읽을 거야" 또는 "환경변수에서 읽을 거야" 같은 암묵적 규칙에 의존하면, 나중에 스크립트를 유지보수하는 사람(팀원, 미래의 나)이 헷갈리기 쉽다. 특히 배포 관련 스크립트는 예상과 다르게 동작할 때 영향이 크다.

# Before: 기본값에 의존
insert_meta_post --title "..." --content "..."

# After: 명시적으로 사이트명 지정
insert_meta_post --site-name "운세박스" --title "..." --content "..."

이렇게 하면 뭐가 좋은가

의도의 명확성: 이 스크립트가 정확히 어느 사이트로 publish 하는지 한눈에 보인다. 코드 리뷰할 때도 "아, 이건 운세박스용이구나" 하고 빠르게 파악할 수 있다.

에러 가능성 감소: 환경변수가 제대로 설정되지 않아서 예상과 다른 사이트로 publish 되는 실수를 미리 방지한다. CI/CD 환경에서 특히 중요한데, 개발 로컬 환경과 실 배포 환경의 설정이 다를 수 있기 때문이다.

유지보수성: 나중에 누군가 이 스크립트를 새 사이트로 확장하거나 수정할 때, "어? 사이트명은 어디서 읽는 거지?" 하고 고민할 필요가 없다. --site-name 인자를 받는 방식이 명확하니까 필요하면 그냥 복사하고 값만 바꾸면 된다.

스크립트에서 옵션 명시화의 패턴

배시 스크립트 작성할 때 이런 원칙을 자주 적용한다:

  • 설정 파일/환경변수에만 의존하지 말 것: 스크립트의 입력을 명시적인 옵션으로 받으면 재사용성과 테스트 가능성이 올라간다.
  • 함수 호출할 때 필수 인자는 빠짐없이: 기본값이 있더라도, 호출 쪽에서 명시적으로 전달하면 의도가 드러난다.
  • 여러 변형이 필요한 경우 함수 인자로: 사이트별로 다른 처리가 필요하면 site-name 처럼 파라미터로 받는 게 깔끔하다.

이번 작업이 사소해 보일 수 있지만, 팀 규모가 커지고 자동화 스크립트가 많아질수록 "누가 봐도 이해할 수 있는 코드"의 가치가 크다. 특히 배포 관련 스크립트는 한 번의 실수가 서비스 장애로 이어질 수 있으니, 암묵적인 규칙보다는 명시적인 지시가 훨씬 안전하다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.