새 테마로 갈아입힘

블로그 글을 마지막으로 작성했던게 21년 3월이었으니까 무려 2년 반만에야 새 테마로 갈아입혔다. 기존에 사용하던 테마가 hexo 메이저 버전 업데이트와 동시에 사용할 수 없게 되어버려서 이참에 테마 새로 만들지 뭐 했던게 2년을 넘길 줄은 상상도 못했다.

하기사 디자인부터 싹 새로하고 hexo 데이터 구조를 새로 뜯어보고, 그 와중에 이직에 프로젝트에 중간 중간 강의에 매일 많아야 2시간 정도밖에 투자하지 못하고 때로는 아예 긴 시간 동안 홀딩해 두었다가 몇 개월 후에야 다시 진행하고를 반복하다보니 어쩔 수 없는 부분이기도 한건가…

그래도 이번 테마는 제법 마음에 들게 만들어서 현 시점에서는 만족하고 있다.
아! 물론 디자인 말고… 안다. 나도. 디자인 드럽게 못하는거 ㅋㅋㅋ
오죽 못하면 아주 오래전 같이 일했던 동료 여직원 하나가 당시 텍스트큐브 테마 만들고 있는걸 보더니 내가 디자인 한거냐고 묻고는 역시 개발자구나~ 했을까… 또륵…

Carpediem theme 간략 소개

처음 만들었던 테마의 코드명은 amorfati였고 (내 테마명을 본 사람들은 하나같이 김연자씨의 아모르파티를 떠올렸지만 나는 그냥 라틴어 a부터 시작했을 뿐…) 이번 테마의 코드명은 Carpediem 으로 정했다. b는 어디갔냐 한다면… 사실 b도 만들고 있었는데 너무 엉망이라 자연스럽게 버려버린건 안 비밀…

이번 테마를 만드는데 가장 많이 관심을 두었던 건 다음 두 가지였다.

  • 컴포넌트 기반으로 재활용 및 커스텀 가능성(customizable) 극대화
  • hexo API(?)에 맞게

기존 테마는 단순히 조각화하여 partial 정도로만 사용했기 때문에 UI 구성 요소의 재사용이 다소 별로였고 커스트마이징이 꽤나 제한적이었다. 이번에는 이 문제를 해결하고자 했고, 한 편으로는 퍼블리싱은 컴포넌트 기반으로 하는 것이 어렵다는 이상한 편견을 깨주고 싶었다.
사실 순수 HTML, CSS라고 컴포넌트화 시켜서 작업하지 못할 이유가 전혀 없음에도 불구하고 본인들이 컴포넌트 기반으로 작업해보지 않았다하여서 react나 vue 등의 프레임워크가 아니면 컴포넌트 기반으로 하는 것이 어렵다거나 불가능하다거나 무의미하다는 등의 이상한 말들이 얼마나 무지한 말인지 결과물로 말해주고 싶었던 것도 컴포넌트화 하게 된 이유로 작용했다.

그리고 처음 만들었던 테마는 hexo에서 제공하는 API를 활용하기 보다는 데이터 구조를 직접 확인해서 필요한 프로퍼티에 직접 접근하는 방식을 사용했엇는데, 이게 구조가 바뀌는 순간부터 코드가 돌아가지 않게 되는 문제를 일으킬 소지가 높아서 warehouse라는 hexo의 데이터베이스 API들을 사용하는 방법을 찾아 이로부터 데이터를 가져와 사용하도록 변경했다.

그 외에도 prefer-color-scheme을 활용한 다크 테마 적용, WCAG Level AA를 최소한의 기준으로하는 접근성 향상도 테마를 만들며 고민한 부분들이다.

댓글 플랫폼 변경

또 하나의 큰 변화는 댓글 플랫폼을 바꾼 부분이다.

기존에는 LiveRe 라는 플랫폼을 이용하고 있었으나, 여러가지 문제들을 내포하고 있었고 무엇보다 댓글이 달려도 해당 사실을 전혀 알 수 없었기 때문에 즉각 알림을 받을 수 있는 플랫폼을 찾다가 remark42로 정착했다. (이 플랫폼으로 변경에 대한 부분은 추가 포스팅 예정이다.)

덕분에 이제는 댓글이 달리면 슬랙으로 바로 알람을 받을 수 있어서 댓글이 달린 줄도 모르고 답변을 못한 채 한 달을 흘려보내는 일을 방지할 수 있게 되었다.

그래도 아직 갈 길이 멀다

첫 배포를 했지만, 아직 갈길이 멀리 남았다.

고대비 모드도 고민 중이고, 만들어야 할 컴포넌트도 아직 몇 가지가 더 남아있다.
더구나 hexo 공식 테마 페이지에 올린 PR이 아직 병합되고 있지 않아서 어서 병합이 완료되어야 실사용자의 피드백도 들어보고 개선점을 또 받아봐야한다.

작성자

멀더끙

접근성에 관심이 많은 Front-End Developer, 커피 애호가, 사진 찍기 좋아하는 여행 러버, 아직도 블로그 뭘 쓸지 모르겠는 초보 블로거, 그냥 이것 저것 개인의 생각을 끄적끄적이는 멀더끙의 블로그입니다.

댓글