2012.10.19

자바 · 닷넷 대신 파이썬 ··· 다이내믹 언어 전성시대

Paul Rubens | CIO
자바(Java)와 닷넷(.NET)은 기업 애플리케이션 개발의 핵심이지만 최근 들어 파이썬(Python)과 PHP 등 다이내믹 언어(Dynamic Language)를 사용하는 기업이 늘어나고 있는 것도 뚜렷한 사실이다. 실제로 취업검색 사이트 인디드(Indeed)에 따르면 자바와 닷넷 관련 구인 광고는 일정한 반면 파이썬과 PHP 관련 구인광고가 점차 증가하고 있다.
 
그렇다면 기업들이 다이내믹 언어 사용을 늘리는 이유는 무엇이고 이것이 과연 권장할만한 것일까. 확장성, 성능, 개발자 생산성, 보안 등의 측면에서 파이썬을 자바, 닷넷과 비교해 보자.
 
생산성 : 파이썬 코드는 깔끔하다. 그래서?
일부에서는 다이내믹 언어를 사용할 경우 동일한 코딩 작업을 더욱 신속하게 처리할 수 있어 생산성이 향상된다고 주장한다. 소프트웨어 업체 액티브스테이트(ActiveState)의 CTO 제프 홉스는 "파이썬 등 다이내믹 언어를 사용하면 개발 속도를 10배까지 끌어올릴 수 있다고 하는데 어느 정도 일리가 있다고 생각한다"고 말했다. 그는  "많은 기업들이 프로토타입을 개발하는데 다이내믹 언어를 사용한다"며 "만약 이 작업을 10배 빠르게 진행할 수 있다면 자바나 닷넷으로 프로토타입 1개를 개발할 때 10개를 개발할 수 있다는 의미이기 때문"이라고 말했다.
 
오픈소스 분석업체 레드몽크(RedMonk)의 애널리스트 제임스 거버너는 많은 기업들이 단지 쉽다는 이유로 파이썬을 사용한다고 분석한다. 그는 "다이내믹 언어는 생산성 측면에서 분명 장점이 있다"며 "반복적인 애플리케이션 개발작업을 신속하게 처리하고 뛰어난 사용자인터페이스(UI)를 만들 수 있다"라고 말했다.
 
반면 시장조사업체 포레스터의 애널리스트 마이크 걸티에리는 이것이 일종의 추측에 불과하다고 지적한다. 소위 말하는 다이내믹 언어의 장점이 단순한 소문에 불과하다는 것이다. 그는 "다른 언어에서 35줄짜리 코드를 파이썬에서 5줄 만으로도 충분하다고 말하지만 그건 순전히 거짓말"이라며 "몇 줄의 코드를 작성해야 하는지가 중요한 것이 아니라 작업을 수행하도록 코드를 어떻게 설계하느냐가 중요한 것"이라고 말했다.

그는 "파이썬 또는 PHP가 이런 면에서 성공적인 언어는 아니라고 생각한다"라고 덧붙였다. 또한 그는 "개발자들의 생산성을 높이기 위해 파이썬을 도입하려는 기업도 있을 텐데 실제 기업들이 사용할 수 있는 파이썬 라이브러리가 많지 않다는 것도 고려해야 한다"라고 말했다.
 
사실 라이브러리 부분은 논란의 여지가 있다. 웹 애플리케이션 개발업체 뉴 릴릭(New Relic)의 수석 소프트웨어 엔지니어 그레이엄 덤플레톤은 걸티에리의 의견에 동의하지 않는다. 그는 "자바와 닷넷용 모듈 라이브러리가 더 많고 이들 모듈이 모두 파이썬으로 이식되지 않는 것도 사실"이라며 "그러나 적당한 해결 방법을 찾게 될 것"이라고 말했다. 그는 "다른 언어에서 파이썬으로 기존의 라이브러리를 가져와 사용하는 것도 한 방법"이라며 "파이썬은 자바용 파이썬인 자이톤(Jython), 닷넷용 파이썬인 아이언파이썬(IronPython) 등을 통해 기존 개발환경에 통합할 수 있다"라고 말했다.
 
성능 : 기업들은 점차 파이썬을 신뢰하고 있다
거버너는 다이내믹 언어가 인기를 얻고 있지만 이미 기업 시장에서 자리를 잡은 다른 개발언어들을 대체하지 못하고 있고 오히려 그 반대 현상이 일어나고 있다고 지적한다. 많은 대형 웹 비즈니스 기업들이 다이내믹 언어에서 자바로 전향하고 있다는 것이다.
 
그는 "자바는 지금 재기를 꿈꾸고 있다"며 "성장하는 웹 기업들이 대부분 자바를 중점적으로 사용하고 있다"라고 말했다. 예를 들어 트위터는 본래 루비 온 레일즈(Ruby on Rails)로 개발됐지만 확장성 문제로 현재 자바 플랫폼 기반으로 전면 재개발되고 있다.
 
