ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RestAPI
    Spring-diary 2020. 6. 15. 16:36

    RestAPI란?

    분산 시스템 설계를 위한 아키텍쳐 스타일,제약조건의 집합이다.

    RestFul
    RestFul이란 제약조건집합(아키텍처 스타일,아키텍처 원칙)을 모두 만족하는 것을 말한다.

     

    RestAPI의 필요성

    거대한 애플리케이션을 모듈과 기능별로 분리하기 쉬워진다. RESTful API를 서비스하기만 하면 어떤 다른 모듈 또는 애플리케이션들이라도 RESTful API를 통해 상호간에 통신을 할 수 있다.


    WEB브라우저 외의 클라이언트를 위함이다. HTML과 이미지 등을 전송했던 방식과는 달리 데이터만 보내면

    클라이언트 단에서 알아서 가공해 보여준다.

     

    RestAPI 구성요소

    HTTP URI  자원
    HTTP Method  행위
    MIME Type 표현 방식

     

    제약조건이란?

    1. Client/Server

    2. Stateless : 각 요청에 클라이언트의 context가 서버에 저장되어서는 안된다.

    3. Cacheable : 클라이언트는 응답을 캐싱할 수 있어야 한다.

    4. Layered System : 클라이언트는 서버에 직접 연결되었는지 미들웨어에 연결되었는지 알 필요가 없어야 한다.

    5. Code on demand(option) : 서버에서 코드를 클라이언트에게 보내서 실행하게 할 수 있어야 한다.

    6. uniform interface : 자원은 유일하게 식별가능해야하고, HTTP Method로 표현을 담아야 하고, 메세지는 스스로를 설명(self-descriptive)해야하고, 하이퍼링크를 통해서 애플리케이션의 상태가 전이(HATEOAS)되어야 한다.

    출처: https://jeong-pro.tistory.com/180[기본기를 쌓는 정아마추어 코딩블로그]

     

     

    장점과 단점

    장점: 확장에 유연, 별도의 설정 없이 HTTP 인프라 사용, Server와 Client를 완전히 구분 

    단점: 표준 스키마가 없다(api 문서가 만들어지는 이유),메소드가 제한적(Get,Post,Put,Delete..)

     

    마이크로서비스

    정의-작고 자율적으로 협업하는 서비스들(복수)이다.

     

    특징

    1)한가지 일에 집중한다.

    작은 단위로 개별 배포가 가능하다.

    개별적으로 교체하기 용이하고 장애를 격리 시킬 수도 있다.

    2)자율성 의미를 가진 경계로 작게 적절히 나누고 자율성을 부여하여 여러 서비스들이 협업하도록 하는 Style이다.
    3)자동화

    CI(지속 통합), CD(지속 배포) 자동화, 독립화

    제품 또는 서비스 단위 작은 팀에서 직접 소프트웨어 수명주기를 관리한다.

     

    'Spring-diary' 카테고리의 다른 글

    Agile 개발 방법론  (0) 2020.06.15
    Spring MVC 구조  (0) 2020.02.10
    Java config로 사용하기  (0) 2020.02.06
    Annotation  (0) 2020.02.06
    Collection을 Bean으로 사용하기  (0) 2020.02.06

    댓글

Designed by Tistory.