본문으로 건너뛰기

웹을 지탱하는 기술 01

· 약 4분
Seokjae Lee
Software engineer

원문: https://doljae.tistory.com/36

HTML / URI / HTML​

HTML은 HTTP로 통신한다

HTML의 링크는 URI를 이용한다

HTTP는 URI로 조작 대상을 지정한다.

웹의 특징​

1. 하이퍼미디어

텍스트와 이미지, 음성, 영상 등 다양한 미디어를 하이퍼링크로 연결해 구성한 시스템

웹 페이지에는 삽입된 이미지, 동영상으로의 링크가 포함된다. 

사용자는 브라 우절 르 이용해 자유롭게 그것들을 따라갈 수 있다.

2. 분산 시스템

복수의 컴퓨터를 조합해 처리를 분산시키는 시스템

복수의 컴퓨터상에 존재하는 데이터를 일원적으로 다루거나, 한 대의 컴퓨터로는 다루기 힘든 방대한 정보를 조작할 수 있다.

웹은 프로토콜이 매우 단순하기 때문에 전 세계 규모의 방대한 시스템을 실현할 수 있다.

또 OS, 특정 하드웨어에 종속받지 않고 다양한 디바이스를 통해 웹 서비스에 접근할 수 있다.

웹 이전 분산 시스템의 문제점​

RPC(Remote Procedure Call)

현실적으로 RPC는 통신상 대가 어느 정도 정해져 있는 인트라넷 환경까지 커버가 가능하지, 그 이상의 규모, 혹은 이기종 분산 환경으로 확장하기 어렵다.

기본적으로 함수를 호출하는 방식이기 때문에

1. 성능 열화의 문제

네트워크를 경유한 함수의 호출은 동일 프로세스 내에서 함수를 호출하는데 비해 몇 배나 시간이 걸리고 호출 시 발생하는 네트워크 오버헤드가 추가적으로 ㅂ라생한다.

2. 데이터형 변환의 문제

프로그래밍 언어마다 지원하는 데이터형이 다르기 때문에 복수의 언어가 혼재하는 환경에서 형 변환 시 문제가 발생한다

3. 인터페이스 버전업시 호환성 문제

4. 부하 분산의 문제

앱 상태 유지(stateful)

등의 문제가 있다.

SOAP 대 REST​

SOAP

REST 이전에 사용하던 MS가 W3C에 제안한 표준화 API

아마존, 구글 등의 기업이 REST의 손을 들어주었고,

웹 2.0에서 중요했던 개념인 Mashup(여러 웹 API를 조합해 하나의 서비스를 만드는 방식)이 대세가 되었음.

다양한 API를 조합해야 하기 때문에 URI로 간단히 조작할 수 있고 가벼운 REST 스타일이 받아들여짐

SOAP는 RPC의 문제점과 복잡한 스펙 + 정치적 이유로 인한 호환 표준화 실패 등으로 인해 결국 밀려났다.

<table class="tt-plugin-interpark" style="background: #fff; border: 1px solid #e0e0e0; width: 408px;" border="0" width="100%" cellspacing="0" data-darkreader-inline-bgimage="" data-darkreader-inline-bgcolor="" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left=""><tbody><tr><td style="vertical-align: top; padding: 10px 0 10px 10px;" width="70"><a href="http://book.interpark.com/blog/integration/product/itemDetail.rdo?prdNo=208294208&amp;refererType=8303&amp;bookblockname=bpmain_in&amp;booklinkname=wg_search_EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB&amp;key=EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB" target="_blank" rel="noopener"><img style="border: 0 none;" src="http://bimage.interpark.com/goods_image/4/2/0/8/208294208h.jpg" width="66" height="90" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left=""></a></td><td style="vertical-align: top; padding: 10px 10px 10px 15px;"><dl style="margin: 0; padding: 2px 0 0 0; list-style: none; font: 11px dotum, sans-serif; letter-spacing: -1px; color: #777;" data-darkreader-inline-color=""><dt style="padding: 0; margin: 0;"><a style="font-size: 12px; color: #444 !important; font-weight: bold; text-decoration: none !important;" href="http://book.interpark.com/blog/integration/product/itemDetail.rdo?prdNo=208294208&amp;refererType=8303&amp;bookblockname=bpmain_in&amp;booklinkname=wg_search_EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB&amp;key=EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB" target="_blank" rel="noopener" data-darkreader-inline-color="">웹을 지탱하는 기술</a></dt><dd style="padding: 7px 0 0 0; margin: 0; color: #a0a0a0;" data-darkreader-inline-color="">국내도서</dd><dd style="padding: 17px 0 0 0; margin: 0;">저자 : 야마모토 요헤이(Yamamoto Yohei) / 김성훈역</dd><dd style="padding: 4px 0 0 0; margin: 0;">출판 : 멘토르출판사 <span style="letter-spacing: normal;">2011.05.30</span></dd></dl><a style="float: right; width: 44px; height: 11px; background: url('//t1.daumcdn.net/tistory_admin/static/images/icon_ipark_detail.gif') no-repeat; overflow: hidden; display: block; text-indent: -1000em;" href="http://book.interpark.com/blog/integration/product/itemDetail.rdo?prdNo=208294208&amp;refererType=8303&amp;bookblockname=bpmain_in&amp;booklinkname=wg_search_EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB&amp;key=EFEB8364BC43711681CC6C69032386A3753E74A4F9E4F62B3FA06C4836C10BAB" target="_blank" rel="noopener" data-darkreader-inline-bgcolor="">상세보기</a></td></tr></tbody></table>