클라이언트와 서버란?
클라이언트란 서비스를 제공받는 사람들을 의미한다.
서버란 클라이언트에게 서비스를 제공하는 사람들을 의미한다.
보통 웹과 앱, 게임이 있는데 앱과 게임을 생각해보면 다운로드를 진행하고 웹은 따로 다운로드를 하지 않는다.
그 이유를 알기 위해서는 먼저 OS의 개념과 백엔드 서버와 프론트엔드 서버에 대해서 알고 있어야한다.
프론트엔드 서버
웹을 생각해보자.
우리는 URL(Uniform Resource Locator, 일관성있는 자원의 위치)을 통해 웹 페이지를 이용한다.
여기서 웹 페이지는 html로 구성되어있고 html 코드 블럭과 js, css로 표현되어있다.
즉 특정 html은 Resource(자원)이 되고 우리는 이 위치로 접속해 자원에 대해 요청한다.
이 때, URL은 실제로 ip주소로 구성되어있는데 이것은 서버의 주소이다.
즉, 프론트 서버가 존재하고 있고 우리는 프론트 서버에 존재하는 자원을 사용하는 것이다.
앱과 게임
앱과 게임의 경우 보통 접속하기보다는 다운로드를 해서 사용한다.
그 이유는 웹의 경우 html이라는 문서 형태이므로 그 크기가 작아서 요청처리에도 시간이 오래 걸리지 않는다.
하지만 앱과 게임은 데이터의 크기가 크다.
큰 데이터에 대해 통신으로 처리하게 되면 오버헤드가 많이 발생한다.
이것은 프로그램의 성능도 떨어트리는 큰 요인이 된다.
게임의 경우 보통 5GB가 초과하는데 필요할 때마다 요청을 하게된다면 얼마나 느릴지...
필요할 때마다 요청을 하게 되면 속도가 말도 안되게 느리겠지만 한 번 다운로드하고
필요한 만큼만 램에 적재하여 유동적으로 사용할 수 있다.
백엔드 서버
클라이언트 이용자들이 특정 기능 또는 특정 자원을 요청하기 위해 존재하는 서버이다.
웹에서 로그인을 하거나 게임에서 아이템을 구매하거나 중요한 데이터 부분은 백엔드 서버에서 처리한다.
만약, 백엔드 서버가 없다고 가정을 해보자.
클라이언트의 코드는 각 사용자가 확인할 수 있다.
웹의 경우 F12 관리자 개발 도구, 앱과 게임의 경우 특정 엔진을 사용해서 분석할 수 있다.
그럼, 데이터베이스의 정보를 해킹하거나 버그 등 악용의 우려가 너무 커진다.
- 정리
클라이언트 - 서버 시스템은 사용자가 특정 자원 및 데이터를 서버로 요청을 한다.
서버는 이 요청에 대하여 데이터를 가공하고 결과를 응답해준다.
'IT > 기술블로그' 카테고리의 다른 글
모듈(Module), 컴포넌트(Component), 컨테이너(Container) (1) | 2024.02.24 |
---|---|
컴퓨터에서 Interface란? (1) | 2024.01.02 |