2019년 1월 24일, 열 여섯 번째 출근

html-is-not-a-programming-language-l-program-in-html-31459651.png

이런 조크가 있다. 코딩 세계에 갓 입문한 사람이나 일반인은 무슨 말인지 어리둥절 하겠지만 개발자 세계에서는 꽤나 고전 유머다. 프로그램을 만들 때 코드를 작성하여서 만드니까 프로그래밍 = 코딩하는 것 => HTML로 코딩 = HTML로 프로그래밍하는 것 이라고 생각하기 쉬운 비개발자 혹은 입문자들의 흔한 착각이 유머로 만들어진 것이다.

HTML은 그럼 뭔데?

결론부터 말하자면 마크업(mark up) 언어다. 마크업이란

마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다. 태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이였으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었다. 이러한 태그 방법의 체계를 마크업 언어라 한다. -위키백과

라고 어렵게 어렵게 쓰여있는데 더 쉽게 설명하자면 빨간펜을 들고 원고 초안에다가 줄을 좍 긋고 "여기는 이렇게, 여기는 뺴고, 여기는 크게 키워! 여기는 맞춤법 틀렸네? 이렇게 고쳐, 여기에는 여백을 좀 주고, 여기는 줄 바꿈을 하자! 그리고 사진은 여기다가 넣는 거야 ..." 이렇게 첨삭하는 것을 말한다. HTML은 웹에서 보여지는 이미지와 하이퍼텍스트들을 어떻게 넣을 지 지정하는 언어이므로 마크업 랭귀지라고 하는 것이다.

armyas_com_20131108_143714.jpg

그렇다면 마크다운(Markdown)이란?

마크다운도 마크업의 한 종류이다. <h1>제목이 어쩌구</h1> <p>본문이 어쩌구</p>이런식으로 꺽쇠와 슬래시 기호뿐만 아니라 이미지나 링크라도 넣을라면 href 같은 속성도 넣어줘야 되고 손이 많이가고 귀찮은 마크업 문법을 문서 작업에 특화되어 있는 부분만 간단한 문법 체계로 만든 것이다. 벨로그에서 블로그 글을 작성하는 사람이라면 다 알 테고 나무위키도 그러한 문법으로 작성되어 있다. 리스트를 표현하는 방식, 제목과 부제목, 부부제목을 표현하는 방식이 정해져있으니 어느 페이지든 통일된 폰트, 통일된 서식으로 문서를 볼 수 있는 것이다.

아는 사람은 다 알테니 몇 가지 설명하자면 기본적으로 열림닫힘이 있고 그게 무엇인지에 따라 그 사이에 것들이 형식을 갖추게 되는 것이다.
##사이는 완전 큰 대 제목이 들어간다. 그리고 #### 사이는 조금 더 작은 제목, ###### 사이는 그것보다 더 작은 제목 .. 이런식이다.

# 한 개 => 완전 큰 대 제목

# 두 개 => 그 다음 큰 제목

# 세 개 => 부제목?

# 네 개 => 제목이라고 할 수 있을까

# 다섯 개 => 그냥 조금 큰 글씨 정도..
# 여섯 개 => 본문이나 다를 바 없는 것 같은데?

####### 일곱개는 인정 안됨. #######

__사이는 기울어진 글씨,
이런식 으로 쓴다.
____사이는 굵은 글씨,
이런식으로 쓴다.
나무위키에서 자주 볼 수 있는 취소선 드립~~~~.

깃헙에서 볼 수 있는 README.md 들이 전부 마크다운 파일인 것이다. 마크다운을 지원하는 플랫폼마다 미묘하게 지원하는 범위도 다르고 문법도 약간씩은 달라 질 수 있는데 크게 다르지는 않다. 물론 마크다운을 한 번도 안 써본 개발자도 있겠지만 나는 마크다운을 쓸 줄 아는 개발자들은 다 마크다운을 사랑할거라고 생각한다. 편하니까!

그리고 에버노트

스마트폰을 처음 쓰고 이 앱, 저 앱 깔아보고 신기해하고 그랬던 스물 세살의 나는 에버노트라는 앱을 마음에 들어했다. 나는 그 당시의 이런 저런 기능들을 그다지 스마트하다고 생각하지 않았는데 에버노트는 정말로 스마트했다! 폰에서 작성한 노트가 PC에서 그대로 보여지는 것. 지금은 아무렇지 않을 기능이겠지만 그 당시 클라우드 개념이 일반인들에겐 따끈따끈한 신기술이었다. 뿐만 아니라 에버노트의 디자인이라던가 인터페이스 자체도 마음에 들었고, 저장버튼이 따로 없이 내가 뭔가 수정하고 나면 그걸로 바로 저장! 센세이션이었다.

그 때 당시의 내 여자친구도 지금은 어디서 뭘하는지 에버노트를 사랑했었는데 에버노트가 적자를 보고 있다는 소식을 듣고 유료 계정으로 바꿨다고 했다. 나는 그 정도까진 아니었지만 내가 사용하는 모든 컴퓨터마다 에버노트를 설치했고 핸드폰을 바꿔도 에버노트를 꼭 설치하여 사용하였다.

그리고 마크다운을 알게 되고 구글에 에버노트에서 마크다운 문법을 지원하지는 않는지 아니면 플러그인이 있어 적용하는 방법이 있는지 수없이 검색했지만 .. 없었다. 뭐 너무나 아쉽지만 이제껏 내가 작성했던 뻘글, 미완성 글, 메모, 영감, 광고카피 등이 다 에버노트 DB에 있어서 바꾸기도 쉽지 않았고 그냥 쓰는 중이다.

회사에 입사하고 내 컴퓨터에 에버노트를 깔았는데 ..띠용? 에버노트 무료 계정은 계정당 두 대의 단말기만 지원한다는 것! 내 노트북에 하나, 내 폰에 하나 이렇게 부족함없이 쓰고 있었는데 내 회사 컴퓨터에도 연결을 하려니 돈을 내야한다는 것...

그래서 나는...

에버노트가 완성도가 낮은 앱도 아니고.. 사실 뭐 한달에 몇 천원 정도 충분히 낼만한데 .. 뭐랄까, 그.. 돈이 아까워서 그런건 아니고 돈이 없어서 그런건 맞고 .. 그 뭔가 이루 말할 수 없는 복잡한 감정때문에 나는 유료로 사용하진 않을 거다. 나는 개발자니까. 나는 만들기로 했다. 시간은 오래 걸릴 것이다(회사를 다니고 있으니까). 꽤 완성도 있게 만들 것이고(내가 써야되니까) 좀 만족스러운 작품이 나오면 지인들에게도 좀 권유를 해볼까..한다. 생각해본 스펙으로는 다음과 같다.

  • 서버는 Node.js
  • DB는 MongoDB(MLab과 Mongoose를 사용하지 않고 MongoDB 본사(?)에서 제공하는 API를 활용해볼까 한다.)
  • 클라이언트는 React + Redux (회사에서 Vue만 쓰니까 React 까먹을까봐...)
  • 마크다운
  • 폰에서도 봐야하니까 PWA로...
  • 타입스크립트...

대충 이 정도 생각해봤는데.. 쓰고 보니 그냥 돈주고 쓰는게 낫겠다는 생각도 들고 좀만 찾아보면 마크다운을 지원하는 에버노트의 대체 앱이 정말 많지 않을까 생각도 들지만.. 그래도 만들어보고 싶다는 마음이 더 큰 것 같다. 완성하고 배포하는데 얼마나 걸릴지는 장담할 수 없지만.


ps. 에버노트가 마크다운 지원한다면 진짜 유료로 전환했을지도 모른다.