본문 바로가기

쉽게 풀어본 IT 기술

클라이언트 and 서버 그리고 WAS, DB서버

클라이언트는 우리가 보고 있는 컴퓨터, 스마트폰이 클라이언트이다. 클라이언트는 손님이기도 하고, 요청자이기도 하다. 엄밀하게 말하면 컴퓨터나 스마트폰이 클라이언트는 아니다. 그 운영체제 내에서 클라이언트로 동작되는 것들이 클라이언트이다. 클라이언트로 동작된다는 것은 요청자 역할을 하는 것이다. 그리고 서버로부터 응답을 받아서 화면에 결과를 보여준다.

대표적인 것이 브라우저인 인터넷 익스플로러이다. 스마트폰의 대부분의 앱은 클라이언트이다. 서버로부터 응답을 받아서 보여준다. 서버와 클라어인트 구도라는 것은 이렇게 서버에서 응답을 해주고, 클라이언트에서 응답을 받아서 보여주는 구조인 것이다. 클라이언트는 컴퓨터 같은 경우는 설치하기도 한다. 카카오톡 앱도 PC버전이 나와서 설치하여 사용할 수가 있다. 컴퓨터 설치된 버전이 클라이언트이다. 물론 어딘가에는 이 메시지들을 오가게 해주는 서버가 있다.

클라이언트를 받아주는 것이 서버이다.

서버는 우리가 보고 있는 단말기의 저 멀리 건너편에서 통신하고 있는 시스템이다.
네트워크 통신을 하는 모든 서비스는 서버가 있다. 우리의 화면에 보여주는 데이터들은 서버에서 응답을 해준 것이다. 물론 워드 프로세스나 포토샵 같은 프로그램은 서버와 통신할 일이 없을 수도 있다. 하지만 요즘 프로그램들은 사용자가 인지하지 못하지만 대부분 서버와 통신을 한다. 심지어 단순한 개인 PC에서 돌아가는 프로그램을 실행할 때 서버와 통신하여 해당 프로그램의 업데이트 버전이 있는지 체크를 하고, 만약 있다면 업데이트를 시키는 경우도 있다.

웹브라우저도 실행을 하는 웹브라우저 자체는 PC의 프로그램이나 화면 내에 보이는 모든 내용은 서버로 부터 온 것이다. 서버는 클라이언트의 요청을 기다리다가 이러한 응답을 만들어서 내려보내준다. 서버는 그래서 많은 클라이언트들이 붙어 있거나 요청을 하는 것을 대응한다. 대표적인 서버는 웹서버가 있다. 웹서버는 웹을 위한 서버이다.

초창기 웹은 웹브라우저에서 대부분 글자들이나 그림 정도를 보여주는 것은 대부분이였다. 웹서버는 그렇게 텍스트 기반의 파일들 그리고 이미지를 잘 저장해두고, 보여주는데 특화되어 있는 서버이다. 웹서버를 트래픽 처리가 빠르다. 웹서버가 별도 로직을 담고 있는게 아니라 대부분 파일을 엑세스 해서 내용을 클라이언트로 보내주는 역할을 한다. 프로그램 동작되는 것은 아니다. 웹이 초창기에는 단순하게 파일 처리 위주로 했으면 됐기 때문에 웹서버의 본연의 기능으로 충분했을 것이다. 하지만 웹이 발전하고 브라우저 기반의 서비스 내지는 사내 시스템도 많이 나오게 되었는데, 이를 위해서는 서버에서도 DB도 조회하고, 로직들이 만들어져야 했다. 이를 위해서 등장한 것이 WAS서버이다.

Web Application Server 서버상에서 로직을 수행하는 서버이다. 여기에 프로그램을 올리고 동작을 시킨 것이다. 어플리케이션이 구동된다고는 하지만, 비중있는 로직을 넣어서 고도화된 프로그램을 동작 시키는 것은 무리가 있다. 왜냐면 클라이언트가 접속되어 있고, 클라이언트는 응답을 기다리고 있기 때문이다. 응답을 못받으면 계속 클라이언트는 연결을 유지하고 있어서 상당한 부담으로 작용한다. 연결을 유지하는 것은 자원의 한계가 있고, 한계적인 자원 환경에서 계속 접속되어 있는 것은 서버의 부하 증가 또는 응답 대기를 만들어낸다. 로직을 구현하더라도 서버에서는 최대한 빠른 시간에 응답을 해주는 것이 좋다.
그래서 서버에서 많은 로직은 구현하기보다는 응답을 빨리 보내주고, 클라이언트에서 구현을 해주는 것이 좋다.

DB서버의 경우는 데이터를 저장하는 서버이다. 데이터만 관리하기 위한 전문적인 서버이다. 대표적으로 사용 데이터베이스 서버인 오라클이 있다. 오픈 소스 기반으로 MySQL이 있다. 그 외에도 DB 서버는 관계형 데이터베이스와 NoSQL과 같은 DB형태가 있다. 이러한 NoSQL에 적합한 MongoDB, Casandra, HBase등이 있다. NoSQL은 DB에서 좀더 자세하게 다뤄보도록 하겠다.


책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다. 

https://wikidocs.net/22354