이 질문은 약 16년 전 스택오버플로우에 올라온 질문이다.
수많은 답변과 그 답변에 대한 댓글이 달리고, 날이 선 토론과 논쟁을 유발할 수 있다는 이유로
현재는 추가적인 의견 작성이 막혀버린 전설의 질문이다.
이 질문을 통해 개발자라면 한 번쯤 봤을 법한 수많은 밈과 짤이 나돌게 됐는데
밈만 보고 '하하하 맞지, 누가 HTML을 프로그래밍 언어라고 하는 거야? 나 참 하하' 하고 웃고 넘길 수 있는데
누군가 '왜 아니야?' 라고 물어봤을 때, 무심코 하늘을 멍하니 쳐다보게 된다면 오늘 이 글을 주목해 보자.
HTML
우선 HTML의 풀 네임을 살펴보면 Hyper Text Markup Language다.
뜻의 풀이를 보면 관련 있는 항목을 연결하는 텍스트로 구성된 언어라는 건데,
쉽게 말해서 페이지의 구조를 잡는 언어라고 이해하면 되겠다.
다시 돌아와서, 위의 질문에 대한 답변을 한다면
"HTML은 프로그래밍 언어가 아니라 마크업 언어다"라고 심플하게 답변할 수 있겠다.
그럼 프로그래밍 언어는?
보통 처음 웹 개발에 대해서 공부하고 HTML, CSS, JS (Javascript)에 대해서 배울 때,
신체를 이루는 구조에 빗대어 설명하는 경우가 종종 있는데,
HTML은 뼈로, CSS는 살로, JS는 뇌와 신경으로 비유를 한다.
우리의 뼈는 전체적인 골격을 만드는 토대가 되는데,
어떠한 상황과 조건에 따라서 분해되었다가 붙었다가 다른 곳으로 이동했다가 할 수 없다.
뼈는 그 자리에서 신체를 지탱하고 유지하는 구조다.
그래서 페이지의 구조를 잡는 HTML을 사람의 뼈에 비유하는 것이다.
다시 돌아와 프로그래밍 언어는 메모리에서 데이터를 읽고, 조건과 반복에 대한 논리를 통해
프로그래밍을 할 수 있도록 제공해야 한다고 하는데, HTML에는 그러한 기능들을 지원하지 않는다.
HTML만으로는 한번 잡힌 구조를 변경하는 방법이 없기에, 프로그래밍 언어라고 하지 않는다.
사실 HTML을 프로그래밍 언어라고 착각할 수도 있는 게,
웹이 발전하기 전에는 웹에 단순 텍스트만 보여주고 하이퍼링크를 통해 페이지를 이동하는 구조였기에
HTML만으로도 페이지를 구성할 수 있었다.
그러나 현재의 웹은 다양한 스타일의 변화와 사용자와의 상호작용도 다양하게 발생하기에
점점 복잡해지는 구조로 이루어지고 있다.
그러한 웹을 개발하는 개발자는 HTML, CSS, JS를 무조건 함께 사용하기 때문에
HTML이 프로그래밍 언어라고 생각할 수도 있지 않을까 하는 변명 아닌 변명을 해본다.
요약
HTML은 프로그래밍 언어가 아닌 마크업 언어다.
프로그래밍 언어는 메모리에서 데이터를 읽고, 조건과 반복에 대한 논리를 통해 프로그래밍을
할 수 있도록 지원하는 언어를 뜻하는데, HTML은 이러한 기능을 지원하지 않는다.
포스팅 작성에 참고한 감사한 글들
'Stack > HTML' 카테고리의 다른 글
input 태그의 inputmode 속성 : 가상 키보드 타입 지정하기 (0) | 2024.12.02 |
---|---|
section과 article : 같은 듯, 다른 듯 애매한 둘 (1) | 2024.11.03 |
attribute와 property의 차이 : 아니 왜 같은 속성인데 왜 달라요? (0) | 2024.10.17 |
DOM이란? : 돔돔 돔돔 돔돔 (1) | 2024.10.16 |
HTML에서 JS를 불러오는 최적의 위치와 설정은? (2) | 2024.10.11 |