client server

1. 네트워크

네트워크

  • 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고받을 수 있게 도와주는 기술
    • 컴퓨터, 라우터, 스위치, 허브 등의 장비들이 각각의 역할을 수행하여 정보를 주고받음
    • IP주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신

2. Client와 Server

  • Client

    • 네트워크를 이용하여 server 측에 서비스 요청을 의뢰하는 측
    • 웹 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버 등
  • Server

    • 클라이언트들이 요구하는 각종 서비스를 제공하는 측
    • 네트워크를 이용하여 클라이언트 측으로부터 서비스의 요청을 받는 측
  • IP 주소

    • 사용자의 요청이 서버에 도달하기 위해 필요한 서버의 정보
    • 네트워크망에서 컴퓨터를 식별하기 위한 위치 주소
    • 네트워크상에서 데이터 송/수신 기준

3. 웹 서버

  • 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터
  • 웹 서버의 기본 동작 원리
      1. 브라우저(client)를 통해 HTTP Request로 웹사이트를 웹서버에 요청
      1. 이후 웹 서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송
      1. 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트 생성

4. API

API(Application programming interface)

  • 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한 것
  • 서로 다른 애플리케이션이 약속한 방식의 API 요청을 수행하면 정해진 결과물을 반환하는 것

인터페이스(Interface)

  • 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

5. RESTful API

REST(Representational State Tranfer

  • API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
  • 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침
  • REST API : REST 아키텍처 스타일을 따르는 API
  • RESTful 웹 서비스 : REST 아키텍처를 구현하는 웹 서비스

API 리소스 식별자를 중복 없이 고유하게 만들고 해당 API에 적절한 HTTP 메서드를 사용함 = RESTful하게 설계함