(출처 : 코드스테이츠)
✊상품 정보 같은 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부른다.
✊클라이언트는 사용자가 사용하는 컴퓨터, 모바일 장치 또는 다른 네트워크 기기를 의미하며, 서버는 중앙 처리 시스템이나 데이터 저장 장치를 가지고 있는 컴퓨터이다.
👉클라이언트 : 사용자 인터페이스를 제공하고, 서버의 응답을 표시하거나 처리합니다.
👉서버 : 클라이언트의 요청을 받아들여 해당 서비스를 처리하고, 결과를 클라이언트에게 반환한다.
👍분리: 클라이언트와 서버의 분리로 인해 서로 독립적으로 개발하고 업데이트할 수 있다.
👍중앙 집중화: 중앙 집중화된 서버를 통해 데이터와 애플리케이션을 관리하므로 데이터의 일관성과 보안을 유지할 수 있다.
👍확장성: 클라이언트와 서버 간의 분리로 인해 필요에 따라 서버를 확장하거나 교체할 수 있다.
👍표준화: 클라이언트와 서버 간의 통신을 위한 표준 프로토콜을 사용하므로 다른 플랫폼과의 상호 운용성이 쉽다.
(출처 : 코드스테이츠)
해당 사진과 같이 클라이언트와 서버 간의 통신은 요청과 응답으로 구성된다.
요청이 있어야만 응답이 옵니다.
(출처 : 코드스테이츠)
우선 서버통신을 이해하려면 프로토콜에 대해서 이해하고 있어야하는데 프로토콜은 통신 규약, 즉 약속이다.
손님이 주문을 받는 사람에게 대뜸 찾아가 외계어로 주문을 할 수 없듯이 주문을 하기 위해서는 꼭 지켜야 하는 약속이 몇 가지 존재한다.
해당 이미지는 주요 프로토콜을 나타내고 있는데 프로토콜은 여러 계층으로 구성된 계층적인 구조를 가질 수 있으며,
이를 OSI 7계층이나 TCP/IP 모델과 같은 네트워크 프로토콜 스택을 통해 표준화하고 정의한다.
Application Programming Interface
API는 소프트웨어 개발자들이 자신의 응용 프로그램을 다른 응용 프로그램과 통합할 수 있도록 해주는 인터페이스이다.
👍다른 애플리케이션 간의 통합을 용이하게 한다.
👍개발 시간을 단축시킨다.
👍기능을 확장하고 다양한 서비스를 활용한다.
👍많은 회사와 플랫폼들이 API를 제공하여 개발자들이 자신의 애플리케이션을 해당 서비스나 플랫폼과 연결할 수 있도록 지원한다.