블로그를 Jekyll로 옮기고 난 후, 지금까지 약 한 달 반 정도가 지났습니다. 그 과정에서 제가 필요하다고 생각한 여러 기능들을 세팅했고, 취향껏 블로그를 커스터마이징했습니다. 하지만 마음에 안 드는 것이 하나 있었는데, 그것은 바로 서버를 켜는 과정이었습니다. Ruby가 실행된 콘솔을 켜서, 블로그가 위치한 로컬 저장소 디렉토리로 이동한 후 서버를 켜야 했는데… 매번 서버를 켤 때마다 이 귀찮은 짓을 하기가 싫었습니다. 블로그를 앞으로 한 두 번 들어갈 것도 아니라서, 이왕 생각난 김에 자동화를 하는 프로그램을 만들기로 결정했습니다.
사실 결과물만 보면 엄청 간단한 프로그램인데, 저는 이런 종류의 자동화는 처음 시도해보는 것이라 자료를 찾아보고 삽질을 하느라 시간이 좀 오래 걸렸습니다. 그래도 제가 느낀 귀찮음을 스스로 만든 프로그램으로 해결했다는 점에 의의를 두는 걸로…
이거 좀 귀찮은데
아래의 사진들은 제가 이 전까지 서버를 켜던 방법입니다.
윈도우 검색창에서 예전에 설치한 Start Command Prompt with Ruby를 켭니다.
그 다음 윈도우 탐색기를 열어 로컬 컴퓨터에 설치된 블로그 저장소를 열어 주소를 복사합니다.
명령 프롬프트에서 cd 로컬에 설치된 블로그 저장소 디렉토리
로 이동한 다음, bundle exec jekyll serve
명령어를 입력합니다.
그럼 이제부터 localhost:4000
에서 서버를 확인할 수 있습니다.
세상에, 서버를 켜는 데 무려 4단계가 듭니다. ‘간단한 거 아닌가’라고 생각하실 수 있지만, 서버를 켤 때 마다 이걸 반복하는 건 여간 불편한 게 아닙니다. 따라서 이 프로세스를 프로그램으로 정리해보도록 하겠습니다.
batch 파일 만들기
batch(배치) 파일은 간단히 말해 명령 프롬프트에서 사용할 수 있는 명령어들의 프로세스를 하나의 파일 안에 담아 둔 것입니다. 일반적으로 .bat
이나 .cmd
확장자를 사용하며, 작성된 파일들을 클릭하기만 하면 자동으로 실행됩니다.
바탕화면에서 오른쪽 마우스 버튼을 눌러, 새로 만들기에 있는 텍스트 문서를 클릭해 새 문서를 만듭니다. batch 파일은 메모장에 작성하는 것만으로도 만들 수 있습니다.
우선 batch 파일에서 첫 번째로 해야 할 일은 일반 명령 프롬프트가 아닌, 루비를 실행할 수 있는 명령 프롬프트를 실행해야 한다는 것입니다. 여기서 제가 많이 헤맸는데, 의외로 해답은 꽤 간단했습니다. 바로 명령 프롬프트에서 Start Command Prompt with Ruby의 경로를 찾아, 해당 응용 프로그램을 실행하는 것이었습니다.
저는 Start Command Prompt with Ruby의 파일 위치를 찾아 해당 파일의 경로를 살펴보다가 setrbvars.cmd
라는 파일을 발견하였습니다. 이 프로그램을 열어보니, 실제로 루비가 포함된 명령 프롬프트가 실행되는 것을 확인할 수 있었습니다.
그 후, 다음과 같은 명령어를 입력해 줍니다.
cd C:\Ruby24-x64\bin
call setrbvars.cmd
cd C:\Users\wormw\Documents\GitHub\wormwlrm.github.io
bundle exec jekyll serve
저도 헷갈리는 명령어가 있어서 모르는 건 인터넷에 검색했습니다. cd
는 디렉토리 이동이고, call
은 프로그램 실행이니 참고하세요. 그리고 디렉토리의 경로는 개인 컴퓨터마다 다르니, 여러분의 컴퓨터 경로에 맞게 바꿔 설정해주시면 됩니다.
저장하고 실행하기
저장할 때는 해당 메모장 파일 형식을 모든 파일(.)로 한 뒤, 파일 이름.bat
으로 설정합니다. 이때 인코딩은 ANSI로 합니다. 제가 유니코드로 해봤는데 안 되더라구요.
저장하고 나면, 톱니바퀴 아이콘의 프로그램이 생성된 것을 확인할 수 있습니다. 그리고 프로그램을 직접 실행시켜보면, 위의 서버 프로세스가 순서대로 실행되는 것을 확인할 수 있습니다. 간단하네요.
위와 같은 경우는 정말 간단한 케이스지만, 이를 응용한다면 더 복잡한 프로세스를 간단하게 하나의 파일로 만들어 사용할 수 있을 것입니다. 저와 같은 귀찮음을 느끼신 분들이라면, batch 파일을 통해 서버 실행 과정의 자동화를 고려해보는 것을 추천합니다.