티스토리 뷰

웹의 전반적인 구조를 알고 있다면, 클라이언트가 서버에게 요청한 페이지를 서버에서 잘 가공하여 다시 클라이언트에게 응답하는 간단한 구조는 알고 있을 것이다.

 

여기서 어느 측에서 요청을 처리하느냐에 따라서 클라이언트 사이드 스크립트 언어(Client Side Script Language)서버 사이드 스크립트 언어(Server Side Script Language)로 나뉘게 되는데, 말 그대로 클라이언트에서 실행되는 스크립트 언어를 클라이언트 사이드 스크립트 언어라고 하고, 서버에서 실행되는 스크립트 언어를 서버 사이드 스크립트 언어라고 한다.

 

이 중 오늘은 서버 사이드 스크립트 언어들을 비교하는 글을 작성할까 한다. 오늘 비교하려는 언어는 JSP, ASP, PHP, Python으로 현재 대표적으로 많이 사용되고 있는 서버 사이드 스크립트 언어들이다. 먼저 각 언어별 특징을 정리해 보자.

 

 

 

 

 

JSP(Java Server Page)

 

 

Java를 기반으로한 서버 사이드 스크립트 언어이다. 따라서 Java의 가장 큰 특성인 플렛폼 독립성의 성질을 그대로 가져간다. 어떠한 플렛폼을 사용하던 사용이 가능하다.

 

다양한 작성방법이 있지만, 기본적으로 <% %> 태그로 스크립트를 감싸서 작성되며, 확장자는 .jsp이다. 그리고 서버 사이드에서 실행가능한 자바 파일을 Java Servlet이라고 한다.

 

실행시 javax.servlet.http.HttpServlet 클래스를 상속받은 자바 소스코드로 변환되어 컴파일된 후 실행된다. 따라서 .jsp 파일을 클래스로 변환시켜서 컴파일 후 실행시키는 과정을 하는 프로그램이 Java Servlet Conainer이다. 이 프로그램도 Java로 만들어진 프로그램이기 때문에 플렛폼에 독립적으로 실행될 수 있다.

 

JSP는 객체지향적 특성을 가지고 있어서 처음 배우는 데에 진입장벽이 있지만, 큰 규모의 서버에서 사용된다면, 클래스 설계가 잘 되어있다는 가정하에 아주 안정적인 유지보수가 가능하다는 장점이 있다. 또한 이미 존재하는 자바의 API를 사용할 수 있다는 점에서 강력한 장점이 있다.

 

또한 한국시장에서는 가장 점유율이 높아서 JSP개발자들의 수요가 높은 편이다.

 

하지만, 자바 소스코드로 변환되어 컴파일 과정을 거치는 과정이 있어서 상대적으로 느릴 수 있고, 프레임워크를 능숙하게 다룰 수 없다면 습득에 시간이 걸릴 수 있다는 단점이 있다. 또한 최근 JDK에 라이센스 비용이 들어간다는 소식도 있어서 그런 부분도 고려를 해야될 것 같다.

 

JSP는 대표적으로 오픈소스인 Tomcat이라는 WAS 환경이 존재한다. 또한 Spring이라는 프레임워크가 주축으로 존재하고 있다. 웹 서버와 WAS에 대한 기초지식은 아래 링크에서 확인할 수 있다.

 

 

[Network]Web Server & WAS

http://hyoje420.tistory.com/5?category=292746

 

 

 

ASP(Active Server Page)

 

 

일단 이 언어의 부모는 MS이다. 따라서 플렛폼은 윈도우 환경에 최적화 되어있다. 최근 비 윈도우 환경에서도 지원을 하지만, 윈도우 환경에서 많이 사용되는 언어이다. 이 언어는 Visual Basic과 JB Script로 만들어져 있다. 따라서 Java보다는 컴파일 속도가 상대적으로 빠르다고 한다.

 

일단 ASP를 사용하는 대부분의 서버의 OS가 윈도우로 구축되어 있다는 점에서 개발환경에 적응해야 하는 피곤함은 덜한 편이고(개인차가 있다.), MS라는 커다란 기업에서 지원을 해주기 때문에 유지보수에 강점을 보인다는 장점이 있다. 따라서 유지보수가 굉장히 중요한 큰 프로젝트를 진행합에 있어서 이점이 있다.

 

또한 하나의 프로젝트에서 C++, C#과 같이 여러 언어를 동시에 지원하기에 개발에도 이점이 있다.

 

하지만 아직까지는 윈도우에 최적화 되어있어서, 자연스럽게 라이센스 비용이 많이 들어갈 수 밖에 없다. 따라서 유지보수 비용이 충분하지 않은 상태에서 프로젝트를 진행하는 것은 금전적으로 어려움이 있을 수 있다.

 

대표적으로 IIS라는 WAS 환경에서 구동되며, ASP.NET이라는 주요 프레임워크가 존재한다. <% %> 태그로 감싸며 JSP와 형식이 같다. 확장자는 .asp를 사용한다.

 

 

 

PHP(Hypertext PreProcessor)

 

 

웹에서 상당히 인기있는 언어인 PHP를 빼놓을 수 없다. 일단 오픈소스이기 때문에 상용으로 사용해도 비용이 발생하지 않는다. 이 점이 이 스크립트 언어의 흥행을 이끌어 왔다.

 

특별한 모듈의 설치가 없고 상용 라이센스 비용이 따로 들어가지 않아서 이는 엄청난 장점이 된다. 또한 주요 OS와의 연동이 원활하게 이루어지기 때문에 범용적으로 사용이 가능하다.

 

