HTML은 지난 XML과 JSON 블로그에서 다뤘지만 CSS와 JavaScript는 전혀 공부한 적이 없기 때문에 감도 잘 안잡힌다. 이번 시간에 셋의 개념과 특징, 차이점들을 자세히 알아보고자 한다.
우선! 그 전에 위의 세가지 모두 웹 개발에서 중요한 프론트앤드 영역의 구조적인 부분을 구현하는 중요한 부분을 담당하고 있고 이를 이해하는 것이 프로젝트의 완성도를 높일 수 있다는 것을 알고 가면 좋을 것 같다.
앞서 말했듯이 HTML은 XML을 설명하는 블로그에서 잠깐 나왔었다. 그 내용을 일부 가져와보자.
HTML과 XML의 차이
구조를 이루고 태그로 명시하는 마크업 언어라는 점은 비슷하나 HTML은 웹페이지의 구성 및 구조를 나타내는 데 목적이 있고 XML은 이런 웹과 다양한 시스템에 정보를 주고 받는 데이터 전송에 목적이 있다.
또한 HTML은 태그들이 정해져 있어 HTML을 지원하는 브라우저라면 공통적으로 동작할 수 있도록 하지만 XML은 데이터를 편리하게 주고 받을 수 있도록 태그에 제한이 없다.
결국 HTML은 XML의 형식으로 웹을 표현할 수 있도록 태그를 미리 정해 둔 언어라고 할 수 있다.
여기서 말했듯 HTML은 XML과 같은 구조를 가지고 있지만 태그가 정해져있다는 사실을 기억하고 아래의 내용들을 정리해 본다.
간단하게 사전적 정의를 먼저 보자.
하이퍼 텍스트 마크업 언어(영어: Hyper Text Markup Language)는 웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다. 또한, HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 그리고 이미지와 객체를 내장하여 대화형 양식을 생성하는 데 사용될 수 있다.
이 사전적 정의 부분에서 알 수 있는 것들은 아래와 같다.
위의 의견을 종합해 본다면
→ HTML이란 인터넷 브라우저가 알아들을 수 있는 기본적인 마크업 언어로 다양한 데이터들의 구조적 의미와 문서화를 할 수 있도록 도와주는 언어이다.
개념에서 말했듯이 HTML은 구조적 의미를 표기하는 언어라고 했는데 이때 이런 구조를 설명하기 위해서는 컴퓨터도 알아들을 수 있는 특정 방법이 필요하다. 이때 사용하는 것이 바로 태그이다.
기본적으로 HTML 태그는 <>를 이용해 구분한다. 이 태그가 나올 때 부터 </> 가 나올 때 까지 그 사이에 있는 데이터는 이 태그에 대한 내용임을 알려주는 것이다.
이런 태그에도 종류가 있는데 그 종류는 아래에 적어둔다.
HEAD 태그 <>
웹 브라우저 내부엔 표시되지 않지만 웹 브라우저가 해당 문서를 읽을 때 필요한 정보를 담고 있다. 특히 웹 페이지의 규약, 제목 등을 비롯해 웹 페이지의 기본 내용들이 많이 담겨있다.
BODY 태그 <>
웹 브라우저가 웹 페이지에 표시해야 하는 정보들을 담고 있는 영역이다. 해당 태그를 열고 닫음으로 데이터를 표시하고 정해진 태그들을 이용해 어떤 정보인지 표시한다.
<!doctype html>
<html>
<head>
<title>HTML 예시</title>
<meta charset="utf-8>
</head>
<body>
<h1>HTML 예시</h1>
<p>
HTML은 꼭 알아야 할까요? 네~ 꼭 알아야합니다~
</p>
</body>
</html>
예시에서 보면 시작 할 때 이 문서의 타입이 HTML임을 명시하고 태그 안에 정보들이 들어가게 된다.
그리고 태그의 종류에서 봤듯 head와 body로 구분된다.
이전 블로그에서 XML을 공부할 땐 HTML과 다르게 태그의 다양성을 부여해 원하는 태그를 생성함으로써 다양한 데이터를 전송할 수 있도록 한다고 했었다. 그렇다면 HTML의 태그를 특정 태그를 지정해 제한하는 이유는 무엇일까?
단어의 뜻 그대로 의미 있는 마크업을 사용한 HTML이란 뜻이다. 위에서 말했듯 head, body 등으로 태그의 의미를 미리 정해둔 것을 의미한다. 이렇게 한다면 아래와 같은 장점들을 가질 수 있다.
→ 결국 사람들이 보기 쉽고 데이터를 명확히 구분 지어서 추후 활용에 용이하게 하기 위해 시멘틱 마크업을 사용한다.
이 단어는 처음 들어보는 것이어서 감이 잘 안온다. 개념부터 차근차근 접근해보자.
종속형 시트 또는 캐스케이딩 스타일 시트(영어: Cascading Style Sheet)는 마크업 언어가 실제 표시되는 방법을 기술하는 스타일 언어(영어: Style sheet language 스타일 시트 랭귀지)로, HTML과 XHTML에 주로 쓰이며, XML에서도 사용할 수 있다. W3C의 표준이고, 레이아웃과 스타일을 정의할 때의 자유도가 높다.
위의 사전적 정의를 요약해 보자면.. 필요한 데이터들은 HTML 태그들을 이용해 구분 했으니 이를 시각적으로 더 예쁘고 직관적으로 보이게 하기 위해 style을 바꿀 수 있도록 도와주는 스타일 시트 언어인 것이다.
CSS는 결국 HTML에 디자인적 요소를 추가하는 것이니 HTML에 CSS에 관한 내용들을 넣을 수 있어야 한다. 이것에는 크게 3가지 방법이 있다.
내부 스타일 시트
head 태그 사이에 style 태그를 이용해 작성한다.
HTML과 CSS가 한 파일에 있어 작업이 쉽고 간편하지만 CSS 재활용이 어렵다.
→ 권장되지 않는다.
외부 스타일 시트
가장 기본적인 방법. 별도의 파일에 CSS 문서를 작성하고 필요 시 파일을 불러온다. 이때 CSS는 동일한 서버에 있거나 url을 통해 다른 서버에서 불러올 수 있다.
인라인 스타일
HTML 태그에 필요한 디자인 속성을 직접 작성한다. 그때그때 적용 가능하다는 편리함이 있지만 일관된 디자인 체계를 유지하는 데엔 방해가 되기 때문에 꼭 필요한 경우가 아니면 사용이 권장되지 않는다.
위의 적용 방법들 처럼 다양한 방법으로 스타일을 작성 가능하다 보니 우선순위에 따라 먼저 지정되는 것이 있다. 이 순서는 아래와 같다.

