글을 쓰고 발행하는 도구에 대하여

나는 현재 이 글을 내 블로그 워드프레스 관리자 화면에서 쓰고 있다. 왜인지는 몰라도 이 워드프레스 관리자 화면은 폰트가 궁서체이다. 이거참..

글쓰기와 발행하기는 나의 삶에서 매우 중요한 부분이다. 아이디어를 정리하고, 글로 옮기고 발행하고, 피드백을 받고 하는 행동은 나를 발전하게 해준다. 처음에는 나 자신을 알리고, 다른 사람들을 설득하는 등 현실적인 이익에 의미를 두었지만, 시간이 지날 수록 내 머릿속을 정리하기 위해서, 나 자신의 기록을 남기기 위해서 같은 목적이 더 커졌다. 하지만 역시 다른 사람에게 많이 읽히고, 거기서 피드백을 받는 과정에서 배우는 것이 많기으므로 발행(Publishing)에도 신경을 많이 쓴다.

아이디어 모으기

생활을 하다 보면 다양한 글쓰기 아이템이 생각이 난다. 현재 글 쓸 아이템으로 누적된 것만 30~50개는 넘는 거 같다. 주로 아래와 같은 형태로 존재한다.

  • todo 관리 앱인 Things에 짧은 노트 형태
  • Sublime Text 2에 하나의 탭을 차지하고 있는 텍스트들
  • DeskPM 파일이나 Scrivener 파일 형태로 Dropbox 에 저장되어있음
  • 워드프레스에 Draft 형태로 존재 (주로 글쓰다가 논리가 꼬이고 주화입마에 빠져 발행에 실패한 글들)

솔직히 이렇게 정리한 적이 없는데 적어보니 정말 여기저기 흩어져있다는걸 알게 되었다. 역시 글쓰기는 중요하다. 글을 쓰면서 생각이 정리된다.
윗글들의 주제는 기술에 대한 글, 사회, 아이디어 등등 내 블로그에 있는 주제만큼 다양하다.

글쓰기

아이디어 스케치와 달리 실제로 글을 쓰는 것은 매우 힘들다. 아이디어를 막상 글로 정리하다 보면 앞뒤가 맞지 않고 논리의 흐름이 엉망진창이 되는 경우가 많아서 그렇다. 글을 쓰기 시작하면 대부분 무난히 써지기는 하는데 이게 시작하기도  힘들다. 글을 시작해도 논리가 꼬여서 발행하지 못하는 경우가 한 30%는 된다.

글쓰기를 위해서 많은 프로그램을 구매했다. 지금 생각나는 것만으로도 ByWord, DeskPM, MarsEdit, Scrivener, Sublime Text 2 정도 된다. 주로 Mac에서 작업하기 때문에 모두 Mac 용이다. 트위터에 @nacyo_t 님이라는 분이 계신데 글쓰기 도구 덕후 이시다. 타임라인에 글쓰기 도구에 대한 글들이 올라오면 꼼꼼히 읽는 편인데 모든 요구를 만족시키는 하나의 답은 없 걸 다시느낀다. 그래서 나의 결론은.. 아직도 뭔지 모르겠다. 결론이 나지 않으니 저렇게 글쓰기 도구들을 구매하고서 무료인 워드프레스 관리자 화면에서 글을 쓰고 있는거 아닌가 ㅠㅜ

블로그 글처럼 짧은 글은 위 어떤 도구를 사용하든지 상관없지만 가능하면 MarkDown 호환 형식으로 작성/저장하고, 책과 같이 긴-글을 쓰려면 Scrivener와 같은 도구가 맞을 거 같다는 두리뭉실한 생각이다.

발행하기

