이 페이지는 하루프레스를 개발한 전 과정에 대한 이야기를 책으로 만들기 위한 프로젝트 속에 프로젝트 일환으로 진행중인 페이지입니다.
하루프레스는 하루라는 순 우리말과 프레스라는 단어의 조합으로 하루에 이야기를 작성하여 발행하는 매우 간단한 블로그 엔진이라는 의미에서 하루프레스 라고 이름을 지었다.
그리고 기술적으로는 웹 서버와 데이터베이스가 필요 없는 정적 페이지 기반의 블로깅 엔진이다. 정적 페이지 기반 블로그란 PHP 로 만들어진 워드 프레스와 같이 서버측에서 프로그램이 동작하는 것이 아닌 블로그를 구성하는 모든 페이지를 HTML 로 생성하는 프로그램을 말한다.
하루프레스는 블로그를 위한 모든 콘텐츠를 정적 페이지(HTML)로 생성한다. 그리고 이렇게 생성된 페이지들을 인터넷이 되지 않는 개인 컴퓨터에서 볼 수도 있고 Github 의 정적 페이지 서비스를 이용해 퍼블리싱도 할 수 있다.
그리고 HTML5, CSS3 을 이용한 테마와 플러그인도 존재하여 다양한 편리한 기능을 부가적으로 제공한다.
그리고 마지막으로 하루프레스의 가장 중요한 목표는 블로그가 필요한 사람들보다 블로깅을 하려는 사람들에게 불필요한 서버 구성, 데이터 베이스 설치 등을 잊고 글 쓰는 곳에만 몰입할 수 있도록 하는데에 있다.
현재 개발중인 하루프레스는 개발자들을 위해서 개발되었다. 콘솔 작업에 익숙하고 Git 을 통한 버젼관리가 익숙하고 문서를 정리할 때 무심코 마크다운 에디터를 실행하고 마크다운으로 문서를 작성하는게 편안함을 느끼는 개발자를 위한 하루프레스이다.
처음엔 개인적으로 진행중인 웹 애플리케이션 자동화 봇 프로젝트에서 프로젝트를 소개할 만한 블로그 형태의 사이트가 필요해서 시작하게 되었습니다.
떠오른 아이디어가 마크다운 으로 작성된 문서를 간편하게 웹으로 퍼블리싱할 수 있는 방법이 필요했다.
물론 현존하는 다양한 블로그 엔진이 많다. 하지만 이미 고도화되고 성숙된 기능들을 많이 가지고 있어 편리하지만 고도화 된 만큼 사용자에게도 높은 학습 과정을 필요로 한다. 더욱이 내가 원하는 형태로 커스터마이징을 하기 위해서는 서버 시스템도 필요하고 웹 서버를 직접 설치하고 DBMS 도 직접 구축 해야하는 복잡함이 있다.
그러던 중 루비로 작성된 옥토프레스라는 오픈소스 블로그 엔진을 알게 되었고 정적 페이지를 깃허브를 통해 퍼블리싱할 수 있는 자동화 시스템까지 갖추고 있었다. 또한 콘텐츠 포맷도 마크다운 으로 되어있었다.
That's it!
하지만 루비에 경험이 없는 상황에서 커스터마이징 하기가 쉽지는 않았다. 그래서 노드로 생각을 돌려서 하루프레스를 만들기 시작했다.
하루프레스 개발을 시작하면서 갖었던 목표와 가치가 있었다. 그중 가장 중요한 것은 오픈 소스의 가치와 성공적인 소프트웨어를 만드는 것이였다.
성공 이라는 단어에는 굉장히 많은 의미를 함축하고 있지만 그중 가장 중요한 것은 성공적인 소프트웨어 이다.
성공적인 소프트웨어는 특별한 것이 아니다. 특히나 하루프레스와 같이 개인 만족을 위해 시작된 소프트웨어에서는 단순하다. 구현하고 싶었던 아이디어를 구현하는 것이다.
하루프레스의 아이디어는 블로깅하고 싶은 개발자가 마크다운으로 블로깅을 하는 것이였다. 그래서 성공했다. 현재 버젼에서도 미래의 버젼에서도 하루프레스 유저는 마크다운으로 블로깅을 즐길 수 있을 것이다.
하지만 실패의 길로 갈 수도 있었다.
구현중에 꾀 많은 아이디어들이 생겨났고 개발자가 아닌 일반인을 타겟을 넓히려 했고 크로스 플랫폼까지 고려하려 했다. 사실 이런 이유로 인해 공식 릴리즈가 느려진 이유가 되었다.
모든 프로덕트를 만드는데는 참여자의 욕심과 목표를 향한 몰입을 잘 조절하는 것이야 말로 성공적인 프로덕트를 만들 수 있게 한다.
하루프레스의 수 많은 나의 욕심과 아이디어가 이슈트래커와 에버노트에 쌓여가고 있다.
물론 하루프레스는 노드를 본격적으로 다루기 시작하면서 시작한 프로젝트이다. 그래서 노드 자체의 신기술을 이용하였다.
뿐마나 아니라 노드 확장 모듈들의 큐레이팅과 활용이 얼마나 높은 생산성을 유지해지고 새로운 기술을 손쉽게 습득하는지 알게 해주었다. 또한 오픈소스의 가치를 제대로 느끼게 되었다.
그리고 마크업 구성을 위해서는 트위터 부트스트랩을 사용하였고 이를 통해 less 에 대해서도 알게 되었다. 응답형 웹에 대한 개념도 알게 되었다.
그 외에도 노드를 이용해 Git 을 제어하면서 쉘 기반의 시스템 프로그래밍에 대한 이해도가 조금씩 커짐을 느끼게 되었다.
노드 자체가 자바스크립트이니 뭐 깊게 이야기할 것은 없다. 브라우저에서도 자바스크립트를 이용해 성숙한 사용자 경험을 제공하고 오픈 API 들을 이용해 플러그인을 만들 수 있었다.
뿐만 아니라 노드에서는 마크다운 파서를 이용해 마크다운을 HTML 로 생성하거나
작성예정
작성예정
작성예정
작성예정
단순함 이 가장 큰 차이점이자 장점이다. 물론 그만큼 고급 옵션들이나 사용자에게 편안한 GUI 방식은 아직은 제공하지 않는다는 말도 된다.
하루프레스는 ' 나 지금 블로깅을 하고 싶어. 근데 웹 서버 구축하기도 싫고 데이터베이스 셋팅하기도 귀찮아. 그냥 내 컴퓨터에 글쓰고 싶을때 쓰면 바로 적용되면 좋을 텐데…' 라는 생각의 해결책이다.
하루프레스는 '나 지금 블로깅하고 싶다' 라고 생각하는 사람들에게 블로깅을 할 수 있게 해주는 도구이다. 물론 온라인에서 제공하는 많은 서비스들도 있고 직접 웹 서버 환경을 구축해서 나만의 블로그 환경을 구축할 수 있는 오픈 소스들도 많다.
이런 서비스들은 중요한 단점들이 있다. 언제든지 블로깅을 하기가 쉽지 않고 블로깅을 해야하지만
config.js
make gen
make preview
make new-post
make new-page
make new-slide
약 3개월 가량 하루프레스에 미쳐 살았다. 주변의 반응과 쏟아지는 정보를 모두 튕겨내고 한가지 일에 몰두했다.
지난 6년동안 자바스크립트의 수 많은 가능성에 도전을 해왔고 이번 프로젝트도 그 일환중에 하나였다. 2010년부터 자바스크립트의 전성시대라 대중들에게 떠들었을뿐 그 가능성을 하나씩 실현에 옮기고 싶었다.
UI 개발, 아두이노라는 마이크로 컨트롤러 제어, 음성기반의 하드웨어 제어 그리고 서버와 클리언트에 동일한 언어로 개발된 하루프레스가 그중에 하나이다.
앞에서도 이야기를 했지만 하루프레스 프로젝트를 진행하면서 깃허브의 역할은 굉장히 컸다.
간략하게 그 느낀바를 정리하면 다음과 같다.
소프트웨어 설계에도 영향을 미치는 도구이다.
내 아이가 커가는 모습을 스냅샷처럼 기록해주는 훌륭한 도구이다.