본문 바로가기

쉽게 풀어본 IT 기술

응용프로그램 vs 웹어플리케이션 vs 서버프로그램

응용프로그램이라는 것은 우리가 사용할 수 있는 프로그램들을 모두 말한다. 워드도 그렇고, 인터넷 브라우저도 그렇고, 게임도 응용프로그램에 속한다. 응용하여 만들어진 모든 프로그램이 모두 응용 프로그램이다. 그것이 운영체제마다 조금씩 다른 형태로 제공이 된다.

윈도우 어플리케이션
윈도우는 우리가 일반적으로 사용하는 컴퓨터의 운영체제이다. 가장 많이 보게 되고, 흔히 접할 수 있다. 우리가 사용하고 있는 것들을 생각하면 된다. 윈도우 어플리케이션 대표적인 것은 MS Word, 인터넷 익스플로어, 크롬 브라우저 같은 것들이 있다. 네이버가 윈도우 어플리케이션은 아니다. 알집과 같은 유틸리티들이 윈도우 어플리케이션이다. 카카오톡도 PC버전이 있다. 이것이 윈도우 어플리케이션이다.

윈도우 어플리케이션은 어떻게 만들까? 주로 Visual Studio와 같은 시리즈로 마이크로 소프트사에서 만든 개발툴로 C++을 이용해서 만든다. 아무래도 윈도우가 마이크로소프트사에서 만들었으니 윈도우의 어떤 기능들을 조작하기 위해서는 그들이 제공하는 함수를 이용해야 한다. 함수라는 것은 특정 기능을 하는 것들이다. 함수라는 말은 심오하니 다음 기회에 그러면 윈도우 프로그램을 개발한다는 것은 사용자에게 보여지는 화면을 만들고, 그 화면 내에서 기능들을 동작 시킬 수 있는 버튼을 만들고, 그 버튼이 눌려졌을 때 하는 행위들을 만들고, 그 버튼을 눌러지면 행위가 되게끔 하는 것이다.

윈도우 프로그램은 윈도우라는 운영체제에서만 동작이 된다. 그 실행 파일은 다른 운영체제에서는 동작되지 않는다. 즉 윈도우 프로그램에는 명령어들이 담겨 있는데, 그 명령어들이 수행을 할 때 윈도우의 특정 기능들을 부르게 되는데, 그 부르는 대상이 있어야 한다. 물론 다른 운영체제에서는 해당 실행 파일이 아예 인식되지 않기에 실행을 시도해볼 수도 없다. 강제로 할 수 있겠지만, 의미는 없다.

웹어플리케이션
그럼 네이버와 같은 뭐라고 부를까? 웹 어플리케이션이라고 부른다. 그냥 웹사이트로 부르는 것이다. 웹사이트는 아무래도 네이버라는 자체를 가리키는 것에 가깝다면, 웹어플리케이션은 그 안에도 동작하는 것들이 많으니 그 동작되는 것들을 웹 어플리케이션을 지칭할 수 있겠다.

예를 들어 이미지가 한장 있는 특정 사이트에 들어가면 이미지가 노출되는 것을 보면 그것을 웹어플리케이션이라고 하기보다는 그냥 홈페이지이다. 그 이미지를 웹브라우저에 보이도록 하는 기능은 별도의 기능이라기 보다는 웹서버라는 서버에 이미지를 올려놓고 있으면 네트워크 접속을 통해서 해당 이미지가 나의 컴퓨터에 내려오고 내 브라우저에서 그 이미지를 불러들인 것이다. 그래서 어떤 특정 기능의 어플리케이션이 동작된 것은 아니다. 웹어플리케이션이라고 하면 네이버에서도 로그인을 하고, 메일을 보고 유튜브에서 동영상을 보고, 채팅을 하는 등으로 웹브라우저 내에서 특정 기능등을 할 수 있게 미리 만들어둔 것이라고 보면 된다.