요즘 나의 가장 큰 관심사  중 하나이다. 일단 내 블로그는 WordPress 를 사용한다. 하지만 dynamic page를 위한 이런 어플리케이션 들은 언제나 보안위험에 노출되어있다. 가능한 서버 보안패치도 꾸준히 하고, 워드프레스 업데이트도 자주 하며, 가능한 최소한의 플러그인만을 사용하려고 노력하고, 최신 테마를 사용하려고 노력중이나.. 이게 시간이 드는일이라서 쉽지가 않다. 또한 내가 더이상 공부하지 않는 PHP로 되어있다는 점도 단점이기는 하지만, 뭐 그렇게 큰 단점은 아니다. 요즘에는 PHP7이 나오면서 속도도 많이 빨라지고 좋아진거같고, 나는 PHP 별로 나쁘다고 생각하지 않는다. 발행 도구의 가장 중요한 부분중 하나는 얼마나 오랫동안 지속적으로 관리되고있는 도구인가.. 이다. 내가 워드프레스를 사용하는 가장 큰 이유이기도 하다. 워낙 유저베이스가 커서 안 망할 것 같다는 점. 그게 내 블로그에 페이스북 댓글을 달지 않는 이유이기도 하다. 내 블로그는 페이스북이 망하더라도 계속 유지할 것이기 때문에.

맨 처음 내 블로그는 MovableType 이라 고하는 Perl 기기반의 블로그 엔진으로 시작했다. 그때는 무려 CGI 방식이었다. Apache 에 cgi-bin 설정으로 하는거다! 찾아보니 내 블로그에 이런 글도 있네… 블로깅 툴의 중요한 기준

python을 좋아하는 나로서는 어쩌다 보니 Mezzanine 도 사용해 보았다. Mezzanine는 Django기반 CMS엔진 인데 블로그 기능도 깔끔하게 잘 만들어져있다. 대충 보면 워드프레스와 꽤 비슷한 기능을 제공한다. 결국은 워드프레스도 블로그와 페이지를 관리하는 도구인데 Mezzanine도 그렇다. 허나, 아직은 플러그인등 생태계가 약하고, 내게는 워드프레스 설치보다 Mezzanine 설치가 한 5배는 오래 걸렸다. PHP는 정말이지 설치가 간편한데비해 python은.. 골치아프다. 또 Mezzanine의 작은 단점은,  이름 스펠링을 외우기가 힘들어서 매번 구글링해서 내 스펠이 맞는지 확인해야 한다는..

드디어 본론! 이글을 쓰게 된 이유! static generator..

구지 한글로 쓰면 정적사이트생성기라고나 할까.. 페이지를 동적으로 생성하지 않고 정적인 html로 페이지로 만들어주는 프로그램들 이다. 거의 모든 언어로 static site generator 가 있다고 보면 된다. 이걸 정리해놓은 사이트도 있다 https://www.staticgen.com/ https://staticsitegenerators.net/ 요즘같이 좋은 서버 언어들이 있는 세상에서 왜 static 한 페이지를 만드냐고 한다면, 여러 이유가 있다.

  • 해킹에 안전하고 (html 페이지를 해킹하기는 힘들다!)
  • 대부분 홈페이지는 쓰기보다 읽기가 많기 때문에..
  • CDN등을 쉽게 잘 활용할 수 있어서 빠르다!
  • 트래픽에 강하다
  • 요즘에는 Javascript로 댓글, 글추천, 광고 등을 처리할 수 있어서 구지 서버에서 처리할 필요가 없다.

등등등이다. 일단 한번 사이트를 웹서버나 CDN에 올려놓기만 하면 좀 맘이 편하다. 다만 글쓰기가 빈번한 사이트에는 어울리지 않는다. 내 블로그처럼 1~2주일에 한 번 정도나 글이 올라오는 경우에는 어울린다.

나는 Jekyll(Ruby), Middleman (Ruby), Lektor(Python)을 써봤고, 간단히 설치해보고 구조를 알아본 것은 Pelican(Python) 정도 그리고 site generator 라고 하기는 좀 뭐하지만 결국은 html문서를 만드는데 sphinx 를 사용해서 컨퍼런스와 모임을 준비하는 히치하이커를 위한 안내서 사이트에 활용하고 있다. 저 사이트는 내용은 계속 github에 업데이트를 하고 있는데도 발행과정을 자동화를 안해놓아서 귀찮아서 발행을 안한다! 정적사이트생성기의 문제라니까… 발행이 귀찮아..

