Difference and relation between 'Markup' and 'Markdown'
복습을 하다가 문득 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언어이다. 다시 말해,markdown도markup언어 중 하나다! 하지만 하위 개념이라고 말하기엔 좀 애매한 부분이 있다.markdown은 웹 작성자를 위해, text를HTML로 변환해주는 도구인데,markdown이라는 이름은 일종의markup에 대한 언어유희로 지어진 것이다. 웹 작성자들에게 워낙 많이 쓰이니까,markup이 아닌markdown이라 부르자, 이렇게 장난스럽게 시작된 것인가 보다. 난markdown이 일종의markup브랜드같은 것이라고 비유적으로 이해했다. 하위 개념이라기보다는 일종의 브랜드에 가깝다는 것이다. 하위 개념이 아니라 브랜드같은 거라는 표현이 잘 이해가 안 될 수 있는데, 하위 개념이라는 것은 약간, ‘고등학교’가 ‘학교’의 하위 개념인 것과 같다. 하지만markdown은 그냥 잘 만들어진markuplanguage 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?" << 이거 보세요... 분노했어...