ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Unit7 - [HTTP/네트워크] 클라이언트-서버아키텍쳐/API
    Front-End👩🏻‍💻/네트워크👩🏻‍💻 2022. 6. 10. 00:11
    728x90

    웹 애플리케이션 아키텍처

    HTTP에서 사용하는 클라이언트 - 서버 아키텍처와 클라이언트와 서버가 통신하는 방법인 API에 대해 학습

    클라이언트-서버 아키텍처 = 2티어 아키텍처

    • 사이트 오픈 시 인터넷 연결이 없을 시 연결 불가능하다.
    • 사이트 정보를 서버로부터 받아오기 때문이다. 서버 = 제공(Serve)하는 주체
    • 어플의 경우 서버 없이 동작하도록 만들 경우, 신상품 업데이트마다 새로운 버전 업데이트 필요, 또한 결제 불가능(금전정보를 주고받는 은행 서버와의 연결이 필요하기 때문) ⇒ 상품정보 같은 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것
    • 리소스를 사용하는 앱 = “클라이언트” 요청하는사람
    • 리소스를 제공(serve)하는 곳 = “서버” 요청에 대한 응답하는사람
    • 요청이 선행되고 그 후에 응답이 온다.

    3-Tier 아키텍처

    • 보통 서버는 리소스를 전달해 줄 뿐, 리소스를 저장하는 공간은 데이터베이스에 둔다.
    • 클라이언트-서버-데이터베이스 형태를 3-Tier 아키텍처라고 한다.

    클라이언트 앱은 사용자가 눈으로 보고 대면하므로, 프론트엔드 영역 서버 앱은 사용자 눈에 직접 보이지 않게 뒤에서 작동하므로, 백엔드 영역

    클라이언트와 서버의 종류

    • 클라이언트 : 웹사이트(웹 앱), 스마트폰/태플릿용 앱, 데스크탑 앱
    • 서버 : 웹서버, 파일서버, 메일 서버, 데이터베이스 서버

    클라이언트-서버통신과 API

    • 프로토콜은 통신 규약, 즉 약속이다.
    • 웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 대화를 나눈다. HTTP를 이용해 주고받는 메시지는 “HTTP 메시지”
    • 프로토콜에는 다양한 방법이 존재한다.
    • 제대로 된 통신을 위해서는 규약(약속)을 지켜야만 한다.

    7Layers 중

    1. 전송계층

    프로토콜이름 설명

    TCP HTTP,FTP통신의 근간이 되는 인터넷 프로토콜
    UDP (양방향의 TCP와는 다르게)단방향으로 작동하는 훨씬 더 단순하고 빠르지만, 신뢰성이 낮은 인터넷 프로토콜

     

    1. 응용계층

    프로토콜이름 설명

    HTTP 웹에서 HTML,JSOM 등의 정보를 주고받는 프로토콜
    HTTPS HTTP에서 보안이 강화된 프로토콜
    FTP 파일 전송 프로토콜
    SMTP 메일을 전송하기 위한 프로토콜
    SSH CLI 환경의 원격 컴퓨터에 접속하기 위한 프로토콜
    RDP Windows계열의 원격 컴퓨터에 접속하기 위한 프로토콜
    WebSocket 실시간 통신, Push 등을 지원하는 프로토콜

    API(Application Programming Interface)

    • 컴퓨터는 정확한 방법으로 0과1로 변환 될 수 있는 요청을 원한다.
    • 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야한다. = API
    • Interface = 의사소통이 가능하도록 만들어진 접점 ex) 메뉴판
    • 다만 API는 앱이 요청할 수 있고, 프로그래밍 가능한 인터페이스
    • 서버는 리소스 전달을 위한 메뉴판, 즉 API 문서를 작성해야 클라이언트가 이를 활용할 수 있다.
    • 보통 인터넷에 있는 데이터를 요청할 때는 HTTP 프로토콜을 사용해야 하며, 주소(URL,URI)를 통해 접근 할 수 있다.

    HTTP API 디자인을 잘 하는 방법

    예) 사용자 관리 API

    요청 URL디자인 사용하는 메소드

    모든 사용자 조회 /users GET
    새 사용자 추가 /users POST
    1번 사용자 정보 갱신 /users/1 PUT
    1번 사용자 정보 삭제 /users/1 DELETE
    1번 사용자 정보 조회 /users/1 GET

    <HTTP 메서드>

    요청 적절한 메소드

    조회(Read) GET
    추가(Create) POST
    갱신(Update) PUT 또는 PATCH
    삭제(Delete) DELETE
    728x90
Designed by Tistory.