이전에 semantic tag에 대해서 간단하게만 알아보았는데, 이번에는 조금 더 큰 범위에서 semantic web에 대해서도 알아보았다.
의미를 담은
검색엔진이 HTML 코드 만으로 그것이 어떤 역할과 기능을 수행하는지, 어떤 목적으로 작성되었는지를 이해할 수 있도록 의미를 담은 것
예를 들어, HTML태그 중 div만으로는 이 태그가 단순히 구획을 나누거나 다른 요소를 감싸기 위한 태그인지, 검색에 중요한 정보를 담은 제목을 포함하고 있는지, 혹은 핵심 메뉴들을 담은 네비게이션 바를 포함한 태그인지 알기 어렵다.
이 때 특별한 의미 없이 범용적으로 쓰이는 div
대신 <nav>
나header
과 같은 태그를 사용한다면 이 태그는 nav bar구나, 이 태그는 header구나 라는 것을 인지하고 검색엔진이 정보를 잘 수집하여 구분할 수 있게 된다.
혹은 단순히 <p>
태그를 사용하는 대신 h1
태그를 사용하면 검색엔진이 '아, 이건 이 웹사이트의 중요한 제목이구나!'라고 인식하고 인덱스에 포함시킬 수 있다.
지난 포스팅에서 시멘틱 태그를 이용하는 목적은 크게 3가지라는 것을 배웠다.
이 중 검색엔진 최적화에 대해 조금 더 자세히 알아보자.
검색 엔진은 매일 전세계의 웹사이트를 크롤링해 정보를 수집한다. 그리고 검색 키워드를 예상해 사용자가 특정 단어를 검색하면 그 단어를 포함하거나 특정 내용을 포함하는 관련 웹사이트를 검색결과로 보여줄 수 있도록 목록을 만들어둔다. 이것을 검색 키워드에 대응하는 인덱스를 만들어 둔다고 해 인덱싱
이라고 한다.
그렇다면 이 검색엔진이 정보를 수집해 인덱스를 생성할 때, 이것이 본문인지, 제목인지, 다른 무엇인지 잘 구분해야 우리가 의도한 대로 사용자가 검색했을 떄 우리가 만든 웹사이트가 잘 도달할 수 있게 할 수 있다.
위에서 semantic의 의미와 그것을 왜 알아야 하고 사용해야 하는지에 대해 배웠다.
그렇다면 semantic web이 무엇인지 유추하는 것이 크게 어렵지 않다.
의미론적인 웹
문서/앱의 '의미'에 맞게 구성된 웹
이렇게 의미를 담은 웹은 어떤 장점이 있을까? 무엇을 할 수 있을까?
시멘틱 웹이 무엇인지는 대충 알겠는데, 앞에서 말한 시멘틱 웹의 3가지 장점은 추상적이라 잘 와닿지 않는다.
조금 더 깊게 들어가 시멘틱 웹의 정의를 다시 살펴보자.
시맨틱 웹(Semantic Web)은 현재의 인터넷과 같은 분산환경에서
리소스(웹 문서, 각종 화일, 서비스 등)에 대한 정보와 자원 사이의 관계-의미 정보(Semanteme)를
기계(컴퓨터)가 처리할 수 있는 온톨로지형태로 표현하고,
이를 자동화된 기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술이다.
웹의 창시자인 팀 버너스 리가 1998년 제안했고 현재W3C에 의해 표준화 작업이 진행중이다.
출처: https://linuxism.ustd.ip.or.kr/626 [linuxism]
현재는 사람이 직접 검색 키워드로 정보를 찾고 해석하고 있다.
시멘틱 웹의 궁극적인 목적은 자동화된 기계가 웹에 퍼져있는 정보를 사람대신 해석하고 처리할 수 있는 것이다.
예를 들어, 사람이 질문을 하면 컴퓨터가 자동으로 정보를 탐색하고 그 의미를 추론하여 사람이 원하는 결과를 가져와 보여주는 것이다.
사람이 쉽게 찾아 볼 수 없는 것을 찾아서 볼 수 있는 구조를 제공해 지금 우리가 사용하고 있는 검색기능과 찾은 문서들의 질을 높이고자 하는 목적 또한 가지고 있다.
컴퓨터가 정보의 의미를 파악한다는 것은 어떤 의미일까?
시멘틱 웹을 구성하는 기술중 하나는 온톨로지
이다.
온톨로지
: 데이터의 의미와 관계정보를 체계적으로 표현하는 지식 표현 기술
*아직 웹 표준과 웹접근성에 대해서는 잘 알지 못하지만, 추후에 더 공부하기로 하고 지금은 시멘틱 웹의 목적과 의미에 관련된 궁금한 부분까지만 공부하기로 했다.
예를 들어, 관공서 온톨로지에 개의 사체는 음식물 폐기물로 분류되어 쓰레기 봉투에 넣어야 하는 폐기대상으로 정보가 해석되고 처리될 수 있다. 반대로, 동물병원 온톨로지에는 똑같은 개의 사체도 동물 전용 화장터로 보내서 화장을 해야 하는 대상으로 분류될 수 있다.
시멘틱 태그에 대해서는 아래 포스팅에 정리해두었다.
아직 정확히는 모르겠지만, 이렇게 똑같은 정보도 그 문맥과 상황에 따라 정보가 가지는 의미가 달라지기 때문에 이것을 사람이 아닌 기계도 해석하고 처리할 수 있도록 하는 것이 시멘틱 웹의 궁극적인 목적이라고 이해했다.
그렇다면, 시멘틱 웹을 잘 구성해 접근성과, 유지보수의 용이성, 검색엔진 최적화가 잘 되어있도록 신경쓰는 것이 왜 중요한지는 이해가 된다.
시멘틱 웹을 어떻게 구현할 수 있는지도 궁금해서 찾아보았는데 (단순히 HTML코드를 시멘틱 태그를 이용해 작성하는 것이 전부는 아닐것이 분명하므로) 그 내용이 방대할 뿐더러 지금 공부할 필요가 있는 내용은 아니기 때문에 생략했다.
지금 공부하는 시점에서는 시멘틱 웹을 잘 구성할 수 있도록 시멘틱 태그의 중요성을 잘 알고 코드를 작성하는 것이 아닐까 생각한다.
Semantic Web의 바이블 입니다 여러분