Jekyll + Docker
Blog를 Jekyll로 설정하고 나서, 여러 환경에서 글을 쓰고 deploy하는 것이 살짝 어렵고 있었다.
다른건 그러려니 하는데 매번 Ruby와 Jekyll을 설정하는 것이 번거롭다고 느낀것이다.
환경을 Docker로 올리려고 하다가 보니.
- Jekyll image가 한 번에 올라오지 않았다
- Ruby image도 안된다
결국 날 Ubuntu에 한땀 한땀 설치를 해 보기로 한다.
이러저런 시도끝에 문제가 되는 부분은 mini_racer라는 Gem이 참조하는 node의 folder명에 대한 것이었다.
/usr/bin/ld: cannot find /var/lib/gems/3.2.0/gems/libv8-node-21.7.2.0-x86_64-linux/vendor/v8/x86_64-linux-gnu/libv8/obj/libv8_monolith.a: No such file or directory
libv8-node를 설치하면 “x86_64-linux"이라는 폴더가 구성이 되는데 mini_racer는 “x86_64-linux-gnu"라는 것에서 libv8_monolith.a 파일을 찾고있는 문제인 것이다.
Jekyll VSCode Extension
![]() |
|---|
| VSCode에서 실행한 메뉴 |
증미에서 프로젝트를 수행하는 동안 이것저것 만들고나서는 블로그에 갱신하려고 보니 여간 귀찬은 것이 아니다.
그 귀찬음의 가장 주요한 원인을 가만 생각해보니, 하나의 post를 만들 때 마다, markdown파일을 복사하고 에디팅하고.. 지친 다음에 글을 쓰고자 했던 것이다.
일전에 Jekyll Admin을 시도해봤지만, 내 취향은 아니었고.
그래서 VSCode Extension을 만들기로 한다.
가장 기본적인 내용은 MS가 제공하는 Your First Extension에 다 나와있으나, GPT의 힘을 살짝 빌려 만들어본다.
- package.json에서 vscode version을 변경하는 것으로 거의 모든 문제를 해결 할 수 있다.
- 만들어진 extension을 게시 할 것인지 고민했으나.. vsce를 설치하고 *.vsix 파일로 제공하는 것이 더 현실적이라 생각해서 그렇게 한다.
directus를 설정하며
본 설치는 Headless CMS중 하나인 Directus에 대한 내용이다.
![]() |
|---|
| 가이드에있는 Docker를 올리면 보이는 현상 |
Directus가이드에서 docker-compose.yaml을 발견하고는 올려본다.
처음 GitHub에 있는 docker-compose.yaml을 보고 올려봤을때 DBMS가 열 개 정도 올라오는 것을 보고 순간 당황했었는데.. 그 녀석은 본체가 아니었다.
뭔가 잘못되었다는 것은 알겠는데, Github에서 찾은 답변을 보기 전까지는 한참이나 고민을 했었다.
![]() |
|---|
| Docker가 root로 실행되면서 폴더의 권한을 root로.. |
owner를 바꿔주니 정상적으로 구동된다.
Jekyll-Admin을 발견하다
Headless CMS쪽을 살펴보다 Jekyll-Admin이라는 녀석을 발견했다.
재미있다 생각하고 설치를 해보고, 어찌 사용을 해 보려 하는데..
그냥 VSCode에서 snippet을 설정하는게 속편하겠다는 생각이 드는 이유는 뭔가 싶다.
회신 이메일의 발견
![]() |
|---|
| 회신 이메일 주소 |
가끔씩 보내주는 퇴직연금 관련 메일일을 토요일 아침 무료하게 살펴보다 회신 이메일 주소라는 것을 발견한다.
SMTP 프로토콜에 회신 이메일 주소가 따로 있었던가?
RFC를 대충 찾아봐서 그런건지 그런 항목은 보이지 않는데 말이다.
헤더에 표시할 문자열 형태의 주석을 넣은것인가?하는 상상을 잠시 해 봤으나, 충분히 가능성있는것이다 하기전에.
이미지를 자세히 보면 송신자와 답신 주소가 같다.
당연한것 아닌가?
결국 Gmail에서 답신 이메일이라는 이름으로 보여주는 것이라 생각되는데.. 그러면 과연 송신자와 답신용 이메일을 다르게 설정해서 발송 할 수 있는가? 하는 의문이 생긴다.
균형. 그리고 진단
![]() |
|---|
| Ubuntu Sound Setting |
한 달 정도 걸리는거 같다. PC를 하나 조립하면서 걸린 시간 말이다. (물론 대부분의 시간은 As를 보내고 기다린 시간이기는 하다.)
베타 딱지가 붙은 BIOS가 메모리 뱅크 2개를 모두 지원하는 고마운 상황에 감사하며, 개발환경으로서의 우분투를 사용하고 있는데 말이다.
이 녀석에서 음악을 재생하면 오른쪽만 재상되는 이상한 현상을 보인다.
먼저든 생각은 Linux Sound Driver에 대한 걱정이었으나…
Ask Ubuntu에서 찾은 의외의 답변은 좌우 밸런스를 확인 해 보라는 것이었다. (물론 첫 댓글은 alxamixer를 터미널에서 구동해 보라는 것이었지만 말이다.)
회의. 그리고 진단
![]() |
|---|
| 메모리 진단 프로그램 MemTest |
무슨 생각이 들었는지 AMD CPU르 하나 주문하고, CPU를 샀으니 하는 빌미로 보드와 메모리 등을 호기롭게 주문 한 것 까지는 좋았는데.
처음 BIOS진입부터 사람 힘들게 하더니, OS를 설치하고 설정하는 과정에서 무수한 비정상적인 상황을 연출한다.
주말 양일간 열심히 설정을 해보고 내린 결론은 메모리 오류.
구매처에 유선으로 문의를 하니, 일단 메모리만 보내보라고 하더니, 검사하기 난해하다고 그냥 신품으로 보내주겠다고 해서 받아봤더니.
메모리 두 개 중에 하나는 실이 붙어있고, 하나는 그냥 은박지에 싸서 보낸 모양새가 내가 보낸 것을 되돌려준것인가 싶다.
유효한 JSON String을 검사하는 방법
금요일 저녁. 야근을 할 계획은 없었으나, 오전중에 팀원이 적용한 서비스 선처리 권한관련 이리저리 시간을 할애하다 보니.
사람들이 하나 둘 퇴근을 한 후. 마음을 다잡고 테스트를 하다보니, 무효한 JSON String에 대한 처리가 제대로 되고 있지 않은것이 보인다.
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(strJson);
폐쇄망이라 핸드폰으로 잠깐 구글링을 해 보고, 당연히 무효한 문자열을 파싱함에 있어 Exception을 throw 할 것으로 기대했으나.
try {
JsonObject jsonObject = jsonElement.getAsJsonObject();
} catch (IllegalStateException e) {
System.out.println("Not JSON Object");
}
퇴근을 하고, 집에 돌아와 좀더 찾다보니. 파싱 시점이 아닌 get시점에 catch하는 방법을 찾을수 있었다.
VSCode+Snipet+ShortCut
![]() |
|---|
| ShortCut JSON을 설정하는 버튼이.. |
지금 진행하는 프로젝트에서 매번 브랜치를 따고 있는데, 서로 약속한 브랜치명이 있다보니, 매번 에디팅하는 것을 귀찬아 하다 토요일 저녁 VSCode의 ShortCut을 사용하기로 하고 찾아보는데, 도저히 어떻게 설정을 했었는지 기억나지 않는다.
한참을 찾다, 결국 저 이미지상의 우측상단 아이콘을 누르는 것으로 모든 해결점을 찾아..
기억은 점점 흐릿해져간다.
Ubuntu Pro
![]() |
|---|
| Ubuntu Pro를 설정하고 |
일요일 아침 일어나 과거의 블로그 글을 밀어넣으려고하다 보니 원격의 서버에 자연스럽게 접근을 하는데, Ubuntu에서 Pro라는 컨셉을 광고하고 있다.
잠깐 찾아보다 개인사용으로는 무료라 하니 적용 해 본다.