다이내믹 언어에 관한 비판은 주로 성능 부분으로 모아진다. 다이내믹 언어는 자바 또는 C++ 처럼 프로세서에 근접해 구동하지 않기 때문에 적절한 수준의 속도를 제공할 수 없다는 것이다. 그러나 과거에는 이런 지적이 분명한 사실이었지만 현재의 멀티코어 프로세서는 이전보다 훨씬 강력해졌으며 그 결과 다이내믹 언어의 성능은 구글, 유튜브, 메릴 린치, 시스코, VM웨어, 필립스 등이 사용하기에 충분한 것으로 증명됐다.
 
(물론 속도가 중요한 고성능 트레이딩 플랫폼용 애플리케이션이라면 파이썬보다는 C나 자바가 더 적절한 선택이다. 그러나 이런 애플리케이션은 예외적인 경우가 많다.) 
 
오픈 소스 : 지원과 툴이 무료지만 비용을 지불한 만큼의 결과를 얻을 수 있다
IT 부서의 예산이 넉넉하지 못하고 적은 예산으로 더 좋은 결과를 뽑아내야 할 때 많은 기업들이 오픈소스의 매력에 눈을 돌린다. 거버너는 "예산이 부족한 기업들은 비용 절감이 중요할 수 밖에 없다"며 "어떤 경우든 젊은 개발자들은 자신들에게 익숙한 오픈소스 툴을 사용하는 것을 선호한다"라고 말했다.
 
오픈소스 프로그래밍 언어를 사용하면 원하는 툴들을 무료로 사용할 수 있다. 또한 커뮤니티가 아닌 기업이 지원하는 상표권이 등록된 프로그래밍 언어의 경우 기술 지원과 포괄적인 일련의 툴을 더욱 쉽게 구할 수 있다. (물론 이 가운데 일부는 유료로 제공된다)
 
보안 : 파이썬 등 다이내믹 언어가 일반적으로 더 안전하다
보안 측면은 어떨까. 거버너는 "보안 문제 때문에 다이내믹 언어를 선택 또는 거부해야 할 이유가 전혀 없다"며 "오히려 누군가 닷넷 또는 자바가 다른 언어보다 더욱 안전하다고 말한다면 그것이 더 당황스러운 일일 것"이라고 말했다.
 
지난 수 년 동안 자바에서만 수백 개의 취약성이 발견됐고 여기에는 지난 9월 10억명 이상의 자바 SE 5, 6, 7 사용자들이 영향을 받은 치명적인 보안 취약성도 포함돼 있다. 반면에 파이썬에서 발견된 보안 취약성은 소수에 불과하다. 
 
브루스 슈나이어 등의 보안 전문가들은 모든 소프트웨어를 단일 개발 언어를 이용해 개발하는 소프트웨어 단일화가 오히려 해커로 인한 피해를 더 키울 수 있다고 지적한다. 일단 한 개발 언어에서 취약성이 발견되면 이것은 기업 애플리케이션 전반에 대해 똑같이 적용되기 때문에 악용될 가능성이 크다는 것이다.
 
개발자들을 사로잡은 파이썬
지금까지 성능과 생산성, 보안 등의 측면에서 다양한 언어들을 비교해 봤다. 그러나 이것만을 기준으로 해서 다이내믹 언어와 자바, 닷넷의 장점을 비교하는 것은 너무 이론적인 접근이다. 오히려 일반적인 오픈소스 소프트웨어처럼 파이썬과 비슷한 종류의 언어가 적용된 기업사례를 비교하는 것이 더 합리적일 수 있다.
 
거버너는 "기업 CIO에게 현재 어떤 오픈소스 소프트웨어를 사용하고 있는지 묻는다면 전혀 사용하고 있지 않다는 대답을 많이 들을 수 있을 것"이라며 "그러나 데이터 센터를 살펴보면 모든 데이터 센터의 툴이 리눅스이고 웹 서버는 아파치를 사용한다"라고 말했다. 즉 대부분의 경우 CIO가 아니라 개발자들이 의사에 따라 사용하는 언어와 툴이 결정된다는 것이다.
 
덤플레톤은 이같은 이유 때문에 파이썬과 기타 다이내믹 언어가 기업의 소프트웨어 환경에 깊이 침투할 가능성이 높다고 전망한다. 그는 "개발자들이 기업 환경에서 파이썬을 사용하는 것은 작업을 더 빨리 끝낼 수 있기 때문"이라며 "파이썬은 이미 기업 내에서 자리를 잡고 있고 개발자들이 이를 선호하면서 닷넷 또는 자바를 대체하기 시작했다"라고 말했다. editor@idg.co.kr