static site generator의 가장 큰 단점은 글을 쓰거나 수정후에 결과물을 build 해서 업로드 해야 한다는 점이다. 물론 글 쓸때마나 로컬에서 작업할 수도 있지만, 대부분 github webhook 과 CI등을 사용해서 자동 deploy 한다. 이게 설정하기가 까다로울뿐 아니라, 글을 쓰고나서 업데이트 되기까지 시간이 오래 걸린다. 게다가 나는 그냥 오타 하나 수정하고 싶은 것 뿐인데, 개발도구를 켜서 코드같이 생긴 텍스트 파일을 수정하고, git commit / push하고나서 빌드가 끝난 10분 후에 확인해야 한다는건.. 정말 힘 빠지는 일일 수 있다.

Lektor를 만든 Armin Ronacher은 Lektor를 만들고 처음으로 소개하는 글 Hello Lektor! 에서 자신의 필요에 맞는 static site generator 가 없어서 새로 만들었다고 하고있다.  특히 글쓰는 과정이 너무 개발자들만 쓸 수 있게 되어있다는 점이다. 실제로 static generator 글쓰기는 자신이 직접 텍스트 에디터로 파일을 생성하고, 포맷에 맞는 속성들을 지정해 주어야한다. 네이버 블로그 글쓰기 화면과 같은 친절한 화면 따위는 없다. 그래서 Armin 느님은 아래와 같이 CMS 비슷한 화면을 제공하는 static generator인 Lektor를 만든 것이다! 그리고 친절하게도 개발자 아닌 사람들도 쓸 수 있도록 .dmg 형식의 Mac install  파일도 제공한다. 실제로 사용해보니 솔직히 편하지는 않다. 결국은 나는 텍스트 에디터로 글을 쓰기는 했지만, 좋은 방향이라고 생각한다. 내가 친절한 글쓰기 페이지를 안쓴 이유는.. 아래 페이지를 보면 알겠지만, 별로 인터페이스가 친절하지 않아서가 크다. 도대체 뭐하라는 건지.. 앞으로 개선할 점이 많은 UI라고 생각한다. UI는 개선이 가능하니.. 큰문제는 아니다

lektor_admin

Lektor은 Dropbox 등으로 사이트를 공유하고, travis-ci 로 자동 빌드해서 Github Pages 로 만드는 친절한 가이드를 제공하는등 발행과정을 쉽게하는 가이드도 제공한다는 점이다. 내가 써보니 단점으로는 아래 2가지 정도가 생각날뿐 나머지는 참 좋다!

  • 모든 글하나마다 directory 하나를 생성해야 하는데, page 관리에는 어울리지만 blog 에는 어울리는 방식이 아닌거 같다.
  • 아직 1년도 안된 프로젝트라서 아직은 사용자가 적고 생태계(테마, 플러그인)이 많지가 않다.

static site generator .. 좀 글쓰기가 귀찮아서 그렇지 참 좋다. 요즘같이 CDN, Github Page, 빌드 도구 등이 잘 되어있는 세상에서는 더욱 그렇다. Lektor 좋다. 글 하나마다 디렉토리 만드는 방식만 좀 다른 방식으로 다시 고려해주면 좋겠다.

이 글이 끝났다. 결국은 두서없는 글이 되고 말았다. 나는 이 세상에 또 별 가치없는 글을 하나 더 추가하고 말았다. 이 글은 만족 스럽지 않지만, 이렇게라도 발행 버튼을 누르겠다. 발행(Publish)!


  1. ash84 Avatar

    잘 읽고 갑니다. ㅎㅎ 정적블로그에 관심을 가지고 있었는데 장단점을 잘 설명해주셨네요^^

  2. Eunchan Avatar

    저도 Static Site Generator를 이용해서 홈페이지를 작성하고 있습니다.
    Hakyll ( http://jaspervdj.org/hakyll ) 인데요. 말씀하신 문제점은 절실히 느끼고 있습니다. 웹브라우저에서 (어디서나) 글을 작성하는게 정말 편하구나.. 라는 걸 ..

    일단 Git repository로 글은 따로 관리하긴 하지만, build를 위해서는 haskell 환경이 구축되어있어야 해서, 따악 두대에서만 사이트를 만들 수 있습니다. Travis CI 같은 걸 사용해 볼까 생각해봤는데, 서버를 계속 운영하는 것도 못할 짓인것 같아서.. 망설여지네요. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *