Web develop

[독서/웹을 지탱하는 기술] 1부.웹 개론

ForA 2019. 4. 17. 21:03
728x90

웹이란 무엇인가?

웹의 용도

  • 유저 인터페이스(UI)로서의 웹
    • ex. 라우터나 텔레비전, 프린터 등 네트워크에 접속하는 각종 디바이스의 설정화면/ HTML에 의한 도움말
  • 프로그램을 위한 API로서의 웹
    • API (Application Programming Ineterface) 프로그램 중심의 인터페이스
    • 웹 API = 웹 서비스

웹을 지탱하는 기술

  • HTTP(HyperText Transfer Protocol)
  • URI(Uniform Resource Identifier)
  • HTML(HyperText Markup Language)
    • 하이퍼미디어
      • 장점: 인터넷을 이용하기 때문에 불특정 다수의 정보를 서로 링크시킬 수 있고, 시스템을 대규모하기 쉽다는 중요한 이점을 가지고있다.
      • 단점: 정보의 집중적인 관리가 어려워지고 링크가 끊어지기 쉽다는 결점도 가지고있다.
    • 분산시스템

웹의 표준화

  • 1994년 버너스-리가 중심이 되어 W3C(World Wide Web Consortium)를 설립하고 HTML,XML,HTTP,URI,CSS 등의 표준화 작업을 함.

REST 의 탄생

REST(Representational State Trasfer)

웹의 클라이언트 서버구조에서 파생된 웹 전체의 아키텍처 스타일. 리소스를 이름으로 구분하여 해당 리소스의 상태를 주고받는 모든 것을 의미한다.

  • HTTP URI를 통해 리소스를 명시하고, HTPP Method를 통해 해당 리소스에 대한 CRUD Operation을 적용하는것
  • 리소스: 웹상에 존재하는 정보 / URI

REST 아키텍처 스타일의 구성

image

 

웹의 클라이언트/서버
  • 클라이언트/서버는 두 개의 컴퓨터 프로그램 사이에서 이루어지는 역할 관계를 나타낸 것이다.
  • 클라이언트는 다른 프로그램에게 서비스를 요청하는 프로그램이며, 서버는 그 요청에 대해 응답을 해주는 프로그램이다.
스테이트리스 서버
  • 클라이언트의 어플리케이션 상태를 서버에서 관리하지 않는다는 것을 의미
  • 서버측의 구현을 간략화 할 수 있다는 장점
캐시
  • 리소스의 신선도에 기초해, 한번 가져온 리소스를 클라이언트 쪽에서 돌려쓰는 방식
  • 장점: 서버와 클라이언트 사이의 통신량을 줄여 네트워크 대역의 이용과 처리시간을 축소하고, 더욱 효율적으로 처리할 수 있다.
  • 단점: 오래된 캐시를 이용해 정보의 신뢰성이 떨어질 가능성도 있다.
유니폼 인터페이스
  • URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일
  • 인터페이스를 고정한다.
  • REST를 가장 특징짓는다.
계층화 시스템
  • 시스템 전체를 계층화하는 것
  • ex. 웹서비스에서는 서버와 클라이언트간의 로드밸런서를 설치해 부하를 분산시키거나, 프록시 서버를 설치해 엑세스를 제어한다.
    • 프록시 서버란 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터나 응용 프로그램을 가리킨다.
코드 온 디맨드
  • 프로그램 코드를 서버에서 다운받아 클라이언트에서 실행하는 아키텍처 스타일. ex) JavaScript, Flash, Java 등
  • 프로그램을 클라이언트에 다운로드하여 실행한다.
  • 장점: 클라이언트를 차후에 확장할 수 있다.
  • 단점: 네트워크 통신에서의 프로토콜 가시성이 저하된다.
REST = ULCODC$SS  
  • 유니폼/계층화/코드 온 디맨드/클라이언트/캐시/스트레이트리스 서버

 

 

이 장 이후로 HTTP, URI 그리고 HTML 등의 하이퍼미디어 포맷을 어떻게 RESTful하게 사용할 것인지,

그리고 웹 서비스와 웹 API를 RESTful하게 설계하기 위해 어떻게 하는지에 대한 설명이 나온다.

'Web develop' 카테고리의 다른 글

[독서/ 웹을 지탱하는 기술] 2부.URI  (0) 2019.05.03