먼저 Semantic이라는 단어는 사전적으로 '의미론적인, 의미의'라는 뜻을 가진 단어이다. Semantic Web은 의미있는 웹이라고 이해할 수 있다.
<div>
<div style="font-size: 2em; font-weight: bolder">
Semantic Tag
</div>
</div>
<header>
<h1>
Semantic Tag
</h1>
</header>
위 HTML코드를 웹문서에서 본다면 똑같은 글자와 똑같은 형태로 나온다. 하지만 첫번째 예시처럼 의미가 없는 <div>
태그를 활용해 코드를 작성한다면 추후 타 개발자가 코드를 보았을 때 길어지는 형태로 가독성도 떨어짐과 동시에 무슨 내용을 표현하기 위해 코딩을 했는지 의미를 유추하기가 힘들어진다.
하지만 Semantic Tag인 <header>
와 <h1>
을 활용해 코딩을 한다면 각각의 명확한 의미를 지님과 동시에 가독성을 높이면서 문서의 핵심요소를 빠르게 파악할 수 있다는 장점을 지닌다.
<div>
<span>
<img>
<iframe>
<table>
<footer>
<main>
등등...
<img>
VS<div>
+background-image
<img>
는 의미가 내포되어 있는 Semantic Tag이며 반면 <div>
는 아무런 의미가 없다.<img>
태그를 사용할 때<div>
+ background-image
속성을 쓸 때<img>
는 Semantic Tag로 alt
속성이 있어 에러 발생 시 이미지가 깨져도 어떠한 이미지인지 알 수 있지만 <div>
를 활용한 background-image
는 에러 발생 시 어떠한 이미지인지 알 수가 없고 컴퓨터 또한 무엇을 의미하는 태그인지 알 수 없다.<img>
를 사용하고 그저 웹 디자인과 같은 미적요소 이미지를 보여주기 위해서라면 background-image
를 사용하는 것이 좋다.참고자료:
1. https://fierycoding.tistory.com/55
2. https://velog.io/@geonoo99/Semantic-Web-%EA%B3%BC-Semantic-Tag-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
3. https://chanho-yoon.github.io/web/web-semanticWeb-semanticTag/
4. Wikipedia / 시맨틱 웹