서버란?
서버는 PHP, Java, C언어 등 컴퓨터 언어가 실행될 런타임 환경을 구축하여 프린트 제어, 파일 관리 및 소프트웨어 자원 공유, 네트워크 제어, 기타 장비 등 하드웨어 자원을 공유할 수 있도록 서비스를 제공하는 컴퓨터 또는 소프트웨어를 말합니다. 서버에서 보내주는 이러한 서비스를 받고 이를 요구하는 측은 클라이언트입니다.
클라이언트가 소규모 일 경우에는 한 대의 서버가 이러한 역할을 소화할 수 있으나, 대규모로 연결되어 있는 경우에는 여러 대의 서버를 두고 파일 관리, 프린트 제어 등 각각 역할을 세분하게 됩니다.
서버의 종류
1. 애플리케이션 서버
애플리케이션 서버는 사용자가 원격으로 액세스 할 수 있는 애플리케이션을 호스팅 하거나 배포하는 서버입니다. 웹 용 프로그램을 동작시킬 수 있도록 해주는 소프트웨어 플랫폼을 의미합니다. 동적 서버 콘텐츠를 수행한다는 것으로 일반 WEB 서버와 구별되며, 주로 데이터베이스 서버와 같이 서비스를 수행합니다.
애플리케이션 서버는 기본적으로 3가지 기능을 제공한다. 프로그램 실행 환경과 데이터베이스 접속 기능, 여러 개의 트랜잭션을 관리, 업무를 처리하는 비즈니스 로직을 수행한다. 다만, 일부 기능을 제공하지 않는 웹 애플리케이션도 존재하며, 이러한 3가지 기능 말고도 여러 기능을 추가하고 강화하여 사용하는 업체도 존재한다. Web Logic, Jeus, Tomcat이 대표적인 애플리케이션 서버입니다.
2. 웹 서버
웹 서버는 웹 페이지만 배포할 수 있지만 애플리케이션을 배포하거나 호스팅 할 수 없는 서버입니다. S/W적 의미로 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램과 H/W적 의미로 이러한 프로그램을 실행하는 컴퓨터를 의미합니다.
웹 서버는 콘텐츠를 제공하는 것이 주 기능이지만, 클라이언트로부터 콘텐츠를 전달받는 것 역시 웹서버의 기능으로 이러한 기능은 업로드를 포함한 클라이언트에서 제출한 웹 폼을 수신하기 위해 사용된다. Apache, 마이크로소프트 인터넷 정보 서비스(IIS)가 대표적인 웹서버입니다.
3. 프록시 서버
프록시 서버는 클라이언트와 서버의 중간에 위치하는 서버입니다. 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터나 응용 프로그램을 의미합니다.
프록시 서버는 서버에 요청된 내용들을 캐시로 이용하여 저장하며, 이렇게 캐시를 해 두고 난 후 캐시 안에 잇는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 직접 가져올 필요가 없게 됨으로써 전송 시간을 절약합니다. 동시에, 불필요하게 외부와 연결을 하지 않아도 되는 장점을 갖습니다.
4. 메일 서버 (Mail Transfer Agent, MTA)
메일 서버는 전자 메일을 수락하고 원하는 수신자에게 저자 메일을 발송해주는 서버입니다. 전자 우편을 SMTP(Simple Mail Transfe Protocol)를 이용해 다른 전자 우편 서버로 전달하는 프로그램입니다. Sendmail, qmail, postfix, 마이크로소프트 익스체인지 서버가 대표적인 메일 서버입니다.
5. 데이터베이스 서버
데이터베이스 서버는 사용자가 데이터베이스에 연결할 수 있도록 해줍니다. 데이터베이스는 사용자 정보나 사진, 동영상 등에 대한 정보를 담고 있는 서버입니다. 데이터베이스 서버의 종류로는 MySQL, MongoDB, Oracle 등 여러 종류로 또 나뉩니다.
6. 파일 서버
파일 서버는 워크 스테이션에 접근할 수 있는 컴퓨터 파일을 공유하고 있는 기억 공간의 위치를 제공하는 서버입니다. “서버”라는 용어는 클라이언트 서버 구조로 된 기기의 역할을 강조하며, 여기서 클라이언트는 이 기억 공간을 사용하는 워크스테이션을 의미합니다. 파일 서버는 일반적으로 어떠한 계산도 수행하지 않으며, 클라이언트의 중간에 어떠한 프로그램도 실행하지 않습니다. 데이터의 빠른 저장과 워크스테이션이 중대한 계산을 제공하는 데이터 수신이 파일 서버의 주된 설계 목적입니다.
그 밖에도 다양한 종류의 서버 종류가 있지만, 위 6가지가 대표적인 서버의 종류로 볼 수 있습니다.
'프로그램 > Server' 카테고리의 다른 글
HeidiSQL란? (0) | 2021.07.06 |
---|---|
Oracle SQL Developer (0) | 2021.07.05 |
SVN란? (0) | 2021.06.28 |
댓글