언어/HTML+CSS

[HTML] HTML은 프로그래밍 언어인가? 이력서에는 어떻게 작성하지?

보리시스템 2022. 10. 5.

목차

   1. 결론

   2. 들어가는 말

   3-1. [로직의 관점] 로직이 없어 아니다 vs 로직이 있다 vs 그건 로직이 아니다
   3-2. [튜링 완전함의 관점] 튜링 완전함이 없어서 아니다 vs 튜링 완전함이 있다

   # 살펴보기


 

1. 결론

 

HTML이 프로그래밍 언어인가에 대한 논쟁은 이렇게 정리할 수 있다.

  • 아니다 : 로직, 튜링 완전함이 없기 때문에 프로그래밍 언어가 아니다.
  • 맞다 : 마크업 언어도 프로그래밍 언어가 될 수 있다.

 

사실 이 논쟁은 중요하지 않다. HTML은 HTML일 뿐이고, 고품질의 웹과 앱을 만들기 위해 필요한 언어라는 것이다. 굳이 HTML과 프로그래밍 언어를 구분한다고 하면 이러하겠다.

  • HTML : 표현 방식(구조, 서식 등 골격을 만듦)
  • 프로그래밍 언어 : 실행 방식(시스템, SW 구동시킴)

 

하지만 이력서에는 어떻게 써야 할지를 생각하면 고민이 된다. 더불어 직무와 관련있는 중요한 것만 적어넣을 경우, HR에서 해당 기술을 다루지 못한다고 오해할 수도 있다고 하니 적긴 적어야 하는데...

 

논쟁이 있다는 건 개발자마다 다르게 생각할 수가 있다는 것이다. 내가 지원한 회사의 CEO, 인사 담당자가 '아니다'라고 할 수도 있고, '맞다'라고 할 수도 있다. 이럴땐 논쟁을 피하는 방법으로 이력서를 작성하는 것이 최선일 것이다.

 

 

방법1. Front/Back-End, Database 등으로 구분해 작성

Front-End: Javascript, Typescript, React, Redux, React-native, Next.Js, HTML/CSS
Back-End: Node.js
Database: PostgreSQL, AWS DynamoDB

 

방법2. Markup/Programming Languages, Database/Application Server 등으로 구분해 작성

Markup Languages: HTML, XHTML, XML, VXML

Programming Languages : ...

Database Server: Oracle 9i/10i, PostgreSQL

Application Server: Tomcat 4.0/5.0.9, JBoss4.0x, Weblogic8.1/9.x, WebSphere Application Server7.0

Repository: CMSynergy6.3, RSA SVN, Eclipse CVS

IDE/ Tools : ...

Architectures/Middleware : ...

 

 


 

2. 들어가는 말

 

프로그래밍 질의응답 사이트인 Stack Overflow라는 해외 사이트에 올라온 질문이다. HTML이 프로그램인지에 대해 2008년에 올라온 해당 질문은 현재 기준 2021년까지 답변이 올라오고 있다.

 

질문자의 내용은 이러하다.
 
"HTML의 L이 언어임에는 분명하나 프로그래밍 언어로서 인정이 되고 있는지 궁금합니다. 이력서에서 HTML과 XML과 같은 언어를 프로그래밍 언어 분류에 넣어도 괜찮을까요? 바보처럼 보이고 싶지 않습니다. 하지만 분류하는 명확한 방법을 찾을 수가 없네요." 

 

해당 글의 답변 댓글을 보면 개발자마다 의견이 갈린다. 어떤 근거로 각자의 의견을 주장하고 있는지 살펴보았다.

 

(답변과 댓글을 하나씩 읽다보면 참 재밌다. 누군가가 어떤 언어에 대해 튜링이 완전하지 않기 때문에 프로그래밍 언어가 아니지 않냐고 적은 답변에 누군가는 그 언어의 튜링은 완전하다고 댓글을 달았다. 그 언어를 만든 사람만 알지 않을까? 아니 어쩌면 모를 수도 있겠다. 수능 국어 문제에서처럼 '가장 적절한 답'을 그 작품을 쓴 작가도 모를 수 있는 것처럼 말이다.)

 

 


 

3-1. [로직의 관점] 로직이 없어 아니다 vs 로직이 있다 vs 그건 로직이 아니다

1. 논리적 구조가 부족하기 때문에 프로그래밍 언어라고 할 수 없다. 

The 'M' stands for a 'Markup'. It's a 'Markup Language' not a programming language. Some people will disagree with this, but my opinion is that if it lacks logical constructs (conditional branching, iteration, etc) its not really a programming language.
-Mark Roddy answered Sep 28, 2008

HTML is in no way a programming language. Programming languages deals with ''proccessing functions'', etc. HTML just deals with the visual interface of a web page, where the actual programming handles the proccessing. PHP for example. If anyone really knows programming, I really can't see how people can mistake HTML for an actual programming language.
- brian d foy edited Nov 30, 2009 / answered Sep 30, 2008

 

