여기서부터는 필수사항은 아니고, 선택사항이라고 생각한다. Github 블로그를 좀 더 편리하게 관리하고 싶은 사람들만 참고하면 된다.
Github 블로그는 어떻게 관리할까?
Github 블로그는 일반 서비스형 블로그(티스토리 등)처럼 자체적인 수정 페이지가 있는 것이 아니라서, 보통 VSCode 같은 에디터로 수정한다.
일반적인 편집 흐름을 설명하면,
내가 찾은 방식이므로 다른 더 좋은 방법이 있을 수 있다.
- VSCode로 로컬 폴더를 열어서 수정
- 변동사항을 git에 업로드 (터미널, Github Desktop 등 이용)
- 웹으로 확인하는 것을 반복 으로 블로그를 관리한다.
하지만 이 방식으로 블로그를 몇번 관리하다보면 꽤 큰 불편함을 금방 느끼게 될 것이다.
이 방식의 단점은
- git push를 하고 난 뒤 자동 빌드/배포가 되는데까지는 약 2,3분 정도의 시간이 필요하다.(게시물 확인까지 시간이 걸림)
- 게시물을 확인했는데 만약 오타나 작은 부분의 수정이 필요하다면 다시 수정한 뒤 push를 하고 빌드/배포를 기다렸다가 게시물을 확인해봐야한다.
- commit 기록이 지저분해진다. (작은 수정에도 불필요한 커밋을 해야한다.)
이를 해결하기 위해 편집 중 게시물을 중간중간 모니터링 할 수 있는 방법을 소개하려 한다. Jsp 등과 같이 스크립트(인터프리터 언어)를 다뤄본 개발자는 프로젝트를 Run 시킨 뒤, 브라우저에 localhost를 띄워서 변경사항들을 직접 보며 작업해본 경험이 있을텐데, 그와 유사하다고 생각하면 된다.
로컬에서 Jekyll 블로그 시작하기
로컬에서 블로그를 띄워서 변경 사항들을 확인하기 위해서는
- Ruby 설치[^1]
- Ruby에 Jekyll 설치
- bundle 설치
를 해줘야한다.
[^1] : Jekyll 은 Ruby로 만들어졌으므로 지킬 블로그를 로컬에서 테스트하기 위해서는 Ruby를 설치해야한다.
(1) Ruby 설치
Jekyll은 Ruby의 웹 프레임워크이므로, Ruby를 먼저 설치해야한다.
이 과정은 루비가 이미 설치되어 있다면 스킵해도 된다.
(맥 사용자의 경우에는 기본적으로 설치되어 있을텐데, 추가로 업데이트를 해주지 않았다면 아래에 설명해놓은대로 업데이트를 수행하면 된다.)
Ruby 설치 여부 및 버전 확인은 아래와 같이 확인할 수 있다.
1
ruby -v
Windows 사용자의 경우
Windows를 사용한다면 Ruby download 홈페이지에서 안정적인 릴리즈 버전을 다운로드 받는다.
Ruby 다운로드 링크
Jekyll이 32bit이기 때문에, 32bit로 설치를 권장.
맥북 사용자의 경우
만약 맥북을 사용한다면 Ruby가 기본적으로 설치되어 있겠지만 굉장히 낮은 버전일 것이다. 따라서 신버전으로 업데이트를 해주어야한다.
- Ruby Version 관리 툴인 rbenv를 가장 최신 버전으로 설치한다.(Homebrew 이용)
1 2
brew update brew install rbenv
- 아래 명령을 통해서 rbenv로 설치할 수 있는 Ruby 버전을 확인한다. ```shell rbenv install -l 2.6.9 2.7.5 3.0.3 3.1.0 jruby-9.3.3.0 mruby-3.0.0 rbx-5.0 truffleruby-22.0.0.2 truffleruby+graalvm-22.0.0.2
Only latest stable releases for each Ruby implementation are shown. Use ‘rbenv install –list-all / -L’ to show all local versions.
1
2
3
4
5
6
7
리스트에 있는 버전들 중에서 하나를 골라 설치하도록 하자.
단, 반드시 2.5.0 이상의 버전을 설치해야 한다.
(2.x.x 대의 버전에서 가장 최근 버전으로 설치하면 괜찮은 것 같다.)
```shell
rbenv install 2.7.5
설치가 완료된 뒤, rbenv versions를 통해 현재 기기에 설치된 Ruby들의 버전을 확인한다.
1
2
3
rbenv versions
* system
2.7.5
위에서 확인할 수 있듯이, 아직 ruby는 기존 OS에 설치된 ruby(system)을 가리키고 있다. 따라서 아래 명령을 통해 rbenv에 설치된 ruby를 가리키도록 변경해줘야한다.
1
rbenv global 2.7.5
바뀐 ruby 버전을 확인한다.
1
2
ruby --version
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-darwin20]
만약 rbenv global 명령을 실행 후에도 ruby 버전이 바뀌지 않는 경우에는 환경변수 설정이 필요하다.(PATH설정)
rbenv versions
를 통해 확인한 버전과,ruby --version
으로 확인한 버전이 다른 경우
~/.bash_profile
에 eval "$(rbenv init -)"
(rbenv init의 PATH설정)을 추가하면된다.
(zsh를 사용하는 분은 zshrc파일에 추가)
1
2
rbenv init
eval "$(rbenv init -)" #이 내용을 복사해서~/.bash_profile에 추가
~/.bash_profile의 내용을 수정
1
2
vim ~/.bash_profile
source ~/.bash_profile
혹은 rbenv init
~ 의 과정을 수행하지않고 아래 커맨드를 수행해도 된다.(echo 사용) bash or zsh에 맞춰서 사용하도록 하자
1
2
echo 'eval "$(rbenv init -)"' >> ~/.zshrc #카탈리나 이후
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile #카탈리나 이전
다시 ruby의 버전을 확인해보도록 하자.
1
ruby --version
(2) Jekyll 설치
Ruby의 패키지 관리 프로그램인 gem을 통해 아래와 같이 Jekyll과 Bundler를 설치할 수 있다.
1
2
gem install jekyll
gem install bundler
아래 커맨드를 입력하며 jekyll 및 bundler가 잘 설치되었는지 확인해보자.
1
2
jekyll -v
bundler -v
Gem : 다른 언어에서의 라이브러리와 같은 개념
Gemfile : 다양한 Gem들을 등록하는 파일로서 텍스트 파일이다. 필요한 Gem들을 Gemfile에 등록해놓고 사용한다.
Bundler : Gemfile은 간단한 의존성 정의 파일이지만, Bundler는 Gemfile에 정의된 Gem들의 의존성을 파악해서 올바른 Gem을 사용할 수 있게끔 해주는 명령어이다.[^2]
[^2] : Gemfile이 있는 경로에서 bundle install
명령어를 입력하면 Gemfile에 정의된 Gem들을 사용할 수 있게 된다. 즉, Gemfile에 필요한 Gem 추가 -> bundle install -> 필요했던 Gem 사용
만약 3.0이상의 버전을 다운 받는 다면 webrick 을 설치해주도록 하자.[^3]
[^3] : webrick은 Ruby의 라이브러리이고, Ruby 3.0 ver부터 gem에 webrick가 포함되지 않기 때문에 serve를 동작 시 오류가 생겨날 수 있다. 오류가 생겨나고 webrick install을 해주어도 상관은 없다.
1
gem install webrick
(3) bundle 설치
위에서 설치한 Bundler는 gem을 통해 관리하는 Ruby의 라이브러리들을 실질적으로 관리해주는 프로그램으로, gem 파일의 종속성을 관리하는 도구다. 여기에서는 프로그램에서 사용할 라이브러리들의 목록을 Gemfile
로 저장해두면 이를 바탕으로 Gemfile.lock
파일을 생성해준다. 기존 테마를 사용한다면 Gemfile
이 이미 존재할 것이다.
아래와 같은 명령어로 bundle1을 설치하고 업데이트하면 된다.
1
bundle install
1
bundle update
webrick을 설치했다면 아래 명령어까지 수행한다.
1
bundle add webrick
(4) local에서 호스팅하기
이제 모든 준비가 되었기 때문에 local에서 구동하면 된다.
local에 설치된 Jekyll을 작동시켜서 local 호스팅을 구동하는 명령어는 다음과 같다.
1
bundle exec jekyll serve
–livereload옵션을 사용하면 파일이 수정되었을 때 자동으로 새로고침 해준다.
1
bundle exec jekyll serve --livereload
local 호스팅은 http://127.0.0.1:4000
또는 http://localhost:4000
에서 확인할 수 있다.(로컬 주소)
위에서 설명했듯, push 후 GitHub pages의 빌드 및 배포를 기다린 뒤 일일이 확인하며 수정하기에는 매우 번거롭기 때문에 local에서 확인하고 검토한 다음에 최종본을 업로드하도록 하자.
(추가) Github 포스팅 꿀팁
1. 제일 간단한 방법
내 Github Repository로 가서 .
을 입력하면 VScode가 열리는데, 거기서 파일 추가/수정 후 커밋 실행
(Github에 로그인이 되어있다면 자동으로 내 Repository에 remote된 상태로 VScode가 열리기 때문에 바로 커밋이 된다.)
나는 이 방법을 회사노트북으로 수정 후 커밋할 때 유용하게 사용한다.
회사 노트북에는 로컬에 따로 이 Repository를 clone 받아놓지 않았기 때문에, 이 방법을 이용하여 간편하게 수정한다.
2. VS Code + 터미널
Vscode로 수정 후 해당 Local 디렉토리 위치에서 터미널 명령어 실행
1
2
3
4
git add -A // 모든 수정 파일을 추가합니다.
git status // 파일 변경사항을 확인합니다.
git commit -m "원하는 커밋 제목" // 커밋 메시지를 작성합니다.
git push // 레포지토리로 수정 사항을 업로드합니다.
3. VS Code git 연동
터미널 명령어를 일일이 치기 귀찮다면 VS Code에 내 Repository를 연동하여 바로 Push할 수 있다.
(좌측 탭)소스제어 - 커밋
4. VS Code + GitHub Desktop
GitHub Desktop을 사용 중이라면 VS code로는 수정만 하고, 사용하던대로 Push해도 된다.
5. Obsidian(git 플러그인) + GitHub Desktop
블로그에 포스팅할 내용을 메모 프로그램[^5]을 사용하여 작성 후, .md
파일로 추출해서 형식에 맞게 2023-11-19-제목
으로 이름을 바꿔 _posts
디렉토리에 추가하는 방식으로 블로그를 관리하는 사람들도 있을텐데,
만약 옵시디언을 사용하고 있다면 obsidian git이라는 플러그인을 사용해서 메모장과 레포지토리를 한번에 관리하는 방법도 있다.
[^5] : Bear, Obsidian 등
회고
GitHub 블로그 생성 글을 게시하며 살짝 회고를 해보자면, 나는 세팅 강박증이 있는 것 같다.
이번에 블로그를 만드는 과정과 블로그를 관리하는 방법을 검색해보며
사실 내가 알고 있고, 이미 익숙한 방법들을 뒤로하고 남들이 “이러면 좋대!”, “이게 편하대!” 라는 말에 휩쓸려 괜히 새로운 것을 고민하고 쉬운 길을 돌아가는 경험을 많이 했다.
위에 내가 고민했던 관리 방법들을 이래저래 많이 적어봤지만, 관리하는 방법은 사실 중요치않다. (터미널로 명령어를 사용하여 글을 올리든, 내 메모장에 git연동을 시켜 바로 업로드하든 소모되는 시간은 거기서 거기라고 생각한다.)
어떻게하면 더 편리하게 관리할까를 고민하기보다는, 꾸준하게 블로그를 관리할 것이라는 마음가짐이 중요하다는 생각이 들었다.
괜히 최적의 방법을 고민하다가 어영부영 늘어지게 되면, 잔디심기 결심이 무너질 수 있고, 내게 익숙하고 쉬운 방법을 뒤로하고 다른 사람들이 관리하는 최적의 방법에 집착하다보면 블로그 포스팅이 점점 어려워지고(그 방법이 막상 알고보면 쉬울지라도), 처음 결심힌 때와 점점 멀어지게되어 흥미를 잃게 되는 것 같다.
다른 것들에도 동일하게 적용될 것이라고 생각한다.
때로는 최선의 선택을 하기 위해 너무 많은 신중을 기하기 보다는 과감히 실행할 수 있는 결단력이 필요하다는 생각이 든다.
꼼꼼함과 신중함이 나의 가장 큰 장점이라고 생각했는데, 그게 발목을 잡아 첫 블로그 포스팅들이 많이 힘들어졌다.
앞으로 꾸준히 포스팅하려면 신중함과 결단력(실행력) 사이에서 잘 균형을 잡아야겠다. 그래야 스트레스 받지 않고 즐겁게 내 목표를 이룰 수 있을 것 같다.
: Reference
Jekyll을 사용하여 로컬로 GitHub Pages 사이트 테스트
Github 블로그 만들기 (2)
devpro.kr의 GitHub Pages Repository
📒Github Blog 만들기-2
Jekyll 블로그 시작하기
[Jekyll] Github Pages 사용법
Git hub 블로그(2) 개발 환경 설정하기(Ruby, jekyll bundle 설치하기)
Mac에 Ruby 설치하기(homebrew)
Ruby 버전 업데이트 방법 in MacOS
[Mac] 맥 Ruby Update 업데이트 적용 방법
Mac환경에서 ruby의 버젼 업데이트 방법
Gemfile, Bundler 개념 .
bundle은 영어명 그대로 무언가를 묶어주는 역할을 한다. 서로 참조관계가 있는 파일을 묶어주는 것 즉, 의존성이 있는 모듈을 묶어주기 때문에 시간도 절약되고 파일 크기도 줄어든다. ↩