웹어플리케이션을 만들려면 어떻게 할까?
윈도우 어플리케이션은 만들어서 사용자들이 자신의 컴퓨터에 설치를 해야 한다. 웹어플리케이션은 컴퓨터에 설치하는 개념은 아니다. 접속이라는 말로 한다. 브라우저에 주소창에 접속하고 싶은 도메인을 입력해서 접속을 한다. 도메인이라는 것은 일종의 주소이다. 내가 원하는 곳에 연결을 하는 것이다. 그러면 접속된 서버에서 어떤 내용들을 보내준다. 그 내용을 내 컴퓨터의 브라우저가 받아서 보여준다. 이 과정의 반복이 웹사이트에 접속하고 나서 일어나는 일들이다. 이때 브라우저에서의 요청을 응답해주는 것이
웹서버이다. 이 웹서버에 프로그램을 만들어 넣는 것이 필요하다. 이 프로그램들은 서버 사이드 프로그램이라고 하고, 다양한 언어들로 개발을 한다. 서버에서 동작되는 언어들이다. JSP, Java, PHP 등이다. 이런 언어들로 기능을 개발을 하고 웹서버에 넣어두면 된다. 그러면 사용자들에게 보여지는 화면이 만들어진다. 과거 프로그램들을 대부분 컴퓨터에 설치를 하고 사용을 하였다. 하지만 언젠가부터는 웹페이지내에서 많은 기능들을 하고 있다. 유투브로 영화도 보고, 메일도 바로 웹에서 사용하고, 웹의 편리한 점은 어디로 가든 자신의 계정(아이디와 패스워드)만 있으면 내 데이터가 그대로 보여진다는 점이다. 프로그램을 설치할 필요가 없다는 장점도 있다.

웹어플리케이션의 장점에는 프로그램이 문제가 있거나 기능을 업데이트 해야 하는 상황도 있을텐데, 이때 사용자들이 프로그램을 재설치 할 필요가 없다는 장점도 있다. 사용자들은 이 장점에 대해서 많이 생각을 안할 수 있지만, 제공사측에서는 큰 매력을 느낄 수 있는 부분이다.

서버 프로그램
서버프로그램은 서버 사이드에 있는 것은 웹어플리케이션과 유사한 면이 있지만, 웹어플리케이션은 웹이라는 범위가 있지만, 서버 프로그램은 꼭 웹을 의미하는 것은 아니다. 서버에 존재할만한 프로그램을 모두 서버 프로그램으로 이야기 할 수 있다. 서버가 있으면 클라이언트가 있다. 서버는 어딘가 존재할 것이고, 클라이언트는 내가 보고 있는 것이 클라이언트이다. 웹브라우저도 클라이언트이고, 스마트폰도 클라이언트이다.

인터넷을 접속하여 응답을 주는 것들 서버에서 하는 일이다. 예를 들면 주가 정보 보는 앱을 실행했는데, 실시간으로 주가 정보가 바뀌고 있다. 이를 보는 화면이 클라이언트이고, 이 정보들을 보내준 곳이 또는 저장하고 있는 곳이 서버이다. 서버에는 정보도 저장되어 있고, 특정 기능을 할 수도 있다. 정보를 저장하는 곳은 데이터베이스이다. 이 데이터베이스에는 수많은 정보들이 저장되어 있다. 우리의 개인정보도 저장이 되어 있고, 내가 가지고 있는 데이터들도 저장이 되어 있다. 정보를 저장하는 서버를 특별히 데이터베이스 서버라고 한다. 이는 우리가 웹브라우저로 접속하여 응답해주는 전문적인 역할을 하는 서버를 웹서버로 했듯이 데이터 베이스만을 전문으로 다루는 서버가 데이터 베이스 서버이다. 간단하게 DB라고 표현한다. 데이터 베이스 서버, 웹서버 등도 서버 프로그램이다. 서버 프로그램자체는 얼굴이 없는 프로그램이라고 볼 수가 있고 많은 경우 리눅스와 같은 운영체제에서 백그라운드로 수행된다. 물론 DB어플리케이션으로 접속을 해서 데이터 값들을 봤다고 하면 화면을 봤다고 볼 수 있지만, 그거 자체가 또 DB클라이언트 프로그램에 해당한다. 그래서 서버는 정보를 저장하거나 클라이언트 요청을 대응하는 엔진에 가깝다.


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

https://wikidocs.net/22309