2-1. 선형형(declarative) 프로그래밍 언어이다.(직무와 관련있는 중요한 것만 이력서에 넣길 바라겠지만, 적지 않았을 경우 인사 담당자가 HTML을 모른다고 생각할 수도 있어요. 실제로 겪은 바 있답니다.) 

* 더보기 : 선형형 vs 명령형 프로그래밍 차이

YES, a declarative programming language. You really want to list the most important things you know that are relative to the job you're applying for on your resume. If you list ASP.NET but don't list HTML, even though it's somewhat obvious, there are a lot of managers and/or HR types that will assume you don't know HTML since it's not listed. I've had it happen to me before.
- Chris Pietschmann edited Jun 8, 2012 / answered Sep 28, 2008

 

2-2. 선형형이라 하더라도 HTML에서는 loop를 쓸 수 없다.

declarative, yes. Programming, no. How will you write a loop in HTML?
– Thorbjørn Ravn Andersen Jun 6, 2012

 

3. hello world가 프로그램이면 HTML도 프로그램이다. hello world에도 로직이 있다. IDE는 필수적인 프로그램 구조를 준비한다.  (HR에 대해서는 1) Chris에 정말 동의한다.)

If hello world is a program, then html pages are programs, since they are merely a more complex hello world. Ergo, html is a programming language, since it instructs the computer on what to do. I am with this guy.
 – freespace Sep 28, 2008

Not true. Even hello world has logic in it. Just because your favorite IDE prepares the necessary program structure under the covers, or only a few keywords are needed to print to the output, there is logic at work. I do agree with Chris here about HR though.
– Ed S. Oct 1, 2008

 


 

3-2. [튜링 완전함의 관점] 튜링 완전함이 없어서 아니다 vs 튜링 완전함이 있다

* 더보기 : 튜링 완전함이란?

 

1. '프로그래밍 언어'는 계산 가능 함수(computable functions)로 표현할 수 있는 다시 말해 튜링이 완전한 모든 언어를 의미한다. 그렇기 때문에 HTML은 마크업 언어이지 프로그래밍 언어가 아니다.

In the advanced programming languages class I took in college, we had what I think is a pretty good definition of "programming language": a programming language is any (formal) language capable of expressing all computable functions, which the Church-Turing thesis implies is the set of all Turing-computable functions. By that definition, no, HTML is not a programming language, even a declarative one. It is, as others have explained, a markup language. But the people reviewing your resume may very well not care about such a formal distinction. I'd follow the good advice given by others and list it under a "Technologies" type of section.
- Michael Ekstrand Jan 27, 2012

 

2. HTML5와 CSS3도 튜링이 완전하다.

Apparently, HTML5+CSS3 is turing complete too: lemire.me/blog/archives/2011/03/08/…
– e-satis Dec 25, 2011

 

3. TeX는 튜링이 완전한 언어로 프로그래밍 언어와 마크업 언어 사이의 구분이 조금은 불분명하다.

* 더보기 : 마크업 언어란?

TeX is a Turing-complete language, so its classification as a programming language or markup language is a bit blurry. :)
– mipadi Mar 26, 2010

 

4. 튜링 완전함으로 프로그래밍 언어 여부를 가르는 건 좋은 정의는 아니다. C는 튜링이 완전하지 않지만, HTML5, CSS3는 완전하다. 하지만 HTML은 일반적인 프로그래밍 언어는 아니다.

* 더보기 : C언어의 튜링은 완전하다고 할 수 있는가?

*모든 C 구현은 intptr_t을 어떤 정수로 정해놔야 해서 무한한 메모리 접근을 할 수 없다. 그렇기 때문에 튜링이 완전하다고는 할 수 없다.

Not so good definition because C is not Turing complete while HTML5 + CSS3 are, so I would just say HTML is not 'general' programming language, just a highly specialized one.
– Serge Aug 20, 2018

 

 


# 살펴보기

1. stackoverflow 질문 페이지

 

Is HTML considered a programming language?

I guess the question is self-explanatory, but I'm wondering whether HTML qualifies as a programming language (obviously the "L" stands for language). The reason for asking is more pragmatic&mdas...

stackoverflow.com

 

2. 이력서 작성 참고 페이지

 

주니어 프론트엔드 개발자 이력서 작성 팁

이전글 주니어 프론트엔드 개발자 이직 팁에서 언급한대로 프론트엔드 개발자는 어떻게 이력서를 작성해야 하는지 개인적인 생각을 공유하도록 하겠습니다.…

www.sizplay.dev

 

3. HTML의 프로그래밍 언어 여부에 대한 논쟁 정리 참고 페이지

 

Home

yceffort

yceffort.kr