복습을 하다가 문득 Markup이라는 단어를 마주치고 갸우뚱했다. 해당 강의를 볼 때에는 당연하게 이해하고 넘어갔던 단어였는데, 현재 markdown을 사용해 블로그를 쓰는 입장이다보니 markup은 아주 정확히 무엇이고 markdown은 정확히 무엇인지, 둘이 어떻게 다른지, 둘의 이름이 비슷한 이유가 있는지 궁금해졌다.

  • markup은 특정 부분에 특정 심볼을 넣을 경우, 텍스트를 처리하는 파일(text/word processing file)이 해당 텍스트가 어떻게 보여져야 하는지 를 인지해, 그 모습대로 실행할 수 있도록 하는 어떤 약속을 하는 것이다! 쉽게 말해, 텍스트를 특정한 방식으로 꾸밀 때에 사용해야 하는 특정한 심볼들을 정한 약속이다. 텍스트에 marking up(표시)를 하는 것이다! 우리가 잘 아는, tag라고도 불리는 바로 그것이다! 예를 들어, HTML(Hypertext Markup Language)은 Web의 스탠다드 markup 언어이다. 우리는 HTML tag를 이용해 텍스트를 보기 좋게 꾸며왔다.

그렇다면 `markdown`은 무엇일까? 난 지금 `markdown`을 사용해 블로그 포스트를 꾸미고 있는데, 그럼 `markdown`이 `markup`의 하위 개념인건가??

  • 음… 맞기도 하고 틀리기도 하다. markdown은 specific한 markup 언어이다. 다시 말해, markdownmarkup 언어 중 하나다! 하지만 하위 개념이라고 말하기엔 좀 애매한 부분이 있다. markdown은 웹 작성자를 위해, text를 HTML로 변환해주는 도구인데, markdown이라는 이름은 일종의 markup에 대한 언어유희로 지어진 것이다. 웹 작성자들에게 워낙 많이 쓰이니까, markup이 아닌 markdown이라 부르자, 이렇게 장난스럽게 시작된 것인가 보다. 난 markdown이 일종의 markup 브랜드같은 것이라고 비유적으로 이해했다. 하위 개념이라기보다는 일종의 브랜드에 가깝다는 것이다. 하위 개념이 아니라 브랜드같은 거라는 표현이 잘 이해가 안 될 수 있는데, 하위 개념이라는 것은 약간, ‘고등학교’가 ‘학교’의 하위 개념인 것과 같다. 하지만 markdown은 그냥 잘 만들어진 markup language library 에 불과하기 때문에 ‘하위 개념이다’ 라고 말하기엔 애매한 부분이 있다는 거였다. 굳이 예를 들자면 markup = 시계… markdown = Rolex… 이렇게 이해했다. 내가 맞게 이해한건가…?

내가 참고한 StackOverflow 질문(여기!)에 들어가서 일부 애매한 설명에 대해 분노하는 댓글들을 직접 구경해보는 것도 좋을 것 같다. 답글을 보면 많이들 완벽하게 이해하지 못하고 지나가는 부분인 것 같다.

"You run into terminology like this, and without a clear explanation like this, it's easy to assume markdown is on the same category or concept as markup. After all, if you mark it up, it'll get marked down, right?" << 이거 보세요... 분노했어...