이 글은 제가 C++ Restful 인 casablanca를 개발하는데 앞서 일반적인 Restful의 정의를 알아보고자 작성하는 글입니다.
조사 기간은 7일걸렸습니다.
목차는 다음과 같이 진행됩니다.
1. 웹의 역사(Restful의 탄생 배경을 알아보기 위해선 시작점을 이해해야 했습니다.)
2. xml과 json, soap의 통신 방식과 단점.
보러가기 : hwan-shell.tistory.com/140
3. Restful 과 soap의 차이점.
보러가기 : hwan-shell.tistory.com/141?category=826872
4. Restful의 특징
보러가기 : hwan-shell.tistory.com/142
그럼 시작하겠습니다.
● 웹의 역사.
SGML.
출처 : https://ko.wikipedia.org/wiki/SGML
우리가 흔히 인터넷에 접속하면 브라우저 상에서 이미지와 택스트를 보게 됩니다.
아래 그림과 같이 말이죠.
이런식으로 말이죠.
이것들은 전부 브라우저위에서 사용자가 보기 편하게끔 특정한 언어를 통해 만들어지게 됩니다.
바로 HTML이죠.
1991년에 HTML 1.0이 처음 등장했는데, HTML의 모티브가 된 것이 SGML입니다.
거슬러 올라가 1980년 유럽 입자 물리 연구소(CERN)에서 문서를 공유할 목적으로 인터넷 기반 하이퍼텍스트(Hyper Text)체계를 고안합니다.
그리고 자료들을 어떤식으로 정의하고 어떤 체계로 만들어서 보여줄까 고민하다가 SGML을 참고하게 됩니다.
(예를들어 보고서나 책을 만든다고 가정할 때 규칙들이 있습니다. 제목이 먼저 나오게 하고 그 다음 목록, 그 다음 내용 등....
이런식으로 정의해야 만드는 사람과 보는사람이 편하기 때문입니다. HTML도 마찬가지입니다.)
SGML은 문서용 마크업 언어를 정의한 메타 언어로
마크업 언어는 테그로 이뤄진것을 말하며
메타 언어는 문장이나 절을 구성하는 방법을 말합니다.
쉽게 풀어 쓰자면 CERN에서 인터넷을 통해 문서를 공유해서 편하게 문서를 보고자 웹용 문서작성 방법을 고안하던 중
SGML이란 녀석을 알게 되었고, SGML을 자세히 살펴보니 체계가 너무 잘 잡혀있어서 이걸 그대로 인용하면 개꿀~!!
따라서 SGML에서 불필요한 것들을 제거해서 1991년 HTML 1.0이라는 녀석을 만들어 냅니다.
1994년 인터넷을 사용하는 사용자가 증가함에 따라 '팀 버너스 리' 라는 사람을 중심으로 W3C가 설립됩니다.
W3C는 웹의 지속적인 성장을 도모하는 프로토콜과 가이드라인을 개발하여 월드 와이드 웹의 모든 잠재력을 이끌어 내는 것이라 합니다.
그리고 W3C에서 HTML을 표준화할 필요성을 느끼게 되고 이윽고 HTML을 다양한 브라우저(익스플로러, 파이어폭스, 크롬 등...)에서
공통적으로 표현할 수 있도록 표준을 정의합니다.
그렇게 쭈욱~ 업데이트되고 새로운것이 생겨났다가(XHTML, XHATWG) 없어지고 결국 지금에 HTML 5.0에 이르게 됩니다.
이런식으로 말이죠. 보시면 <html>, <head>, <body> 이런식으로 테그로 이뤄져 있으며 구문이 나눠져 있습니다.
그리고 이 HTML을 전송하고 HTML 데이터를 받는 통신 프로토콜이 바로 HTTP입니다.
초기에는 GET방식을 통해 웹통신을 했습니다. 왜냐하면 웹을 통해 텍스트로 이뤄진 문서만 보는것이 목적이었기 때문입니다.
(html 의 method인 get)
즉, 클라이언트는 서버에 있는 HTML데이터 정보를 가져오기만 하면 됐죠.
하지만 시간이 지남에 따라 점점 발전하게 됩니다.
텍스트만 보여주니 밋밋하여 이미지를 추가하고, 정적인 웹페이지보단 동적인 웹페이지가 더 보기가 좋고 세련되 보이고...
웹페이지의 동적과 정적의 차이는 다음과 같습니다.
정적은 텍스트와 이미지로만 이뤄진 것을 말하며 움직임이 없는 웹을 말합니다.
반대로 동적은 저희가 흔히 네이버에 접속했을 때 광고가 나오고, 이미지가 수시로 바뀌고 하는 변화가 있는 웹페이지를 말합니다.
하지만 HTML만으론 정적인 웹페이지 구현에 한계가 있었습니다. 이 한계를 극복하기위한 언어가 등장하는데 바로
JavaScript와 CSS입니다.
여기까지가 웹에 대한 간략한 역사입니다.
이 다음에선 서버에 데이터를 요청하기 위해 만들어진 XML, JSON과 이것들을 통신하기 위한 SOAP에 대해 알아보겠습니다.
※잘못된 정보가 있거나 보충이 필요한 부분이 있다면 피드백을 주시면 감사하겠습니다.
'프로그래밍 > 웹, 네트워크' 카테고리의 다른 글
리틀 엔디언과 빅 엔디언 (0) | 2020.10.22 |
---|---|
티스토리 마크다운 언어 쓰기(프로그래밍 코드 양식?) (0) | 2020.05.16 |
Restful에 대한 이해하기(Restful 특징) - 4 (0) | 2020.01.13 |
Restful에 대한 이해하기(Restful과 SOAP차이) - 3 (0) | 2020.01.13 |
Restful에 대한 이해하기(xml, soap란?) - 2 (0) | 2020.01.12 |
댓글