서버와 개발자, 왜 서버 지식이 중요한가? – 서버 (Server) 기초

개발자도 서버 (Server) 에 관련 된 기본적인 지식이 필수다. 그 이유는 결국 프로그램은 서버 내에서 동작하고 정보를 읽고 저장하며 기능이 동작하기 때문이다.

그리고 현실적인 이유도 있다. 큰 회사라면 네트워크, 서버 담당자가 별도로 있겠지만 조그마한 회사의 경우 개발자가 이 모든 걸 해내야 하는 경우도 있다.

물론 큰 회사라도 프로젝트 당시, 상황에 따라 이런 경우가 아주 흔하다.

거기에 개발자가 이 정보를 모르면 이 후 고객이나 상사를 설득해서 유지 보수, 인수 인계 범위를 정해야 될 때 내가 맡지 않아도 되었던 부분 까지 맡게 되어 크게 고생할 수 있다.

자 그럼 이제 기본 소양으로 서버가 무엇 인지에 대해 가볍게 정리해 보자.

서버 (Server)란?

서버란 용어는 기본적으로 네트워크를 통해 클라이언트의 요청을 받아 데이터나 서비스를 제공하는 컴퓨터 시스템을 말한다.

근데 여기서 서버란 용어는 먼저 물리적 서버(Physical Server) 와 소프트웨어 적인 기능으로 구분하는 논리적 서버가 있다.

물리적 서버 (Physical Server)

물리적 서버 (Physical Server)

이는 하드웨어 자체를 의미하는 용어이다. 쉽게 말하자면 장비 그 자체를 말하며 인프라 담당자들의 영역이다.

실무 에선 서버 장비라고 용어를 구분해서 부르곤 하며 주로 데이터 센터에 모여 있는 장비들을 물리적인 서버라 한다.

주로 개발을 막 시작하면 어차피 별도의 서버를 구매하진 않으므로 개인 PC 가 이 서버 장비의 역할을 하게 된다.

논리적 서버 (Logical Server)

서버와 개발자, 왜 서버 지식이 중요한가? – 서버 (Server) 기초

물리적인 하드웨어와 대비되는 개념으로 물리적 서버 안에서 동작하는 소프트웨어를 떠올리면 된다. 개발자라면 쉽게 접할 웹, 데이터베이스, 파일 서버 등이 속한 용어다.

웹 서버 (Web Server)

우리가 개발한 웹 어플리케이션 서비스를 제공하는 서버다. 우리가 보는 웹 페이지 들은 이 웹 서버 위에서 동작하며 클라이언트(개인 PC, 스마트폰 등)가 HTTP 프로토콜로 요청하면 HTML 문서, 이미지, 서비스와 같은 웹 콘텐츠를 제공한다.

웹 페이지를 개발해 보았다면 들어 봤을 Apache, WebtoB 등이 있다.

데이터베이스 서버 (Database Server, DB Server)

DBMS 라 불리우는 데이터베이스 관리 시스템을 실행하여 데이터를 저장, 검색, 수정, 삭제 등을 처리하는 서버를 말한다.

웹 서버가 웹 페이지의 모습(HTML), 혹은 서비스 동작 프로그램을 다룬 다면 데이터베이스는 여러 어플리케이션에서 이용할 데이터를 다룬다.

예를 들어 우리가 회원가입을 하고 로그인을 하는 유저의 정보는 모두 DB Server 내에서 관리 되며 클라이언트의 요청을 Web Server 내의 웹 어플리케이션이 해석하고 필요한 정보를 DB Server 를 통해 가져가는 형태로 동작하는 경우가 많다.

여기서 DBMS 는 데이터가 저장되는 공간 (DB) 에 데이터를 저장하는 방법, 형태, 생성, 검색 등의 기능을 한데 모은 하나의 소프트웨어 집합 도구다.

우리가 흔히 DB라 하면 언급되는 Oracle DB, MySQL, MariaDB 가 바로 DBMS다.

파일 서버 (File Server)

파일 서버는 파일 그 자체가 저장 되기 위해 별도로 존재하는 서버다. 웹 페이지에 파일 첨부 기능이 있다면 이 파일 서버 내에 저장 되고 이후 사용 된다.

클라이언트가 첨부할 파일 외에도 서비스에서 제공 되어야 하는 파일들을 모으고 관리한다.

그리고 꼭 어플리케이션을 위한 서버로 동작하지 않고 여러 클라이언트가 함께 다룰 파일들을 이 파일 서버를 통해 공유, 관리하는 경우가 있다.

예를 들어 기업들은 업무상 파일을 이 파일 서버 내에 모두 모으고 효율적으로 관리한다.

가상 서버 (Virtual Server)

가상 서버 (Virtual Server)

가상 서버는 물리적 서버의 리소스를 가상화 기술로 분할하고 이렇게 분할 된 각각의 부분을 독립적인 서버로 운영할 수 있게 만들어주는 기술을 기반으로 한다.

예를 들어 실제 물리적인 서버 장비가 한대 있으면 이 한 대를 소프트웨어 적으로 분할하여 마치 여러 대의 서버가 존재하는 것처럼 만들어 사용하는 서버들을 말한다.

가상 서버는 물리적 서버처럼 제공되고 동작하지만, 실제론 소프트 웨어적인 기술로 분할 해 사용하는 것 이니까 논리적 서버 영역으로도 볼 수 있다.

가상 사설 서버 (Virtual Private Server, VPS)

한 장비를 소프트웨어 적으로 분할 하여 마치 독립적으로 제공하게 만드는 것을 가상 사설 서버라 한다.

클라우드 서버 (Cloude Server)

클라우드 컴퓨팅 환경에서 제공되는 서버들을 말한다. 최근 IT 트렌드 중 하나 이다.

개발자는 클라우드 호스팅 제공 업체를 통해, 물리적인 서버 없이 자신의 어플리케이션을 서비스 할 수 있게 되었다.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