마크업과 마크다운의 차이

개발을 시작한 지 약 두 달, 인터넷의 개발 블로그들을 보면서 나도 개인적인 개발 블로그를 하나 갖고 싶은 욕구가 생겼다.

쓸데없는 잡지식을 몇 개 주워들었던 나는, 웹 페이지에 글을 쓰기 위해서는 Markdown을 사용한다는 것을 알고 있었다. 근데 무엇이 Markdown이지?

모를 때는 역시 구글링이지 생각하며, Markdown을 구글링하니 다음과 같은 정보를 볼 수 있었다.

“Markdown은 Markup language의 일종이다.”

HTML, CSS, Javascript를 공부하고 있던 나에게 위 문장은 이해가 잘 가지 않았다. HTML이 Markup language이라는 건 몇 번 들어봤지만, 웃기게도 나는 내가 사용하는 Markup language가 무엇을 의미하는지 잘 모르고 있었다.

의문이 들면, 공부를 해야 하고, 공부한 것을 잊어버리지 않으려면 기록을 남기는 게 최고의 방법이라고 생각한다. 또한, 초보 개발자인 내가 가려야 할 지식이 있을까(?)도 싶다. 그래서 Markup이 무엇인지, Markdown은 또 무엇인지 한 번 알아보도록 하겠다.

1. Markup Language

Markup Language를 검색하면 다음과 같이 나온다.

“마크업 언어(Markup Language)는 문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 언어의 일종이다. 데이터를 기술한 언어라는 점에서 프로그래밍 언어와는 차이가 있다.”

우리는 “데이터의 논리구조를 명시하기 위한 규칙들을 정의한 언어의 일종”이라는 부분에 집중해야 한다. 어떠한 데이터를 가지고 그것을 수학적으로 가지고 놀겠다는 의미가 아니라, 데이터를 화면에 표시하기 위해서 사용하는 언어라는 것이다.

위 내용을 자세히 읽어보고, 아래에 있는 각종 개발 블로그나 SNS 등에 올라오는 meme을 한번 보자.

alt

A: “언어 뭐 할 줄 아세요?”
B: “HTML이요”
A: ”…?”

여기서 웃어야합니다(하하하)

위의 내용에서 말했듯이, HTML은 데이터를 기술하기 위한 markup language다. 컴퓨터 공학에서 일반적으로 사용하는 언어라는 개념은 마크업 언어가 아닌 프로그래밍 언어임을 우리는 모두 알 것이다.

2. Markdown

그러면 Markdown은 무엇일까? Markdown을 검색하면 다음과 같이 나온다.

“마크다운은 마크업 언어의 일종으로, 존 그루버(John Gruber)와 아론 스워츠(Aaron Swartz)가 만들었다. 온갖 태그로 범벅된 HTML 문서 등과 달리, 읽기도 쓰기도 쉬운 문서 양식을 지향한다. …”

위에서 기술했듯이, 마크다운은 마크업 언어가 태그(<div> </div>과 같은 구조)로 이루어져 사용하기 힘들어서 만들어진 마크업의 파생형이다.

읽기도 쓰기도 쉬운 문서 양식을 지향하기 때문에, 복잡한 태그 구조가 사라지고 간단한 텍스트들과 몇 가지 문법만 알면 작성할 수 있게 했다.

지금 작성되고 있는, (당연하지만) 이 글도 Markdown을 사용하고 있다. 확장자명이 .md이며, 지금 이 글을 보고 있는 당신도 Markdown을 배운다면 blog를 만들 준비가 되었다는 의미이다!

이로써 기본상식인 Markup과 Markdown의 차이를 알아보았다.

만약 이 글을 읽고 있는 당신이 나처럼 Web Front-End Engineer를 지망하고 이에 대한 지식을 몰랐더라면 이 글을 읽어서 지식을 얻었다면 좋겠다.

이로써, 나의 github blog의 첫 번째 글을 마무리하겠다 :)


Written by@[Yunhoe Ku]
For studying computer vision

GitHub