Blog

웹 서버 개발 플랫폼의 역할과 위치

January 27, 2014

웹 서버 개발 플랫폼의 역할과 위치

w3techs.com은 웹 기술에 대한 조사 결과를 공유하는 사이트입니다. 이곳에서 웹 서버 개발 플랫폼의 시장 위치에 대한 보고서를 읽고 ASP.NET 개발자 입장에서 느낀점을 정리합니다.

저의 웹 개발 환경 경험은 ASP.NET 75%, Java 15%, 기타 10% 정도 될 것 같습니다.

2014년 1월 26일 기준 상위 5개 웹 서버 개발 플랫폼에 대한 차트를 보면 눈에 띄는 3가지가 있습니다.

  1. PHP의 넘사벽 점유율
  2. 그 뒤를 따르는 ASP.NET의 높은 점유율
  3. Java로 개발된 사이트의 높은 트래픽

programming_language

일단 PHP에 대한 얘기는 접겠습니다. 제가 PHP에 대한 어떤 지식도 없거든요. 🙂 Java 식민지 대한민국에 살고있는 다른 많은 프로그래머 분들은 조금 의아하게 생각하실 수도 있겠지만(이름만 대면 다 알만한 요즘 가장 유명한 모 에반젤리스트가 작년 한 국내 개발자 행사에서 ‘.NET을 누가 쓰냐? 이미 망했다.’라는 뉘앙스의 말을 한 적이 있을 정도죠…), 전 이 차트에서 상대적으로 왼쪽 상단에 Java가 위치하고 중간쯤에 ASP.NET이 위치하는 것에 크게 공감합니다. 아마 ASP.NET이 저 위치에 있는 가장 큰 이유는 ASP.NET Web Forms의 높은 생산성 때문이 아닐까 생각합니다.

Web Forms는 엄청난 생산성을 가지고 있습니다. 여기에 이의를 제기하는 사람은 아직까지 본 적이 없습니다. 몇 년 전 Java와 ASP.NET을 모두 사용한 프로젝트를 수행한 적이 있는데 그 당시 Java 개발 경력만 있던 어떤 분이 Visual Studio에서 Web Forms 페이지의 기능을 개발하는 과정을 보고 놀라했던 적이 있습니다. 웹 컨트롤을 디자이너 화면으로 드래그해 적당한 위치에 추가하고 더블 클릭해서 코드를 작성해 기능을 구현하는 모습이 그 분에겐 놀라움의 대상이었죠. 저 역시 전적으로 타의에 의해 웹 개발을 시작했을 때 플랫폼이 Web Forms였던 덕에 쉽게 진입할 수 있었다고 생각합니다.

하지만 Web Forms의 생산성이 항상 좋은 결과만을 가져오지는 않습니다. 너무 쉽기 때문에 사용자(프로그래머)를 안이하게 만들어버리는 측면도 있습니다. 기계적으로 드래그, 더블 클릭, 짧은 코드 작성 프로세스만 반복하면 어느 새 내가 만든 웹 페이지는 느리고 뚱뚱해지기 쉽습니다. 50MB가 넘는 뷰 스테이트를 본적도 있습니다. 또 다른 예로, 요즘의 프로그래밍에 중요한 디자인 패턴 중 하나인 dependency injection을 떠올려보면 Spring 개발자는 개발 과정에서 자연스럽게 경험하는 반면 Web Forms 개발자들은 경험은 커녕 이름도 들어보지 못한 경우가 많습니다. 상대적으로 확장성 및 유지보수성은 떨어지겠죠. 물론 누군가 Spring 개발자중 DI의 개념과 목적을 이해하는 비율이 얼마나 되겠냐고 묻는다면 반론을 제기할 근거를 가지고 있지 않을 뿐더러 굳이 반론하고 싶은 의지도 없습니다.

사실 ASP.NET에는 ASP.NET MVC도 있고 Web Forms를 사용하더라도 충분한 고려가 수반된다면 날씬하고 민첩한 프로그램을 만들 수 있습니다. 즉 ‘ASP.NET으로 웹 사이트를 만들었더니 느리더라’라고 말하는 프로그래머가 있다면 범인은 생각보다 가까운 곳에 있다는 거죠. 그렇지만 여전히 많은 프로그래머들은 ASP.NET을 쉽고 빠르게 웹 사이트를 개발하는 수단 이상으로 생각하지 않습니다. ASP.NET은 쉽지만 느리다는 인식(또는 미신)은 높은 생산성 덕분에(?) 쉽게 사라지지 못할 것 같습니다.

좋은 결과물을 만들지 못하는 ASP.NET 프로그래머들을 비난하려는 의도는 전혀 없습니다. 모든 책임이 그들에게 있는 것도 아니며 저도 그들 중 하나니까요. 또 절대 Java를 싫어하지도 않아요! Java에 람다가 추가된 소식에 기뻐했던 사람 중 한 명입니다. 단지 ASP.NET이 Java에 비해 점유율이 높은 반면 높은 트래픽을 감당하는 역할은 대부분 Java가 맡고있는 것에 대한 단상입니다.

참고로 w3techs.com에서 조사된 2014년 1월 26일자 상위 5개 웹 서버 프로그래밍 언어(플랫폼) 점유율입니다.

조사된 점유율 전체 합이 100%가 조금 넘네요. 사소한 오류라고 생각하고 있습니다.

  점유율 지난 달 대비 변화
1. PHP 81.7% +0.3%
2. ASP.NET 18.0% -0.4%
3. Java 2.7%  
4. ColdFusion 0.8%  
5. Perl 0.6%