웹 개발 개론 (REST API, URI 설계 패턴, HTTP Protocol)

    Web이란 ?

    World Wide Web(WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간

     

     

    Web의 용도

    - Web Site

    : google, nave, daum, facebook 등 HTML로 구성된 여러 사이트들

     

    - API(Application Programming Interface) * Web Service

    : Kakao Open API, Google Open API, Naver Open API 등

     

    - User Interface 

    : Chrome, Safari, Explorer, Smart Watch, IP TV 등

     

     

    Web의 기본 3가지 요소

    - URI (Uniform Resource Identifier)

    리소스 식별자

    모든 정보에 접근할 수 있는 정보

     

    - HTTP (Hypertext Transfer Protocol)

    어플리케이션 컨트롤

     

    - HTML (Hyper Text Markup Language)

    하이퍼미디어 포멧

    XML을 바탕으로 한 범용 문서 포맷

    사용자가 알아보기 쉬운 형태로 표현

     

     

    REST (Representational State Transfer : 자원의 상태 전달) - 네트워크 아키텍처

    1. Client, Server

    : 클라이언트와 서버가 서로 독립적으로 분리 되어 있어야 한다.

    2. Stateless

    : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.

    3. Cache

    : 클라이언트는 서버의 응답을 Cache(임시저장)할 수 있어야 한다.

      클라이언트가 Cache를 통해 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춘다.

    4. 계층화 (Layered System)

    : 서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy 등 다양한 계층 형태로 구성가능해야 하며,

      이를 확장할 수 있어야 한다.

    5. Code on Demand (Optional) 

    : 자바 애플릿, 자바스크립트 플래시 등 특정한 기능을 서버로부터 클라이언트가 전달바당 코드를 실행할 수 있어야 한다.

     

     

    다음의 인터페이스의 일관성이 잘 지켜졌는지에 따라 REST를 잘 사용했는지 판단 가능

     

    -  자원의 식별

    - 메시지를 통한 리소스 조작

    - 자기 서술적 메시지

    - 애플리케이션 상태에 대한 엔진으로써 하이퍼 미디어

     

    이러한 조건들을 잘 갖춘 경우 REST ful 하다고 표현하고, 이를 REST API 라고 부름

     

     

    URI 설계 

    1. URI

    : 인터넷에서 특정 자원을 나타내는 주소 값, 해당 값은 유일함. (응답은 달리질 수 있음)

    2. URL

    : 인터넷 상에서 자원, 특정 파일이 어디에 위치하는지 식별하는 주소

     

    URL은 URI의 하위 개념

     

    URI 설계 원칙 ( RFC-3986)

    - 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용

    - URI 마지막 문자로 (/) 는 포함하지 않음

    - 하이픈(-)은 가독성을 높이는 데 사용

    - 밑줄(_)은 사용하지 않음

    - URI 경로에는 소문자가 적합

    - 파일 확장자는 URI에 포함하지 않음

    - 프로그래밍 언어에 의존적인 확장자 사용하지 않음

    - 구현에 의존적인 경로를 사용하지 않음

    - 세션  ID를 포함하지 않음

    - 프로그래밍 언어의 Method명을 이용하지 않음

    - 명사에 단수형보다는 복수형 사용. 컬렉션에 대한 표현은 복수로 사용

    - 컨트롤러 이름으로는 동사나 동사구를 사용

    - 경로 부분 중 변하는 부분은 유일한 값으로 대체

    - CRUD 기능을 나타내는 것은 URI에 사용하지 않음

    - URI Query Parameter 디자인

      URI 쿼리 부분으로 컬렉션 결과에 대해서 필터링할 수 있음

    - URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용

    - API에 있어서 서브 도메인은 일관성 있게 사용

    - 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만듦

     

     

    HTTP Protocol

    HTTP는 TCP 기반으로 한 REST의 특징을 모두 구현하고 있는 Web 기반의 프로토콜

     

    HTTP는 메시지를 주고(Request) 받는(Response) 형태의 통신 방법

     

    *멱등성 : 몇 번을 요청하더라도 같은 값이 오는 것

     

     

    응답의 상태를 나타내는 코드

     

    자주 사용되는 코드

     

    '기타' 카테고리의 다른 글

    Singleton Pattern  (0) 2023.03.17
    디자인 패턴이란?  (0) 2023.03.17
    Process 용어  (0) 2022.08.02
    Eclipse 단축키 정리  (0) 2022.08.02

    댓글