서버 vs 클라이언트
처음 전공을 배울때에는 서버와 클라이언트라는 단어조차도 생소했다.
혹시라도 이 글을 볼지도 모르는 초심자를 위해 서버와 클라이언트를 간단하게 말해보자면
사실 '서버'란 말은 역할의 개념이다. 제공해주면 서버이고, 받으면 손님인 클라이언트이다.
한 컴퓨터가, 네트워크로 연결된 다른 하나 이상의 컴퓨터들에게 뭔가를 해주면
이를테면 저장된 글과 사진, 영상들을 보여주거나 반대로 그것들을 업로드 받아서 보관해주거나 한 컴퓨터가 톡을 보내면 다른 컴퓨터에게 알림을 보내거나 위치 정보와 목적지를 받고 가는 길과 소요 시간을 계산해주거나 여럿이 온라인으로 참여할 수 있는 게임을 열어주거나 하면,
그 해주는, serve하는 컴퓨터가 서버,
그 service 받는 컴퓨터가 서버의 상대 개념인 손님, 클라이언트
역할의 개념이기에 서버와 클라이언트는 바뀔수도 있다.
한 맛집 앱을 담당하는 컴퓨터가 있을때, 이 컴퓨터는 앱이 깔린 폰들에 맛집들의 정보를 전송해준다. 폰들에 서비스를 제공하니까 서버인거다. 그런데 이 앱이 특정 지역의 지리 정보가 필요할 땐 이 컴퓨터가 네이버 지도 서버에 요청해서 정보를 받아온다. 이때는 이 컴퓨터가 클라이언트가 되는거다.
클라우드
서비스를 개발할 때 서버를 두는 방식은
회사가 자사의 시설, 혹은 IDC에 자체적으로 서버를 두고 운영하는 On-premise 방식과
대기업 브랜드에서 제공하는 클라우드 컴퓨팅 서비스가 있다.
이 클라우드 역시 자사의 거대한 데이터센터에 서로 연결된 수많은 컴퓨터들을 운용하고 있고, 다만, 전통적인 서버 방식처럼 이용자에게 컴퓨터를 하나를 통째로 배당하는 게 아니라 필요한 만큼만 떼어서 나눠준다. 사용자는 원격 접속 소프트웨어를 이용해서 마치 컴퓨터 한 대를 쓰는 것처럼 인터넷으로 연결된 이 가상 컴퓨터를 사용한다.
- IaaS : 기본적인 인프라를 제공한다. 클라우드에서는 거의 하드웨어만 관리하고, 빈 컴퓨터에 윈도우 깔고 드라이버 다운 받고 프로그램 깔고 하듯이 사용자가 직접 가상서버 하나를 운영하고 관리한다. 클라우드들의 대표적 상품이라고 할 수 있다.
- PaaS : 플랫폼(하드웨어와 운영체제)을 제공한다. 내가 짠 코드를 압축해서 업로드하거나 깃으로 전송하면 알아서 서버에 넣고 돌려준다.(=배포)
- SaaS : 완전한 제품을 제공한다. 구글 드라이브, N드라이브, SNS 등 사용자들이 온라인으로 바로 이용할 수 있고 가장 많이 접하는 서비스이다.
인기 IaaS 서비스들
🔗 Azure (마이크로소프트)
🔗 GCP (구글)
🔗 AWS (아마존)
인기 PaaS 서비스들
🔗 Heroku 다양한 언어들로 웹 어플리케이션 실행, 배포, 스케일링 가능
🔗 Firebase 웹 배포 및 서비스 분석, 데이터베이스, 머신러닝 등 각종 백엔드 기능 제공
🔗 Netlify Github 등에 사이트를 푸시하면 무료로 배포
'컴퓨터과학 > 네트워크' 카테고리의 다른 글
[네트워크] HTTPS, 대칭키, 비대칭키, SSL (0) | 2023.01.19 |
---|