클라이언트와 서버는 네트워크를 통해 데이터를 주고 받는 소프트웨어 OR 기계 장치를 의미합니다.
두 개의 기계장치 또는 소프트웨어의 역할 관계를 의미하는데 웹 사이트에서 정보를 검색 할 때 해당 정보를 요청하는 것이 클라이언트 ( Client ), 요청을 받아 정보를 제공하는 것이 서버 ( Server) 입니다.
우리 일상에서는 클라이언트와 서버의 예시를 많이 접할 수 있습니다. 유튜브나 넷플릭스 같은
OTT 서비스 또한 서버로부터 컨텐츠를 제공 받아 고객이 시청할 수 있게 하는 서비스이고, 네이버 날씨 정보를 알고 싶을 때도 서버는 요청에 해당하는 데이터를 찾아 제공합니다.
클라이언트는 서버와 대응되는 개념으로 특정 서비스를 이용하는 사용자(고객)을 뜻합니다.
컴퓨터 네트워크에서 고객인 클라이언트는 서버로부터 다양한 데이터를 요청하고 서버가 보내 준 데이터를 처리하여 사용자가 볼 수 있게 합니다.
우리가 잘 알고있는 인터넷 익스플로러, 크롬, 파이어폭스 등 웹 브라우저가 클라이언트에 해당합니다.
서버는 컴퓨터 네트워크를 통해 클라이언트로부터 요청받은 데이터를 찾아 다시 넘겨주는 일을 합니다. 클라이언트의 소프트웨어는 윈도우나 IOS 같은 운영체제 위에서 운영되지만 서버는 주로 리눅스 위에서 운영되는 소프트웨어입니다.
우리가 이용하는 무수히 많은 정보를 제공하는 서버는 개인이 아닌 무수히 많은 클라이언트에게 정보를 제공하고 있습니다. 일반적으로 서버와 클라이언트는 1:1이 아닌 1:N 관계입니다.
네이버 날씨 화면을 예로 들면 사용자가 네이버에 날씨 정보를 요청하면 네이버는 서버로부터 우리에게 날씨 데이터를 제공합니다. 하지만 네이버 역시 또 다른 서버를 통해 날씨 데이터를 받아옵니다. 즉, 네이버는 서버인 기상청에서 제공하는 날씨 데이터를 받아오기 때문에 네이버는 클라이언트가 되고 기상청은 서버가 됩니다. 즉, 클라이언트와 서버는 고정적인 개념이 아닌 역할적인 개념이며 상황에 따라 언제든지 바뀔 수 있습니다.
프로그래밍은 클라이언트와 서버의 개념을 확실하게 알아야 합니다.
프로그래밍이 이루어지는 두 개의 큰 분야가 클라이언트와 서버이고 가장 기초가 되는 개념이기 때문입니다.
개발자는 크게 프론트엔드와 백엔드 개발자로 구분할 수 있습니다.
프론트엔드는 사용자들이 이용하는 클라이언트 프로그램인 웹/앱을 시각화하여 이미지로 구현하는 역할이고
백엔드 개발자는 클라이언트 프로그램에 필요한 데이터를 제공하는 서버를 관리하는 역할을 합니다.
또한 서버측과 관련된 데이터베이스를 효율적으로 처리하고 관리하는 영역으로 서버 측 개발 영역입니다.
API 작성, 라이브러리 생성, 데이터베이스 관리 등 다양한 활동이 포함되어 있습니다.
독서 ] 개발자가 되기 위해 꼭 알아야 하는 IT용어