[CS] 클라이언트-서버 아키텍처 Day-28

cptkuk91·2021년 11월 18일
0

CS

목록 보기
50/139

클라이언트-서버 아키텍처

인터넷 연결이 없다면, 데이터를 정상적으로 받아올 수 없기 때문에 동작하지 않습니다.
(Server는 영어 뜻 그대로 Serve 하는 주체입니다.)

정보를 보여주는 클라이언트와 데이터를 받아오는 서버를 불러오는 걸 분리시킨 것을 클라이언트-서버 아키텍처라고 부릅니다.

클라이언트의 요청없이 서버가 데이터를 전달하는 경우는 없습니다.

클라이언트, 서버, DB

  • 클라이언트: 리소스를 사용하는 사람
  • 서버: 리소스를 전달해주는 사람
  • DB: 리소스를 저장하는 공간

일반적으로 서버는 리소스를 전달해주는 역할만 담당합니다. 리소스를 저장하는 공간을 DB(데이터베이스)라고 부릅니다.

클라이언트, 서버, DB가 존재하는 경우를 3티어 아키텍처라고 부릅니다.

Front, Back 개발자란?

  • Front: 클라이언트와 같이 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱을 주로 개발합니다.

  • Back: 상품 정보를 API로 노출, 로그인, 로그아웃, 권한 과ㅏㄴ리 등의 사용자 인증을 다루는 개발자를 Back 개발자라고 부릅니다. 일반적으로 Back 개발자가 DB, 시스템 설계까지 도맡아 하는 경우가 많습니다.

클라이언트와 서버의 종류

브라우저를 통해 주로 이용하는 웹(Web)플랫폼에서의 클라이언트 사이트를 웹사이트 또는 웹앱이라고 부릅니다.

스마트폰, 테블릿을 통해 주로 이용하는 걸 앱이라고 부릅니다.

서버는 무엇을 하느냐에 따라 종류가 나뉩니다.

  • 파일 서버: 파일을 제공
  • 앱, 웹 서버: 웹 사이트에서 필요로 하는 정보를 제공 (일반적)
  • 메일 서버: 메일을 주고 받는..

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

클라이언트와 서버 간의 통신은 요청과 응답으로 이뤄집니다.
(요청 없는 응답은 없습니다.)

  • 프로토콜: 통신 규약(응답 받기 위한 요청의 약속입니다.)

클라이언트와 서버는 HTTP라는 프로토콜을 이용해 대화를 나눕니다. 이를 HTTP 메시지라고 부릅니다.

프로토콜에도 다양한 방법이 있습니다. 앱을 이용하거나, 키오스크를 이용하거나 기타 등등

주의 사항

제대로 된 통신을 위해서는 규약(약속)을 반드시 지켜야 합니다.

주요 프로토콜 (구경만..)

응용 계층

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

전송 계층

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

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글