네트워킹(Networking)이란?
IT계열에서 네트워킹의 개념은 '두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것'을 네트워킹이라고 한다.
현재는 셀 수도 없을 만큼 많은 수의 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있고, 인터넷을 통해 다양하고 방대한 양의 데이터를 공유하는 것이 가능해진 것이다.
이러한 네트워킹에 따라 메신저나 온라인게임과 같은 인터넷을 이용해 다양한 네트워크 어플리케이션이 많이 생겨난 것이다.
Server와 Client란?
서버(Server)와 클라이언트(Client)는 네트워킹에서 중요한 개념이며, 서로 간의 관계를 표현하는 데 사용된다.
서버는 일반적으로 안정적이고 지속적인 서비스를 제공하기 위해 설계되며,클라이언트는 사용자의 요구에 따라 다양한 서비스를 요청하고 이용한다.
이 둘의 상호작용은 인터넷이라는 거대한 네트워크 시스템의 핵심적인 구성 요소이다.
Server
- 서버는 네트워크에서 중앙 역할을 하는 컴퓨터나 시스템을 의미한다.
- 서버는 데이터, 파일, 웹 페이지, 서비스 등을 제공하는 역할을 한다.
- 서버는 일반적으로 강력한 처리 능력과 넉넉한 저장 공간을 갖추고 있으며, 동시에 여러 클라이언트의 요청을 처리할 수 있다.
즉, 서버란 사양의 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터.
Server의 종류
-
웹서버(WebServer)
- HTML로 만든 웹 페이지가 들어 있는 파일을 사용자에게 제공하는 서버 프로그램이다.
- 대표적으로
아파치(Apache)
, IIS
, 웹투비(WebtoB)
, 웹티어(WebTier)
등이 있다.
-
와스서버(WAS)
- Web Application Server의 약자로서, 자바(Java) 등으로 만든 웹 응용 프로그램이 설치되어 작동하는 웹 애플리케이션 서버를 뜻한다.
- 대표적으로
톰캣(Tomcat)
, 제우스(JEUS)
, 제이보스(JBoss)
, 웹로직(WebLogic)
, 웹스피어(WebSphere)
, 레진(Resin)
, 글래스피시(GlassFish)
등이 있다.
- 한국에서는 WAS라고 하지만, 영어권에서는 Application Server(약칭 AS)라고 한다.
-
디비 서버(DB Server)
- Database Server의 약자로서, 데이터베이스(DB)를 저장 및 관리하는 서버를 말한다.
오라클(Oracle)
, 마이에스큐엘(MySQL)
, 엠에스에스큐엘(MS-SQL)
, 큐브리드(Cubrid)
등 다양한 데이터베이스 관리 시스템(DBMS)으로 만든 데이터가 저장, 관리된다.
Client
- 클라이언트는 서버에 데이터나 서비스를 요청하는 컴퓨터나 디바이스를 의미한다.
- 일반적인 예로는 웹 브라우저가 있다.
- 웹 브라우저(클라이언트)는 웹 서버에 웹 페이지를 요청하고, 웹 서버는 요청받은 웹 페이지를 클라이언트에게 전송한다.
즉, 서버와 이어진 모든 기기와 단말기에서 이용하는 웹에 접근하는 SW. (PC나 스마트폰 등의 사용자)
Client의 종류
-
팻 클라이언트(Fat Client)
- 팻 클라이언트는 클라이언트 컴퓨터가 많은 처리를 담당하는 구조를 가리킨다.
- 팻 클라이언트는 강력한 CPU, 많은 메모리, 큰 저장 공간 등을 갖추고 있어, 서버에 의존하지 않고 독립적으로 많은 작업을 처리할 수 있다.
- 그러나 이런 특성 때문에 관리 비용이 높을 수 있다.
-
씬 클라이언트(Thin Client)
- 씬 클라이언트는 서버에 많이 의존하는 구조를 가리킨다.
- 씬 클라이언트는 최소한의 하드웨어만을 갖추고 있으며, 대부분의 데이터 처리와 저장은 서버에서 이루어진다.
- 이로 인해 씬 클라이언트는 저렴하고 유지 관리가 쉽지만, 서버에 대한 의존도가 높아 서버에 문제가 생기면 작업에 지장이 생길 수 있다.
-
하이브리드 클라이언트(Hybrid Client)
- 하이브리드 클라이언트는 팻 클라이언트와 씬 클라이언트의 중간 형태를 가리킨다.
- 하이브리드 클라이언트는 일부 처리를 클라이언트에서 하고, 일부 처리를 서버에서 하는 방식을 취한다.
- 이렇게 하면 서버의 부하를 줄이면서도, 클라이언트의 자원을 효과적으로 활용할 수 있다.
- 하지만 이 구조는 시스템 설계와 관리가 복잡해질 수 있다.
Server와 Client의 연결 방식
서버와 클라이언트의 연결 방식은 주로 두 가지 모델을 바탕으로 설계된다.
- 클라이언트-서버 모델:
- 이 모델에서, 서버는 클라이언트의 요청에 응답하여 서비스를 제공하는 역할을 한다.
- 클라이언트는 서버에게 서비스를 요청하고 해당 서비스를 이용하는 역할을 한다.
- 이 모델은 일반적으로 웹 서비스, 이메일, 데이터베이스 관리 등에서 사용된다.
- 클라이언트-서버 모델은 중앙화된 서버가 있으므로 관리가 용이하며, 데이터의 일관성을 유지하는 데 유리하지만, 서버에 과부하가 걸릴 위험이 있다.
- P2P 모델(Peer-to-Peer):
- P2P 모델에서는 모든 노드가 동등한 위치에 있으며, 서버와 클라이언트의 역할을 모두 수행할 수 있다.
- 이 모델에서는 각드가 네트워크에 직접 참여하여 자원을 공유하고, 다른 노드의 요청에 응답한다.
- 이 모델은 파일 공유, 분산 컴퓨팅 등에서 주로 사용되며, 서버에 의존하지 않고 노드 간 직접적인 교류를 가능하게 한다.
- 하지만 보안과 데이터 일관성 관리가 어려울 수 있다.
Client Server Architecture
서버간의 통신을 서버와, 클라이언트로 분리시킨 설계방식으로, 이러한 설계방식을 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부른다.
또한 이러한 2티어 아키텍처에 데이터베이스가 추가된 설계방식을 3티어 아키텍처라 부른다.
2-Tier Architecture
- 전통적인 클라이언트-서버 모델을 따르며, 클라이언트와 서버 두 개의 계층으로 구성된다.
- 클라이언트는 사용자 인터페이스와 비즈니스 로직을 담당하며, 서버는 데이터를 저장하고 관리하는 역할을 수행한다.
- 이 구조는 간단하고 직관적이지만, 클라이언트가 비즈니스 로직을 처리하기 때문에 클라이언트의 부하가 커질 수 있다.
3-Tier Architecture
참고 : https://velog.io/@jennyfromdeblock/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84-%EB%B9%A0%EB%A5%B4%EA%B2%8C-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0#%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9networking%EC%9D%B4%EB%9E%80
참고 : https://velog.io/@estell/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%84%9C%EB%B2%84-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
참고 : https://inspien01.tistory.com/29