컴퓨터는 인간과 많은 부분 흡사 합니다. CPU가 뇌가 되고, Protein을 통해 우리가 코딩했던 것들이 컴퓨터를 타고 흐르기 시작하며, membrane machine 과 같이 컴퓨터는 그 모든 것을 저장합니다. 이런 순환작용에서 컴퓨터는 인간과 매우 흡사하다고 할 수 있습니다.
이런 프로그래밍에는 컴퓨터마다 환경이 모두 다르기 때문에 플랫폼 이란 것이 존재하게 됩니다. 플랫폼이란 기반, 가상 기계라고 생각하시면 되요^^ 이 플랫폼을 설치하게 되면, 컴퓨터는 모두 달라고 프로그램 자체가 설치한 플랫폼을 기반으로 실행이 되기에 환경이 다른 컴퓨터들에서 실행되는 모습은 똑같이 실행이 가능해집니다.
웹에서 자바를 예를 들어보면, Eclips 를 통해 자바를 코딩하고 ( Command Line Editor )
JSP Apache,
Java EE
Java ME(Android) 등의 플랫폼에서 자바가 표현됩니다.
CLR based Language 를 예로 들자면 ( CLR 은 Common Language Runtime으로써 공통언어를 실행하는 환경입니다 )
틀은 .net Framework
작업도구는 JAVA는 Eclipse였지만 Visual Tool(IDE)를 사용하며, 기본적으로 C++, C#, VB등을 사용하게 됩니다. ASP.NET도 있겠네요.
또한 IIS 를 통해 (윈도우 웹, FTP서버를 구현시켜주는 서버기능) .net framework ( silverlight, ajax, 등을 구현이 가능해집니다. )
여러분이 웹으로 만든 홈페이지는 프로그램과 서비스를 원격으로 접속자의 컴퓨터에 구현하게 됩니다.
문화적인 파동
문화적 Wave를 알아보면, 1. 농경화 사회
2. 산업화 사회
3. 정보화 사회 - 도구에 기술을 적용하고, 프로그래밍을 기반으로 하게되며, 서비의 구조가 정립됩니다. 4. missteps and miscommunications : 새로운 사회의 3대 공적 - 1. biological virus 생명체에 대한 직접적인 공격을 하는 바이러스와
2. computer virus
3. interenet virus 등이 공적으로 등장합니다. 5. Semantic Linked Society
시멘틱 웹이 적용되며, 클라우드 컴퓨팅이 가능해지고 있는 현대 사회입니다.
웹에서도 웹구축의 역사에 대해서 알아볼께요.
1세대는 directory 방식으로 site단위였습니다.
2세대는 점차 검색방식이 증가되었습니다.
3세대는 가치평가방식의 page rank로써, 단순 검색에서 웹정보에 대한 의미와 대중적인 가치를 부여하기 시작했습니다.
4세대는 semantic 웹으로 개인화의 전문적인 관심을 가지기 시작했습니다!
또한 검색엔진 노출용이도를 보면,
easy read, easy navigation,easy service,easy download 가 되며 design도 일관성있도록 미적가치도 부여하기 시작했습니다.
XML 을 바탕으로 한 RSS도 생겨 (RDF site summary, really simple sindicate, rich site summary) 토대도 최적화되기 시작합니다.
시맨틱 웹에 대한 자세한 정보보기 ▼
▶시맨틱 웹(Semantic Web)은 대체 무엇인가?
시맨틱 웹의 광고 동영상
▶시맨틱 웹(Semantic Web)의 위키백과 정의
시맨틱 웹(Semantic Web)은 현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 화일, 서비스 등)에 대한 정보와 자원 사이의 관계-의미 정보(Semanteme)를 기계(컴퓨터)가 처리할 수 있는 온톨로지형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술이다. 웹의 창시자인 팀 버너스 리가 1998년 제안했고 현재 W3C에 의해 표준화 작업이 진행중이다.
▶시맨틱 웹(Semantic Web)과 일반 현재 웹의 차이점 기존의 HTML 로 만든 기존의 웹 같은 경우에는 컴퓨터가 의미 정보를 해석 할 수 있는 메타데이터라기 보다는 시각정보에 대한 언어로 작성이 된다.
예를 들어 <사과> <빨간색> 을 태그로 넣으면 컴퓨터는 둘의 어떤 관계를 가지는 이해를 하지 못한다. 그저 사과와 빨간색을 같이 출력할 뿐이다.
시맨틱 웹은 XML 에 기반한 시맨틱 마크업 언어를 기반으로 한다. 표현한다면 <urn:사과, urn:색, urn:빨간색> 을 기입해주면 컴퓨터는 사과는 빨간색을 가지고 있다고 이해를 하게 된다. 이러한 트리플 구조에 기반하여 의미정보인 온톨로지를 표현하는 것이 시맨틱웹이다.
온톨로지는 도메인의 공유된 개념화(conceptualization)에 대한 형식적 명세체제로서, 도메인 어휘의 의미 정보를 표현한다. 온톨로지는 일종의 지식 표현(knowledge representation)으로, 컴퓨터는 온톨로지로 표현된 개념을 이해하고 지식처리를 할 수 있다. 추론, 증명등의 처리에 온톨로지의 공리(axiom)와 규칙(rule)이 사용되며, 규칙 표현을 위해서 별도의 규칙 언어가 사용된다.
온톨로지라는 것은 Rule 입니다.
우리가 인식하고 있는 사물을 기술한 것이라고 생각하시면 됩니다.
예를들면, 모니터 -> "사각형, 눈으로 정보를 습득가능, 1280*1024의 해상도..." 등 더 많은 정로를 순간 판단하고 우리는 그냥 아.. 이것이 모니터지.. 라고 알게 됩니다.
사실 그냥 아는 것은 아니고 사물을 그것이라고 판단하도록 하는 인식의 Rule을 가지고 머리속에서 빠르게 판단하고 있는것이죠.
근데, 컴퓨터는 그게 없습니다. 판단하는 기준도 없고, 판단 하려 하지도 않고...
온톨로지라는 것은 대상이 사용되는 분야에서 그것이 무엇임을 나타내는 관계 혹은 속성을 기술한 것을 이야기 합니다. (사실 RDSF는 이것을 기술하기 위한 표준이고, RDSF를 통해 기술한것이 온톨로지죠)
시맨틱웹이 원래 컴퓨터가 이해하는 웹..이거든요. 컴퓨터가 이해하려면.. 우리가 당연히 아는 정보들의 속성뿐아니라.. 관계도 기술할 필요가 있죠. (모니터는 컴퓨터의 내용을 보여준다..등)
온톨로지라는 용어가 조금은 생소하기 때문에 오용하는 경우가 상당히 많이 있습니다. 위 기준으로 보시면 이해하실 수 있으실 껍니다.
특정 도메인에 대한 공유되는 일반적인 이해와 개념, 개념과의 관계를 표현하기 위한 언어이다.
● Logic
기존에 정의된 정보들을 바탕으로 새로운 결론을 도출하는 추론 기능 등을 의미한다.
● Proof / Trust
웹의 정보에 대한 신뢰를 말한다.
▶시맨틱 웹(Semantic Web)의 이상적 모습
따라서 시맨틱 웹이 이상적으로 구현이 된다면, (TML 은 표준이 다르게 이런 통합이 되질 않지만, XML 은 표준안(DTD 등) 이 정해져 있어 누가 만들었건 간에 전체적인 통합이 가능하다. )
내가 자주 찾는 단어가 신상구두라면 새로나온 신상구두가 나오면 웹에서 자동으로 나에게 광고를 띄워주거나,
내가 찾고자하는 것, 예를 들면 다이어리가 있다면 다이어리 가격표,다이어리 추천 등으로 직접 사용자가 의미파악을 해서 검색하는 것이 아니라, 컴퓨터가 내가 찾고자 하는 다이어리가 포함된 어떤 정보를 탐색하고 추론해서 사용자에게 보여 주는 것이 시맨틱 웹의 이상이다.
그리도 점점 웹 코딩의 기술과 툴의 발달로 인하여 유한 요소로 무한 내용이 표현되기 시작했습니다.
Expression - Presentation - Semantics
HTML ( XML ) 과 OPEN API를 통해 방문 -> 구독 -> 양방향으로 과거보다 발전된 웹의 모습을 갖추었습니다.
그럼 이러한 웹의 발전과 함께 불러온 클라우딩 서비스는 뭘까요 ?
제 다른 글에 보면 클라우드 서비스에 대한 설명이 된 글이 있을 겁니다. 간단히 설명을 드리면 말 그대로 구름입니다. 구름을 세계어디서나 볼 수 있는 것과 같이 내가 언제 어디있건 간에 원하는 서비스를 받을 수 있는 것을 클라우드 서비스라고 합니다.
구글의 전략을 볼까요? 구글의 경우는 검색엔진을 기반으로 발전 했습니다. 어떻게 하면 더 효율적인 검색 엔진을 제공할까,
그 결과를 통해서 어떤 광고 전략으로 수입을 얻을까? 그리고 구글은 안드로이드를 인수하여 모바일을 통한 클라우드 서비스를 제공하기 시작했습니다. 내가 데스크톱이 없이도 모바일을 들고 언제 어디서나 구글 어플리케이션을 통해 구글에서 제공하는 서비스를 제공 받을 수 있게끔 전략을 세웠습니다.
구글에서 제공하는 OPEN API 인 Google gear는 프로그래밍하는 사람과 일반 유저들도 조금만 공부하면 사용할 수 있는 쉬운 interface를 가지고 있습니다.