최신 닷넷과 자바 성능 비교
닷넷과 자바. 이 두 플랫폼은 당분간 우리 개발자 곁을 떠나기 쉽지 않을 것 같다. 고인 물인 금방 썩듯이 주변에서 끊임없이 자극을 주는 경쟁자가 있을 때 상호간 건전한 발전을 기대할 수 있다. 개발 플랫폼도 마찬가지다. 닷넷과 자바는 늘 서로의 장점을 수용하여 (즉, 끊임없이 베꼐가며) 개발자의 요구사항, 시장의 기대에 부응하는 방향으로 발전해 가고 있다. 하여 많은 영역에서 닷넷과 자바는 경쟁의 대상으로, 비교의 대상으로 여겨지며, 이것이 고객의 입장에서도 자신이 선정한 플랫폼이 다른 경쟁 상대에 비해 가지는 상대적인 우수함에 만족하며 때로는 안도해하는 것이다.
이번 글에서는 지난 3월 마이크로소프트 MSDN 싸이트에 공개된 “Bendhmarking IBM WebSphere 7 on IBM Power 6 and AIX vs. Microsoft .NET on Hewlett Packard BladeSystem and Wndows Server 2008”이라는 벤치마크 리포트를 소개하고자 한다.
닷넷과 자바에 대한 다양한 각도의 비교는 예전부터 있어 왔다. EJB가 처음 세상에 나왔을때 가장 먼저 한 것중의 하나가 바로 Microsoft MTS와의 비교를 통해 EJB가 지원하는 각종 declarative한 시스템 서비스들이 어떻게 MTS와 유사한지, 트랜잭션의 옵션이나 Isolation level이 MTS와 같은 것은 무엇이고 다른 것이 무엇인지를 통해 시장에 접근하기도 했었다. 또한 현재에도 왕성하게 활동하고 있는 Middleware company (https://theserverside.com / https://theserverside.net)는 웹 서비스 관련하여 자바가 웹 서비스를 지원하기 시작한 초기에 시차를 두고 두번에 걸쳐 자바와 닷넷의 표준 웹 서비스 성능 및 확장성에 대해 벤치마크를 진행하여 자바 개발자들의 마음을 아프게 하기도 했다. (그 당시 아마 현재에도 middleware company는 자바 친화적인 기업이다. 벤치마크 결과는 그 당시 가장 빠른 WAS에서의 성능도 닷넷에 비해 최고 열배, 두 번째에는 두 세배 느린 성능을 보여줬었다.) 본 리포트는 IBM이 만든 Trader라는 샘플 애플리케이션의 닷넷 버전을 만들어 IBM WebSphere 기반의 Java EE 5와 Microsoft .NET 3.5에서 세가지 측면에서 성능을 비교하였다. 즉, 일반 웹 애플리케이션 구현시 성능 비교 (논란의 여지를 없애기 위해 EJB를 사용치 않고, JSP/Servlet/JDBC direct call 이용), 미들티어 웹 서비스 성능 비교, 그리고 마지막은 썬마이크로시스템이 고안한 웹 서비스 스택(엔진자체)의 성능(우수성) 검증 툴인 WSTest를 통해 닷넷과 자바(WebSphere7) 웹 서비스 엔진의 성능 비교를 진행했다.
결론적으로 웹 애플리케이션 구축할 경우 윈도우 기반의 닷넷 시스템이 IBM Power 570 / AIX 5.3 / WebSphere7 기반의 자바 시스템에 비해 가격은 1/5 수준으로 성능은 57% 더 나은 결과를 보여주었고, WebSphere의 경우에도 AIX 에서보다 윈도우 서버에서 가격은 1/3 수준으로 성능은 37% 더 나은 시스템을 제공할 수 있음을 보여준다.
웹 서비스를 구축할 경우에도, Windows Server 2008 기반의 닷넷 시스템이 IBM Power 570 기반의 WebSphere 7 기반 Java EE 시스템에 비해서 가격은 1/5 수준으로 성능은 111% 더 나은 웹 서비스를 구축할 수 있음을 알 수 있다. 같은 WebSphere 7 기반의 자바 웹 서비스 시스템 구축의 경우에도 Windows Server 2008 / HP BladeSystem C7000 위에서 구동하는 것이 IBM AIX 5.3 / IBM Power 570 위에서 구동하는 것에 비해가격은 1/3 수준으로 성능은 37% 더 나은 결과를 제공할 수 있음을 알 수 있다.
벤치마크 자체에 대한 좀 더 상세한 조건 및 벤치마크 방법, 분석 결과 등은 MSDN 싸이트에서 결과 리포트에서 직접 확인하는 것이 좋을 듯 하다. 여기에는 이전 비교시 작성한 각종 기술문서들이 있어 단지 이 벤치마크 만이 아닌 일반적인 사항에서 사용할수 있는 기법들도 찾을 수 있다. 또한 다른 개발자들이 이 리포트에 대해 어떻게 생각하고 있는지 포럼에서 돌러볼 수도 있다.
원문보다 느낌은 덜하지만 한글화되고 요약된 것을 원한다면 이 블로그 포스트를 참고하시길..