2020년도 기준으로 Laravel 프레임워크가 주축으로 사용되고 있다. 이 외에도 Code Igniter, Symfony, Zend 프레임워크도 존재한다.

 

https://www.jetbrains.com/ko-kr/lp/devecosystem-2020/php/

 

기존 PHP는 클래스 설계가 사실상 어려운 구조로 되어있어, 유지 보수에 있어서 상당히 힘들 수 있지만, 해외에서는 상당히 많은 기업에서 채택하여 사용되고 있는 언어이다. (오픈소스!)

 

대부분 Apache서버에 설치하여 사용하는 경우가 많다. WAS는 php-fpm이 사용된다. 확장자는 .php이며 <?php ?> 태그 안에 작성된다.

 

 

 

Python

 

 

파이썬은 서버 스크립트로만 사용되는 것이 아니라 상당히 다양한 용도로 사용되고 있는 스크립트 언어이며, PHP와 같이 오픈소스이다. C언어를 기반으로 만들어진 것이 표준이라고 불린다. 코드 자체가 가독성과 단순성에 기반을 두고 있기 때문에 배우기에 상당히 쉬운 장점이 있다. 이러한 특성은 코드를 간소화시켜서 가독성 측면에서도 좋아진다.

 

파이썬이라는 언어 자체가 가진 엄청난 생산성(개발속도)이 웹에 적용되어 상당히 좋은 시너지를 보여준다.

 

파이썬은 플렛폼에 독립적인 인터프리터 언어이다. 따라서 OS에 구에받지 않고 사용할 수 있다. 또한 라이브러리가 상당히 풍부하게 존재하기 때문에 개발 속도가 상당히 빠르다.

 

최근 해외에서는 PHP와 함께 가장 각광받고 있는 언어 중 하나이다.

 

Django라는 프레임워크가 주축으로 존재하고 있으며, 오픈소스이다. php로 규모가 큰 서비스를 제작하는 것에 한계를 느껴 파이썬을 기반으로 개발을 하게 된 것이 Django이다.

 

 

 

비교표

 

 

  JSP ASP PHP Python
풀네임 Java Server Page Active Server Page Hypertext Preprocessor Python
구현 언어 Java Visual Basic, JB Script C, C++ C
오픈소스 X X O O
벤더 Oracle MS 오픈소스 오픈소스
프레임워크 Spring ASP.NET Laravel, Code Ignitor Django
WAS Tomcat IIS Apache, php-fpm -
장점 객체지향 설계로 큰 프로젝트에서 강점을 보인다. 주축이 되는 강력한 프레임워크가 존재한다. 벤더가 거대 기업이고, 한국에서 굉장히 많이 쓰이고 있다. MS의 지원을 받아 유지보수에 굉장한 강점이 있으며, 윈도우 개발환경에서 원활하게 사용할 수 있다는 장점이 있다. 오픈소스로 비용면에서 이점이 있고, C언어로 작성되어 상당히 빠르다는 장점이 있다. 프레임워크도 타 언어에 비해 적용이 단순하다. 오픈소스로 비용면에서 이점이 있고, 소스코드를 단순하고 간결하게 작성하여 생산성이 높다. Django라는 주력의 프레임워크가 생산성이 상당하다. 해외기업에서는 상당히 많이 사용하는 추세이다.
단점 각종 모듈을 설치해야 해서 가벼운 프로젝트에 어울리지 않고, 프레임워크를 잘 사용하지 않으면 개발이 힘들 수 있다. 또한 2019년 부터 기업사용자는 비용이 발생한다는 공식적인 발표가 있다. 라이센스 비용이 많이 들어간다. 또한 개발환경이 윈도우에 최적화 되어있어서 다른 플렛폼에서의 호환이 좋지 못하다. 주력으로 프레임워크가 확실하게 정착되어 있지 않아서 개발환경을 선정함에 있어서 어려울 수 있고, 객체지향적 설계가 힘들어서 유지보수에 약점이 있다. 파이썬이라는 언어 자체가 느리다. 한국에서는 다른 언어에 비해서 아직 점유율이 낮아서 인프라가 약하다.

 

*이 표의 장단점은 사견이 들어가 있으니 감안하고 보시기 바랍니다.

 

 

 

결론

 

 

서버 사이드 스크립트 언어의 대표적인 종류를 조사해 보았다. 조사를 하면서 느낀 것은 각 언어별로 장단점이 뚜렷하게 나타난다는 것이다. 오픈소스 기반으로 하고싶다면 Python과 PHP를 고려해 볼 것이고, 라이센스 비용을 부담하면서 유지보수에 더 강점을 두고 싶다면 JSP와 ASP로 사용을 하는 것이다. 하지만 이런 목적 말고도 현업에서 많이 사용되는 언어의 추세를 잘 보고 동향을 잘 읽는 것도 개발자의 능력인 것 같다.

 

 

 

참고

 

 

https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B2%84_%EC%82%AC%EC%9D%B4%EB%93%9C_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8_%EC%96%B8%EC%96%B4

https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8_%EC%82%AC%EC%9D%B4%EB%93%9C_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8_%EC%96%B8%EC%96%B4

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%84%9C%EB%B2%84_%ED%8E%98%EC%9D%B4%EC%A7%80

https://namu.wiki/w/JSP

http://steady-snail.tistory.com/19

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함