전체 구조는 rule set 혹은 rule 이라고 불린다. 여기엔 위의 사진과 같이 Selector, Declaration, Property, Property Value가 있다.
위의 요소 뿐 만 아니라 아래의 문법도 중요하다.
p {
color: red;
width: 500px;
border: 1px solid black;
}
위의 구조에 따라 이 예시를 보면
p에 속한 요소는 빨간색을 가지고 가로의 길이는 500px이며 경계는 1px의 검정 실선으로 되어있음을 알 수 있다.
자바 스크립트, 흔히 JS라고 부르는 이것은 또 무엇인가? 진짜 모르겠다… 나는 이것 또한 이전에 쓴 블로그에서 JSON을 공부하며 JSON이 JS의 기본 구조를 활용한 문서 양식이란 것을 배웠었는데 이를 생각하며 알아본다.
자바스크립트(영어: JavaScript)는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용되며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다.
스크립트 언어는 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다.
자바 스크립트와 스크립트 언어의 사전적 정의를 가지고 왔다. 이해가 가는 듯 하면서도 안가는.. 묘한 느낌이지만 결국 요약해 본다면 아래와 같을 것이다.
→ 웹 사이트의 생동감과 상호작용을 제공한다.
JS는 프로그래밍 언어이면서 화면 구성과 동작을 연결 시켜 주는 언어인 만큼 독특한 특징들이 있다.
쭉 살펴보면 HTML, CSS, JS는 각각 하지 못한 것들을 하나씩 추가해 간다. HTML이 구조적인 문서를 만들어 데이터를 요소에 따라 분류하고 CSS는 그런 데이터들을 시각적으로 보기 편하도록 스타일한다. 마지막으로 JS는 이렇게 구성된 웹페이지에 동적으로 상호작용 할 수 있도록 해 페이지에 역동성을 더해준다.

딱 이 그림에서 보이듯 HTML은 뼈대, CSS는 외관, JS는 신경망을 이룬다고 할 수 있다.
HTML 웹 사이트의 구조를 태그를 이용해 구성한다.
CSS 웹 사이트를 시각적으로 구별하고 꾸밀 수 있게 한다.
JS 사이트에 동적 작용을 추가해 사용자와 상호작용을 할 수 있도록 만든다.