2012.10.19

자바 · 닷넷 대신 파이썬 ··· 다이내믹 언어 전성시대

Paul Rubens | CIO
자바(Java)와 닷넷(.NET)은 기업 애플리케이션 개발의 핵심이지만 최근 들어 파이썬(Python)과 PHP 등 다이내믹 언어(Dynamic Language)를 사용하는 기업이 늘어나고 있는 것도 뚜렷한 사실이다. 실제로 취업검색 사이트 인디드(Indeed)에 따르면 자바와 닷넷 관련 구인 광고는 일정한 반면 파이썬과 PHP 관련 구인광고가 점차 증가하고 있다.
 
그렇다면 기업들이 다이내믹 언어 사용을 늘리는 이유는 무엇이고 이것이 과연 권장할만한 것일까. 확장성, 성능, 개발자 생산성, 보안 등의 측면에서 파이썬을 자바, 닷넷과 비교해 보자.
 
생산성 : 파이썬 코드는 깔끔하다. 그래서?
일부에서는 다이내믹 언어를 사용할 경우 동일한 코딩 작업을 더욱 신속하게 처리할 수 있어 생산성이 향상된다고 주장한다. 소프트웨어 업체 액티브스테이트(ActiveState)의 CTO 제프 홉스는 "파이썬 등 다이내믹 언어를 사용하면 개발 속도를 10배까지 끌어올릴 수 있다고 하는데 어느 정도 일리가 있다고 생각한다"고 말했다. 그는  "많은 기업들이 프로토타입을 개발하는데 다이내믹 언어를 사용한다"며 "만약 이 작업을 10배 빠르게 진행할 수 있다면 자바나 닷넷으로 프로토타입 1개를 개발할 때 10개를 개발할 수 있다는 의미이기 때문"이라고 말했다.
 
오픈소스 분석업체 레드몽크(RedMonk)의 애널리스트 제임스 거버너는 많은 기업들이 단지 쉽다는 이유로 파이썬을 사용한다고 분석한다. 그는 "다이내믹 언어는 생산성 측면에서 분명 장점이 있다"며 "반복적인 애플리케이션 개발작업을 신속하게 처리하고 뛰어난 사용자인터페이스(UI)를 만들 수 있다"라고 말했다.
 
반면 시장조사업체 포레스터의 애널리스트 마이크 걸티에리는 이것이 일종의 추측에 불과하다고 지적한다. 소위 말하는 다이내믹 언어의 장점이 단순한 소문에 불과하다는 것이다. 그는 "다른 언어에서 35줄짜리 코드를 파이썬에서 5줄 만으로도 충분하다고 말하지만 그건 순전히 거짓말"이라며 "몇 줄의 코드를 작성해야 하는지가 중요한 것이 아니라 작업을 수행하도록 코드를 어떻게 설계하느냐가 중요한 것"이라고 말했다.

그는 "파이썬 또는 PHP가 이런 면에서 성공적인 언어는 아니라고 생각한다"라고 덧붙였다. 또한 그는 "개발자들의 생산성을 높이기 위해 파이썬을 도입하려는 기업도 있을 텐데 실제 기업들이 사용할 수 있는 파이썬 라이브러리가 많지 않다는 것도 고려해야 한다"라고 말했다.
 
사실 라이브러리 부분은 논란의 여지가 있다. 웹 애플리케이션 개발업체 뉴 릴릭(New Relic)의 수석 소프트웨어 엔지니어 그레이엄 덤플레톤은 걸티에리의 의견에 동의하지 않는다. 그는 "자바와 닷넷용 모듈 라이브러리가 더 많고 이들 모듈이 모두 파이썬으로 이식되지 않는 것도 사실"이라며 "그러나 적당한 해결 방법을 찾게 될 것"이라고 말했다. 그는 "다른 언어에서 파이썬으로 기존의 라이브러리를 가져와 사용하는 것도 한 방법"이라며 "파이썬은 자바용 파이썬인 자이톤(Jython), 닷넷용 파이썬인 아이언파이썬(IronPython) 등을 통해 기존 개발환경에 통합할 수 있다"라고 말했다.
 
성능 : 기업들은 점차 파이썬을 신뢰하고 있다
거버너는 다이내믹 언어가 인기를 얻고 있지만 이미 기업 시장에서 자리를 잡은 다른 개발언어들을 대체하지 못하고 있고 오히려 그 반대 현상이 일어나고 있다고 지적한다. 많은 대형 웹 비즈니스 기업들이 다이내믹 언어에서 자바로 전향하고 있다는 것이다.
 
그는 "자바는 지금 재기를 꿈꾸고 있다"며 "성장하는 웹 기업들이 대부분 자바를 중점적으로 사용하고 있다"라고 말했다. 예를 들어 트위터는 본래 루비 온 레일즈(Ruby on Rails)로 개발됐지만 확장성 문제로 현재 자바 플랫폼 기반으로 전면 재개발되고 있다.
 
