Rest API의 서버와 클라이언트의 관계

    📌API란?

    컴퓨터나 컴퓨터 프로그램 사이의 연결이다.

    컴퓨터와 인간을 연결시키는 사용자 인터페이스(UI)와 반대로, API는 컴퓨터나 소프트웨어를 서로 연결한다.

    API는 무엇을 의미할까?

    Application Programming Interface를 의미하고, 안에 애플리케이션은 고유한 기능을 가진 모든 소프트웨어를 의미한다.

     

    📌 Rest API란?

    REST기반으로 서비스 API를 구현한것

    Rest ?

    Repersentational State Transfer 의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든것을 의미한다.

    즉 REST란

    HTTP URL을 통해 자원을 명시하고, HTTP Method(post, get, put, delete)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

    REST 구성요소

    1. 자원 : HTTP URL
    2. 자원에 대한 행위 : HTTP Method
    3. 자원에 대한 해위의 내용 : HTTP Message Pay Load

    REST API의 특징

    • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편라하게 할 수 있다.
    • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
    • REST API를 제작하면 자바, C# 웹 등을 이용해 클라이언트를 제작할 수 있다.

    📌 서버란?

    클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로써 컴퓨터 프로그램 또는 장치를 의미한다.

    서버 컴퓨터의 구조

    서버 컴퓨터의 구조는 일반적인 컴퓨터와 다를것 없이 cpu,메모리, 저장장치 등 구조적으로는 비슷하지만 많은 클라이언트의 요청을 처리하기 위해 고성능을 갖춘것 뿐이다.

    고성능 서버라도, 클라이언트의 수가 많고 작업량이 많으면 부하가 발생되기 때문에 환경에 따라 여러대의 서버를 층축하고 분산 처리를 한다.

     

    서버 컴퓨터의 구조

    서버 컴퓨터의 구조는 일반적인 컴퓨터와 다를것 없이 cpu,메모리, 저장장치 등 구조적으로는 비슷하지만 많은 클라이언트의 요청을 처리하기 위해 고성능을 갖춘것 뿐이다.

    고성능 서버라도, 클라이언트의 수가 많고 작업량이 많으면 부하가 발생되기 때문에 환경에 따라 여러대의 서버를 층축하고 분산 처리를 한다.

    서버 컴퓨터의 모습 👀

    서버의 종류

    서버는 역할에 따라 다양하게 구분되며 목적에 맞게 설계된 대로 불리게 된다.

    웹 서버 : 웹사이트를 관리하는 서버 DNS 서버 : 도메인을 관리 및 제공하는 서버 이메일 서버 : 이메일을 관리하는 서버 파일 서버 : 파일을 관리하고 제공하는 서버 프린터 서버 : 프린터를 제어하는 서버 등등

    그렇다고 서버는 꼭 물리적인 기계로만 되어 있지 않다

    하나의 컴퓨터 안에 웹서버, 파일서버, DNS등을 모두 설치하고 클라이언트에게 제공하게 된다면 그 컴퓨터는 상황에 따라 웹서버, 파일서버, DNS서버가 되는 것이다.

    서버는 혼자서 뭘 하는 것이 아닌 ❌

    불특정 다수의 컴퓨터에 일방적으로 서비스를 제공하는 것도 아니다.❌

    서버는 클라이언트의 요청을 받아야 그제서야 처리를 시작하여 서비스를 제공한다. 서버가 클라이언트에게 서비스를 제공할 때 다음과 같은 처리가 일어난다.

    1. 순서는 아래도 같이 돌아간다.
    2. 클라이언트가 서버에게 어떤 서비스를 요청
    3. 서버는 요청에 응답해 처리를 수행
    4. 수행한 처리 결과를 클라이언트에게 돌려줌
    5. 클라이언트는 서버가 보낸 처리 결과를 받게 된다.

    이처럼 서버와 클라이언트로 구성된 시스템을 ‘클라이언트 / 서버 시스템’ 이라고 한다.

    📌 서버의 운용 관리

    구축이 끝난 서버는 서비스를 시작함과 동시에 운용 관리에 들어간다.

    운용 관리는 서비스 종료 시까지 계속 이어진다. 서버 운용 관리는 ‘설정 변경’과 ‘트러블 대처’라는 두 가지 주요 작업을 수행한다.

    설정 변경

    서버 관리자는 사용자가 요구에 맞춰 서버 설정을 변경해 간다. 서버를 관리하다보면 여러 요구사항이 나온다. 하지만 모든 요구사항을 들어주는 것은 현실적으로 불가능하기 때문에 한정된 항목으로 구성된 요구 사항표 등을 미리 만들어 두고, 설정할 범위를 좁혀 두면 나중에 관리하기 더 수월 해질 것이다.

    트러블 대처

    트러블 대처는 크게 **‘사전 대처’**와 **‘사후 대처’**로 나뉜다.

    사전 대처트러블을 예방하기 위한 것으로, 서버의 각종 상태를 체크하고

    사후 대처트러블이 일어난 후의 대처를 뜻한다. 사후 처리는 스피드가 관건이기 때문에 서버 구축시에 미리 여러 패턴의 장애 테스트를 실시하고 장애 대처 방법을 시뮬레이션 해 두는 것이 좋다.

    📌 클라이언트란?

    컴퓨터는 네트워크에서 클라이언트는 네트워크를 접속하여 서버라는 다른 8 컴퓨터 시스템 사으이 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스를 말한다.

    728x90
    반응형

    댓글