클라이언트와 서버란?
안녕하세요. 개발자 개발 까마귀 입니다. 오늘 알려드릴것은 클라이언트 가 무엇이고 서버가 무엇인지에 대해서 알려드리겠습니다. 회사에서도 제일 많이 얘기하고 기본 지식인 클라이언트와 서버란 무엇일까요?
클라인트와 서버간의 관계
자 저희는 초심자이기 때문에 일단 간단하게 누가 요청자고 누가 응답자냐로 개발의 첫 단계를 밟읍시다.
원래 시작이 중요한 법이죠 일단 클라이언트가 요청자고 서버는 응답자입니다.
클라이언트 즉 여러분들의 컴퓨터, 핸드폰, 노트북등이 클라이언트라는 소리죠
예시로 여러분은 웹툰을 보기 위해서 네이버 웹툰 사이트로 갑니다.
여러분은 들어가자마자 뭐가 나올지 예상을 합니다. 바로 요일별 웹툰 리스트가 나올걸 예상을 하고있죠
여기서 이 요일별 웹툰 리스트를 누가 주냐 브라우저? 아니면 클라이언트? 바로 서버가 제공해주는겁니다.
여러분은 웹툰 사이트를 들어가자마자 서버한테 요청을 보낸겁니다.
서버는 그 요청에 대한 응답을 줘서 여러분들이 보는 웹툰 사이트가 나온거고요.
그냥 쉽게 클라이언트는 요청을 보내고 받는 애고 서버는 그 요청에대한 응답을 하는애로 기억을 하시면 됩니다.
일상생활의 예시로 보자면 여러분들은 인터넷 쇼핑에서 마우스를 샀습니다. 한마디로 마우스를 쇼핑업체한테 요청을 한거죠 "마우스 요청" 이러면 쇼핑업체는 그 마우스가 요청이 왔으니 당연히 마우스를 요청한 고객한테 응답을 하러 배달업체가 가는거죠 자 여기서 여러분은 클라이언트고 쇼핑업체는 서버인거죠 쇼핑몰업체(서버)가 여러분들(클라이언트)한테 마우스를 달라고 할일은 없으니깐요.
서버실
서버도 종류가 많습니다. 프론트 서버, 백엔드 서버, 데이터 베이스 서버 이런식으로요.
또 여기에 더 나아간다면 파일 서버, 메일 서버 이렇게도 나눕니다. 대부분 실무에서는 이렇게 서버를 나눕니다.
왜이렇게 나누냐고요? 서버의 부하량을 분산하기 위해서죠 영화나 드라마에서 해커가 서버실로 가서 노트북 연결해서 해킹하는 장면이 나오는데 그때 그 서버실에 서버는 몇 백개입니다. 지금 위에 사진처럼요 다 그게 트래픽(일의 양)을 분산하기 위해서죠 하나의 서버가 500만큼의 일을 처리 할 수 있는데 클라이언트에서 보내는 일의 양이 1000이라면 당연히 서버는 죽을 수 밖에 없습니다. 그러니 그 서버가 죽는거를 대비하거나 그 서버의 트래픽을 줄이기 위해 그렇게 많은 서버를 두는 겁니다. 트래픽만 분산하기에는 서버를 사서 두지는 않습니다.
서버의 CPU core개수에 따라 트래픽을 분산하기도 합니다. 여기서 CPU가 서버의 역할을 하는거죠 그 비싼 서버를 트래픽 분산을 위해 사는건 작은기업의 경우에서는 큰 부담이니깐요. 하지만 이 경우에 CPU core를 이용하여 서버 트래픽을 분산하는 서버가 죽으면 대체할 수 있는 서버는 없죠 이렇게 장 단점들이 있습니다.
개발자라면 알아야 할 필수 회사입니다.
자 여기서 여러분들의 궁금증 "그럼 내가 만든 웹은 어떻게 배포를 해야되지?"
이렇게 생각 할수도 있습니다.
답은 서버를 빌리면 됩니다. 아니면 집 컴퓨터를 하루종일 켜서 서버 역할을 해도되고요.(전기세ㅠㅠ) 여러분 amazon 회사아시죠? 거기서는 서버를 빌려줍니다. 저희가 돈을 주고 서버를 빌리는겁니다. 저희가 빌린 서버는 저 멀리 어디가에있겠죠?
그리고 관리하기도 쉽습니다. 꼭 amazon의 aws를 이용할 필요는 없습니다. 다른 데에도 이러한 서비스는 존재하니깐요. 뭐 Herouk도 있고 많습니다. 지금까지는 서버의 기초적인 개념 설명입니다. 나중에는 WAS, WEB서버에 대해 더 깊게 배우도록하죠
오늘은 서버와 클라이언트에서 배웠습니다.
오늘 배운거는 정말 개발을 하기 위해 기초적인 큰틀을 알려드린겁니다.
이러한 큰틀을 모르고 개발을 시작한다면 개발을 하면서 처음에는 몰라도 큰 문제는 없지만 가면 갈수록 이해는 물론, 이러한 큰틀의 아키텍처를 몰라 헤멜수도있습니다.
다음에는 인터넷의 작동원리에 대해 알아보겠습니다.
감사합니다.
'IT 기술' 카테고리의 다른 글
[IT 기술] 오픈소스 분석 방법과 개발자 공부 방법 (12) | 2021.03.14 |
---|---|
[IT 기술] DELL 고객 과실 서비스 후기 (0) | 2021.02.27 |
[IT 기술] 웹 부하 테스트 nGrinder3.5.3 (0) | 2021.01.30 |
[IT 기술] 웹브라우저 동작원리 (3) | 2021.01.16 |
[IT 기술] 인터넷의 작동원리 (14) | 2021.01.10 |
댓글