다이내믹 언어에 관한 비판은 주로 성능 부분으로 모아진다. 다이내믹 언어는 자바 또는 C++ 처럼 프로세서에 근접해 구동하지 않기 때문에 적절한 수준의 속도를 제공할 수 없다는 것이다. 그러나 과거에는 이런 지적이 분명한 사실이었지만 현재의 멀티코어 프로세서는 이전보다 훨씬 강력해졌으며 그 결과 다이내믹 언어의 성능은 구글, 유튜브, 메릴 린치, 시스코, VM웨어, 필립스 등이 사용하기에 충분한 것으로 증명됐다.
 
(물론 속도가 중요한 고성능 트레이딩 플랫폼용 애플리케이션이라면 파이썬보다는 C나 자바가 더 적절한 선택이다. 그러나 이런 애플리케이션은 예외적인 경우가 많다.) 
 
오픈 소스 : 지원과 툴이 무료지만 비용을 지불한 만큼의 결과를 얻을 수 있다
IT 부서의 예산이 넉넉하지 못하고 적은 예산으로 더 좋은 결과를 뽑아내야 할 때 많은 기업들이 오픈소스의 매력에 눈을 돌린다. 거버너는 "예산이 부족한 기업들은 비용 절감이 중요할 수 밖에 없다"며 "어떤 경우든 젊은 개발자들은 자신들에게 익숙한 오픈소스 툴을 사용하는 것을 선호한다"라고 말했다.
 
오픈소스 프로그래밍 언어를 사용하면 원하는 툴들을 무료로 사용할 수 있다. 또한 커뮤니티가 아닌 기업이 지원하는 상표권이 등록된 프로그래밍 언어의 경우 기술 지원과 포괄적인 일련의 툴을 더욱 쉽게 구할 수 있다. (물론 이 가운데 일부는 유료로 제공된다)
 
보안 : 파이썬 등 다이내믹 언어가 일반적으로 더 안전하다
보안 측면은 어떨까. 거버너는 "보안 문제 때문에 다이내믹 언어를 선택 또는 거부해야 할 이유가 전혀 없다"며 "오히려 누군가 닷넷 또는 자바가 다른 언어보다 더욱 안전하다고 말한다면 그것이 더 당황스러운 일일 것"이라고 말했다.
 
지난 수 년 동안 자바에서만 수백 개의 취약성이 발견됐고 여기에는 지난 9월 10억명 이상의 자바 SE 5, 6, 7 사용자들이 영향을 받은 치명적인 보안 취약성도 포함돼 있다. 반면에 파이썬에서 발견된 보안 취약성은 소수에 불과하다. 
 
브루스 슈나이어 등의 보안 전문가들은 모든 소프트웨어를 단일 개발 언어를 이용해 개발하는 소프트웨어 단일화가 오히려 해커로 인한 피해를 더 키울 수 있다고 지적한다. 일단 한 개발 언어에서 취약성이 발견되면 이것은 기업 애플리케이션 전반에 대해 똑같이 적용되기 때문에 악용될 가능성이 크다는 것이다.
 
개발자들을 사로잡은 파이썬
지금까지 성능과 생산성, 보안 등의 측면에서 다양한 언어들을 비교해 봤다. 그러나 이것만을 기준으로 해서 다이내믹 언어와 자바, 닷넷의 장점을 비교하는 것은 너무 이론적인 접근이다. 오히려 일반적인 오픈소스 소프트웨어처럼 파이썬과 비슷한 종류의 언어가 적용된 기업사례를 비교하는 것이 더 합리적일 수 있다.
 
거버너는 "기업 CIO에게 현재 어떤 오픈소스 소프트웨어를 사용하고 있는지 묻는다면 전혀 사용하고 있지 않다는 대답을 많이 들을 수 있을 것"이라며 "그러나 데이터 센터를 살펴보면 모든 데이터 센터의 툴이 리눅스이고 웹 서버는 아파치를 사용한다"라고 말했다. 즉 대부분의 경우 CIO가 아니라 개발자들이 의사에 따라 사용하는 언어와 툴이 결정된다는 것이다.
 
덤플레톤은 이같은 이유 때문에 파이썬과 기타 다이내믹 언어가 기업의 소프트웨어 환경에 깊이 침투할 가능성이 높다고 전망한다. 그는 "개발자들이 기업 환경에서 파이썬을 사용하는 것은 작업을 더 빨리 끝낼 수 있기 때문"이라며 "파이썬은 이미 기업 내에서 자리를 잡고 있고 개발자들이 이를 선호하면서 닷넷 또는 자바를 대체하기 시작했다"라고 말했다. editor@idg.co.kr


X