read

이글루스 서비스에 올려져 있던 기존 블로그 포스트들을 jekyll 포스트로 옮겨오는 작업을 했다. 초반에 몇 개는 복사/붙여넣기와 텍스트 편집을 사용했는데, 하나당 소요되는 시간이 꽤 많이 들어서 자동화의 필요성이 있었다.

모든 블로그 포스트들을 웹 크롤링을 해서 가져오면서 메타데이터는 yml 형식으로, 본문은 markdown 형식으로 파싱을 해서 가져오는 작업이 필요했다.

어떤 언어를 사용할까 하다가 최근에 관심을 가지게 된 Clojure를 활용하기로 했다. Emacs의 설정 파일을 다루면서 elisp에 입문하게 되고, 개인 위키를 편집하기 위해 패키지도 하나 만들었던 터라, Clojure를 좀 더 수월하게 익힐 수 있을 것 같았다.

한 3-4일 정도 짜투리 시간을 들여서 변환기를 완성했다. 일단은 모든 블로그 포스트들을 로컬에 markdown 형식으로 저장해놓았다. 시간 나는대로 여기에 하나씩 올려야지. 파서가 완벽하지 않아서 변환 결과 파일에 후보정을 좀 해야하지만, 초반에 작업하던 방식보다는 시간을 많이 단축할 수 있다.

OGQ의 배경화면 서비스는 Python+Django를 사용하고 있는데, Python의 단순함이나 유연함은 좋지만, 트래픽이 매우 높은 환경을 다루기에는 점점 한계를 느끼게 된다. 물론 인스타그램이나 핀터레스트도 Python+Django 스택을 사용하고 있기 때문에 Python으로 그런 대규모 서비스를 운영하는 것이 아예 불가능하지는 않지만, GIL이나 async 등의 부분에서 컴퓨팅 자원을 최대한 사용하지는 못한다는 생각이 든다. 물론 병목은 DB나 네트워크 성능 등에도 존재하기는 하지만, uwsgi가 무수히 내는 connection failed 로그를 지켜보다보면 좀 아쉬운 마음이 든다.

그래서 Clojure에 관심이 간다. 아직 복잡한 문법들은 잘 독해가 안되고, immutable한 방식으로 프로그래밍을 하려면 생각의 전환이 필요한 부분도 있어서 익숙해지기까지는 시간이 더 걸릴 것 같다.

그래도 뭔가 실생활에 필요한 코딩을 Clojure로 적용해보니 전체적인 동작 방식도 이해가 가고 좀 더 친숙해진 느낌이다.

다음으로는 싸이월드 백업 툴을 만들어볼까 싶다. 싸이월드에 올려진 글은 전체로 공개하기에는 좀 힘든 글들도 있으니 개인 위키에 올릴 수 있도록 Creole 포맷으로 변환해야겠다.

Blog Logo

Jeongsoo, Park


Published

Image

오름직한 동산

Think globally, act locally

Back to Overview