본문 바로가기

좋아하는 것_매직IT/10.microservice

7.마이크로서비스, 자원지향클라이언트 아키텍처란 무엇일까?

반응형

 자원 지향 클라이언트 아키텍처(ROCA, Resource-Oriented Client Architecture)

  •    웹 애플리케이션을 구현하는 방법, HTML과 같은 확립된 기술에 중점을 두고, 프론트엔드 모듈화와 통합에 많은 장점을 제공하는 아키텍처   

 

 ROCA 원칙

  • 서버는 REST 원칙을 준수함.
    • 모든 자원에는 모호하지 않은 URL이 있음.
    • HTTP 메소드가 올바르게 사용됨.
      • ex) GET 메소드는 데이터를 변경하지 않음. 
  • URL로 식별되는 자원은 JSON or XML과 같은 HTML외에 다른 표현 방식을 가질 수 있음.
  • 모든 로직은 서버에 있음. 
    • 따라서, 클라이언트의 자바스크립트는 사용자 인터페이스를 최적화하는 역할만 수행함.
    • 로직이 한 위치에서 구현되기 때문에 로직을 쉽게 변경할 수 있음. 즉 많은 클라이언트를 업데이트할 필요가 없음.
  • 인증 정보는 HTTP 요청에 포함됨.
    • HTTP 기본, 다이제스트(digest), 클라이언트 인증서, 쿠키를 사용할 수 있음.
    • HTTP 요청에 포함된 정보를 기반으로 인증과 권한 기능을 수행할 수 있음.
      • 따라서, 인증 정보에는 서버측 세션이 필요하지 않음.
  • 쿠키는 인증, 추적, 사이트간 요청 위조에 대한 보호 용도로만 사용할 수 있음.
    • 즉, 비지니스 정보가 미포함.
  • 서버 세션이 존재해서는 안됨.
    • 세션 사용은 HTTP 아이디어와 모순됨.
    • 세션이 포함된 통신은 더 이상 무상태가 아님.
    • 세션은 장채처리와 로드 밸런스를 구현하기 어렵게 만듬.
  • 뒤로, 앞으로, 새로 고침 단추와 같은 브라우저 버튼이 동작해야 함.
  • HTML에는 레이아웃 정보가 포함돼 있지 않아 브라우저를 통해서만 접근할 수 있어야 함.
    • 레이아웃은 CSS에 의해 정의, 레이아웃과 내용이 분리됨.
  • 자바스크립트는 점진적인 개선의 형태로만 사용함.
    • 목표는 자바스크립트를 완전히 피하는 것이 아니라, 웹의 기본 아키텍처와 기술(HTTP, HTML,CSS) 에 계속의존함.
  • 클라이언트와 서버에서 로직을 중복 구현해서는 안됨. 
    • 비즈니스 로직은 오직 서버만 구현함.

       

 ROCA 아키텍처의 장점

  • 애플리케이션은 깨끗한 아키텍처를 갖음.
    • 로직은 서버에 존재하므로, 로직에 대한 변경은 새 서버 버전에서 쉽게 적용됨
  • 웹의 모든 기능을 사용 할 수 있음.
    • 예를 들면, HTTP GET 은 데이터 변경을 허용하지 않기 때문에 HTTP 캐시 사용가능.
  • 애플리케이션은 HTML 보다 많은 정보를 전송할 필요가 거의 없고, 실제로 방문한 웹페이지에서만 사용할 수 있기 때문에 적은 대역폭만 있으면 됨.
  • ROCA 애플리케이션은 최소한의 자바스크립트만 사용함.

 결론

  • ROCA 는 프론트엔드를 통합하는 모든 옵션을 지원하기에 프론트엔드 통합과 마이크로서비스 아키텍처에 대한 좋은 기반임. 
728x90
300x250