HTML란
HTML(Hypertext Markup Language)는 프로그래밍 언어가 아니고 웹페이지가 어떻게 구조화돼 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어입니다.
마크업 언어
는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지를 뜻합니다.
HTML은 요소들(elements)로 구성돼있으며, 요소(element)는 태그(tag)와 내용(content)으로 이뤄져있습니다.
CSS란
CSS(Cascading Style Sheets)은 HTML과 같이 프로그래밍 언어가 아니고 HTML 문서에 있는 요소들에 선택적으로 스타일을 적용할 수 있는 스타일 시트 언어입니다.
Javascript란
Javascript는 웹페이지에서 복잡한 기능을 구현할 수 있는 프로그래밍 언어입니다. HTML의 내용들(contents)을 동적으로 바꾸고 애니메이션을 추가하는 등의 기능들을 구현할 수 있는 스크립팅 언어였지만 이제는 Node.js를 활용하여 서버 제작은 물론이고, PC를 위한 앱/프로그램을 만들 수 있는 범용적인 프로그래밍 언어가 되었습니다.
여기서, 스크립팅 언어(scripting language)란 주로 기존에 존재하는 소프트웨어를 제어하는 용도로 쓰이는 컴퓨터 프로그래밍 언어를 가리킵니다. 또한 스크립팅 언어의 대부분은 인터프리터 방식을 사용합니다.
수정이 자주 발생하는 덩치가 큰 소프트웨어에서 컴파일은 시간이 오래 소요되는 작업이므로, 수정이 빈번하게 발생하는 부분에서는 소스코드를 한줄씩 읽어 바로 실행하는 인터프리터 방식이 효율적이기 때문입니다.
<div>
, <span>
요소가 무엇이고, 어떤 차이가 있는지 설명할 수 있다.<ul>
,<ol>
,<li>
요소가 무엇인고, 언제 사용해야 하는지 알고 있다.<input>
요소에 type
을 설정하여 다양한 종류의 <input>
요소를 활용할 수 있다.<!DOCTYPE html> // 이 문서가 HTML 문서임을 명시
<html> // html 시작 태그로, 문서 전체의 틀을 구성
<head> // head 태그는 문서의 메타데이터를 선언
<title>Page title</title> //문서의 제목, 브라우저의 탭에 보여짐
</head>
<body> // body 태그는 문서의 내용을 담는 곳
<h1>Hello world</h1> // heading을 의미하며, 크기에 따라 h1부터 h6까지 있음
<div> Contents here // content division을 의미하며, 줄바꿈됨
<span>Here too!</span> // 줄바꿈이 없는 content 컨테이너
<div> // div 태그가 끝났음을 의미
</body> // body 태그가 끝났음을 의미
</html> // html 태그가 끝났을을 의미
마크업 언어
는 이러한 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지입니다.태그 내부에 내용이 없다면 단일 태그<tag/>
로도 표현할 수 있습니다. 주로 문서에 무언가를 첨부하기 위해 사용하는 요소이고 빈 요소(Empty elements)라고 합니다.
아래의 코드는 위 요소 이미지 출력 코드입니다.
<img src="(https://mdn.mozillademos.org/files/9347/grumpy-cat-small.png">
태그 | 설명 |
---|---|
<div> | Divison의 약어. div 태그는 한 줄을 차지합니다. |
<span> | span 태그는 컨텐츠의 크기만큼 공간을 차지합니다. |
<img> | img 태그는 src 속성과 함께 사용합니다. 이미지 삽입에 사용하는 단일 태그입니다. |
<a> | a 태그는 anchor(닻; 배의 위치를 고정)의 약자로, href 속성과 함께 사용합니다. 다른 웹페이지로 연결되는 하이퍼링크를 HTML문서에 표시할 때 사용하는 태그입니다. |
<p> | p 태그는 paragraph(문단)의 약자로, 하나의 문단을 표현하기 위하여 사용합니다. |
<ul>, <li> | Unordered list의 약어이며, ul 태그 안에 li 태그를 넣어서 순서 없는 리스트를 생성합니다. |
<ol>, <li> | Ordered list의 약어이며, ol 태그 안에 li 태그를 넣어서 순서 있는 리스트를 생성합니다. |
<input> | type, placeholder, value 등 다양한 속성과 함께 사용하며, 속성값에 따라 다양한 입력폼을 만들 수 있습니다. 단일 태그 입니다. |
<textarea> | input 태그와는 다르게 줄바꿈이 되는 입력폼이며, 단일 태그가 아닙니다. |
<button> | button 태그는 버튼을 만드는 태그입니다. |
<form>
<form>
요소는 일반적으로 사용자가 입력한 값을 다른 페이지로 전송하는 역할을 합니다. 예를 들어 로그인 시 <form>
요소를 사용하여 <input>
요소, <button>
요소 등의 자식 요소를 감싸는 경우에 자주 사용됩니다. 목적이 명확하므로, 단순히 영역을 나누기 위해 사용하는 <div>
요소보다는 더 sementic한 요소 사용이라고 할 수 있습니다. 단,페이지 전환이 되는 액션이 발생할 수 있으므로, 주의가 필요합니다.
<input>
속성 예시
<input type="text" palceholder="type here">
<div>
<input type="radio", name="choice", value="a"> a
<input type="radio", name="choice", value="b"> b
</div>
<textarea></textarea>
<div>
<input type="checkbox" checked> checked
<input type="checkbox"> unchecked
</div>
위 내용에서 언급한 속성(attribute) 태그를 확장해 동작 방식을 바꾸거나 메타데이터(데이터를 설명해주는 데이터)를 제공합니다. 속성(attribute)는 두 가지로 구성되는데, attribute name(속성의 이름)과 attribute value(속성의 값)으로 구성됩니다.
시맨틱(semantic)이란 '의미가 있는, 의미론적인'이라고 해석할 수 있습니다. 예를 들어 <h1>
요소는 최상위제목(top level heading)이라는 의미를 지니고 있습니다. HTML 문서에 <h1>
을 사용할 경우, 브라우저가 큰 폰트 사이즈를 적용할 뿐만 아니라, 위 아래로 간격을 두어 제목처럼 보이도록 합니다.
<article>
: 독립적이고 자체 포함된 콘텐츠를 지정합니다.<aside>
: 본문의 주요 부분을 표시하고 남은 부분을 설명하는 요소입니다. 특별한 일이 아니라면 사이드바나 광고창 등 중요하지 않은 부분에 사용됩니다.<footer>
: 일반적으로 페이지나 해당 파트의 가장 아랫부분에 위치하며, 사이트의 라이선스, 주소, 연락처 등을 넣을 때 사용합니다.<header>
: 일반적으로 페이지나 해당 파트의 가장 윗부분에 위치하며, 사이트의 제목이 보통 들어갑니다. 선택적으로 상단바나 검색창 등이 안에 들어갈 수 있습니다.<nav>
: 내비게이션(navigation)의 약자로, 일반적으로 상단바 등 사이트를 안내하는 요소에 사용됩니다. 보통은 안에 <ul>
을 넣어 목록 형태로 사용합니다.<main>
: 문서의 주된 콘텐츠를 표시합니다.<section>
: 웹 페이지의 큰 의미 단위가 될 수 있는 어떤 것이든 묶어서 하나의 구역을 구분하는데 사용합니다.