본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

'하둡, 피그, 톰캣···' 큰 족적 남긴 아파치 프로젝트 15선

OSS 게시글 작성 시각 2013-03-12 15:20:28 게시글 조회수 4590

2013년 03월 11일 (월)

ⓒ CIO Korea, Paul Krill | InfoWorld


아파치 소프트웨어 재단(Apache Software Foundation)은 1999년 설립 이후 다수의 중요한 오픈소스 프로젝트를 주도해왔다. 대표적인 성공작으로는 현재 빅 데이터 분야에서 활용되고 있는 분산형 컴퓨팅 시스템인 하둡(Hadoop), 톰캣(Tomcat), 제로니모(Geronimo)를 들 수 있다.

아파치는 종합적인 통계를 작성해 제공하고 있지 않다. 그러나 아파치 HTTP 서버 같은 경우 약 5억 개 웹 사이트의 기반이 되고 있고, 최근 아파치가 수중에 넣은 오픈오피스(OpenOffice)의 다운로드 횟수는 수백 만에 달하고 있다.

다음은 오픈소스 운동뿐만 아니라 기술 전반에 중요한 영향을 미쳤던 15가지 아파치 프로젝트들이다.



카산드라(Cassandra)
카산드라 프로젝트의 조나단 엘리스 부사장에 따르면, 카산드라 데이터베이스는 빅 데이터 분야의 '레코드 확장형 시스템(Scalable system of record)'이다. 아파치는 페이스북으로부터 이 프로젝트를 받았는데, 페이스북은 2008년 카산드라를 오픈소스했던 바 있다.


하둡이 데이터 분석을 한다면, 카산드라는 확장이 필요한 웹 기반 애플리케이션을 위한 데이터 스토어를 제공한다. 예를 들어, 넷플릭스(Netflix)가 많은 카산드라 클러스터를 보유하고 있다.


카산드라는 상업용 하드웨어나 클라우드 기반에 폴트 톨러런스(고장방지 기능)를 제공한다. 또 여러 데이터센터 전반에 걸친 이중화 기능을 제공한다. 7월 공개될 카산드라 2.0에는 리드와 업데이트를 통합하고, 각 테이블 업데이트에 따른 행동을 규정해 지원을 개시하고, 요청 지연시간을 줄여주는 CAS(Compare-and-set) 기능이 들어갈 예정이다.


코르도바(Cordova)
모바일 컴퓨팅 분야에 아파치의 발자취를 남기는데 기여한 코르도바는, 개발자들이 자바스크립트를 이용해 카메라 같은 원천 기능을 이용할 수 있도록 해주는 애플리케이션용 API이다. 'jQuery'나 'Sencha Touch' 같은 UI 프레임워크에서 사용할 수 있으며, iOS, 안드로이드, 블랙베리, 윈도우 폰에 호환이 된다.


어도비의 제품 매니저로 아파치 코르도바 부사장을 맡고 있는 브라이언 레룩스는, 니토비(Nitobi)가 폰갭(PhoneGap)이라는 이름으로 추진했던 프로젝트에 코르도바가 기원을 두고 있다고 설명했다. 니토비는 나중에 어도비가 인수된 기업이다.


레룩스는 "아파치 코르도바는 우리가 HTML, CSS, 자바스크립트에서 앱을 개발할 때 사용하는 오픈소스 프로젝트다. 폰갭은 유통 개념이다"라고 설명했다. 한편 아파치는 소프트웨어 사용에 있어 모듈식 방법을 채택한 코르도바 3.0을 오는 7월 발표할 계획이다.


카우치DB(CouchDB)
이 데이터베이스는 문서에 JSON, 맵리듀스(MapReduce) 쿼리에 자바스크립트, API에 HTTP를 사용한다. 이 프로젝트에 오랜 기간 기여해온 잔 레하르츠는 카우치DB의 핵심 특징으로 복제(이중화) 메카니즘을 언급했다.


그는 "카우치DB의 인스턴스를 다른 것과 동기화 할 수 있다. 데이터의 각 사본을 독립적으로 실행시킬 수 있고, 변경 사항을 다른 그룹에 다시 동기화시킬 수 있다. 또 자연적으로 발생하는 충돌은 프로그램으로 처리할 수 있다"라고 설명했다.


카우치DB 이중화 기능은 전세계에 데이터를 분산해, 사용자들이 인접한 데이터를 사용하도록 하는데 활용될 수 있다. 레하르츠는 현재 카우치DB의 폴트톨롤런트 클러스터 버전인 빅카우치(BigCouch)와의 통합을 계획하고 있다고 전했다. 또 더 융통성 있게 서버에서 스크립팅을 할 수 있도록 자바스크립트 엔진을 V8과 Node.JS로 교체할 계획이라고 설명했다.


플렉스(Flex)
어도비가 아차피에 기증한 플렉스는 인터넷 플러그인 기술을 활용하는 애플리케이션 프레임워크이다. 개발자들은 iOS, 안드로이드, 블랙베리 태블릿 OS용 애플리케이션은 물론, 데스크톱과 브라우저 기반 애플리케이션을 구축할 수 있다. 아파치의 알렉스 하루이 부사장은 HTML5를 지원할 수 있도록 플렉스 기능을 확장하고 있다고 설명했다. 그러나 HTML5와 관련해 개선을 했을 경우 다른 이름을 붙일 수 있다고 덧붙였다.


하루이는 플렉스의 HTML5 지원과 관련, "가능한 많은 장소에서 실행시키기를 원하고 있다"라고 말했다. 그러나 곧 출시될 플렉스 4.10의 소폭 개선에 그칠 전망이다.


한편 하루이는 아파치가 플렉스를 보유함으로써 플렉스 기술을 갖고 있는 사람들이 기술 발전에 공헌할 수 있다고 덧붙였다.


제로니모(Geronimo)
이 서버 런타임은 톰캣, 마이페이스(MyFaces), 오픈JPA(OpenJPA) 같은 오픈소스 프로젝트를 통합해 자바/OSGi 서버 런타임을 구현한다. 이 가운데 자바 EE6 애플리케이션 서버 런타임이 가장 많이 사용되고 있다.


제로니모 프로그램 관리위원회의 케반 밀러 대표는 "아파치 제로니모는 모듈식으로 작성가능한 오픈소스 서버 런타임이다. 향후 자바 EE7 버전을 출시할 계획이다. 그러나 현재까지는 구체적인 논의가 없는 상태다. 어쨌든 자바 EE7이 출시되기 전 사양에 더 큰 발전이 있을 전망이다"라고 설명했다.


제로니모는 2003년 아파치 인큐베이터(Apache Incubator)에서 시작됐으며, 다음해 톱 레벨 프로젝트(Top Level Project)로 승격됐다.


하둡(Hadoop)
최근 가장 큰 관심을 받고 있는 프로젝트다. 빅 데이터 기술과 직접 관련이 있기 때문이다. 하둡은 분산형 컴퓨팅용 운영 시스템을 제공한다.


수년 간 하둡 프로젝트에 크게 기여한 더그 커팅은 "단 한 대가 아닌 수만 대의 컴퓨터에서 작업을 하기 원할 때 필요한 시스템이다"고 설명했다.


하둡의 발단은 2006년 너치 웹(Nutch Web) 소프트웨어 프로젝트다. 커팅이 근무했던 클라우데라(Cloudera), 호튼웍스(HortonWorks) 등이 하둡 관련 사업을 하고 있다. 향후 보안과 확장성이 크게 개선될 것으로 기대되고 있다.


하모니(Harmony)
이 모듈식 자바 런타임은 폐기 이후 아파치에서 가장 논란이 많았던 프로젝트 가운데 하나다. 아파치는 지금은 오라클로 넘어간 썬과 분쟁을 벌였었다.


아파치 참여자 중 한 명인 짐 자길스키는 하모니에 대해"기본적으로 무료로 사용할 수 있는 오픈소스 자바 런타임 환경을 구축하는데 목표를 두고 있었다. 써과 함께 프로젝트가 폐기됐을 때, 오라클은 약속과 보증, 계약에도 불구하고 하모니의 자바 호환 인증에 필요한 TCK(Technology Compatibility Kits)를 아파치에 제공하지 않았다"라고 언급했다.


썬은 하모니를 모바일 플랫폼에 사용할 수 없도록 제한했다. 자바 ME 판매에 영향을 미칠 수 있기 때문이라는 것이 썬의 주장이었다. 그러나 하모니는 오라클이 'OpenJDK'를 용인하도록 만들었고, 구글 안드이드로의 핵심 구성요소가 되었다.


HTTP 서버
'httpd,'라고도 불리는 HTTP 서버 프로젝트다. 1995년부터 프로젝트에 참가한 자길스키는 "여러 점에서, 아파치 httpd는 지금도 아파치 소프트웨어 재단의 주춧돌 역할을 하고 있다. 아파치 httpd가 웹의 유용성, 보편성을 확대했다고 말해도 과장은 아니다. 웹은 무료인 오픈소스와 호환성을 바탕으로 보편화되고 확산됐다"라고 설명했다.


가장 최근 버전인 httpd 2.4.4는 향상된 기능과 클라우드 환경에 적합한 기능을 제공하고 있다. 자길스키는 "역동적인 역프록시 설정 재설정, 메모리를 절약하는 요청 처리, 비동기 I/O 지원, 인프로세스 및 온더플라이 콘텐트 처리를 위한 새 모듈 지원을 예로 들 수 있다"라고 설명했다.


루씬(Lucene)
루씬는 자바 기반의 텍스트 엔진 검색 라이브러리를 제공한다. 2006년부터 루시네 개발에 기여한 사이몬 윌나우르는 "앱에 검색 기능을 추가할 필요가 있는 사람들이 루씬을 이용한다"라고 말했다. 루시네는 많은 기업들이 검색 관련 연구를 하고 있던 1997년 시작됐으며, 트위터에서 사용되고 있다.


지난 해 10월 데이터 구조 인코딩 방법을 결정하는 독자 코드를 재저작 및 지원하는 루씬 4,0이 발표됐다. 윌나우르에 따르면, 이를 통해 맞춤화가 가능해졌다. 1월에는 루씬 4.1이 공개됐다. 디스크 공간을 절약하고 성능을 개선한 것이 특징이다. 또 몇 달 내에 검색 문서의 독(doc) 값 리펙토링 기능을 갖춘 4.2버전이 공개될 예정이다.


메이븐(Maven)
빌드, 리포팅, 문서화 관리에 사용되는 소프트웨어 프로젝트 관리 및 컴프리헨션(Comprehension) 툴이다. 자바 개발에 중시된다.


10년 간 메이븐 개발에 참가했으며, 디봅스(DevOps) 자동화 벤더로 메이븐을 지원하는 마에스토로디브(Maestrodev)의 CTO 브렛 포터는 "메이븐의 가장 큰 장점은 프로젝트 협업을 앞당긴다는 것"이라고 소개했다.


자바 프로젝트의 종속 관리(Dependency Management) 또한 메이븐에 중요하다. 이는 여러 다른 소프트웨어 프로젝트를 연결하는 것이다. 또 젠킨스(Jenkins) 소프트웨어 빌드 시스템 같은 툴과 통합이 가능하다. 메이븐은 향우 플러그인과 로그인 기능을 강화할 계획이다.


오픈오피스(OpenOffice)
오라클이 2011년 아파치에 이관한 오픈오피스 애플리케이션은 썬 마이크로시스템의 프로젝트였다. 오라클에서는 어려움이 있었다. OpenOffice.org 커뮤니티 멤버들과 충돌이 있었기 때문이다.


오픈오피스는 워드 프로세서, 스프레드시트, 프레젠테이션 그래픽스, 드로잉, 이퀘이션 에디터, 데이터 베이스의 6개 개인용 생산성 애플리케이션으로 구성되어 있다. 아파치는 2012년 벡터 그래픽을 추가하고, 지원 언어를 늘리고, 성능을 개선하고, 버그를 고쳐 2개 버전을 출시했다.


아파치의 안드레아 페세세티 오픈오피스 부사장은 오는 4월 4.0 버전 출시가 계획되어 있다고 말했다. 이 버전에서는 GUI를 현대화하고, 마이크로소프트 워드 파일 호환성을 강화하는 한편, 장애인의 이용성를 높이고, 성능을 개선할 계획이다. 한편 오픈오피스 3.4 버전은 2012년 5월 이후 3,500만 회의 다운로드 횟수를 기록했다.


스트러츠(Struts)
스트러츠는 자바 웹(Java Web) 앱을 위한 프레임워크이다. 최초 아파치 자카르타(Apache Jakarta)의 하위프로젝트로 시작됐으며 2005년 분리됐다.


아파치의 르네 질렌 스트러츠 부사장은 "아파치 스트러처는 이른바 액션 기반 자바 웹 애플리케이션을 구축하는데 필요한 프레임워크 솔루션을 제공한다. 이는 JSF 및 아파치 위켓(Apache Wicket) 같은 컴포넌트 기반 솔루션과는 차이가 있다"라고 말했다.


그는 이어 "버전 1의 경우 자바서버 페이스(JavaServer Faces)가 부상하기 이전에 자바 기반 웹 애플리케이션의 표준 역할을 했다. 그리고 스트러츠 버전 2는 한 줄 코드 등 버전 1에서 소개된 개념에 기반을 두고 있지만 훨씬 가볍고 디커플링 수준이 높은 액션 기반 웹 프레임워크이다"라고 전했다. 그에 따르면 많은 부분이 개선된 스트러츠 3가 곧 발표될 예정이다.


피그(Pig)
피그는 대형 데이터 세트를 분석하는데 사용된다. 데이터 분석 알고리즘을 위한 고수준 언어, 병렬화가 특징이다. 개발자들은 하둡 사용시, 자바 코드 대신 피그를 사용할 수 있다.


프로젝트에 기여한 다니엘 대는 "피그는 하둡 위의 추상 계층이다"라고 설명했다. '피그'란 이름처럼 모든 데이터를 '현명하게 소화하는' 능력을 갖고 있다. 대는 "모든 종류의 데이터를 소화한다"라고 말했다.


사용자는 이를 활용해 특정 목적의 처리를 위한 독자적인 기능을 구축할 수 있다. 다음 버전인 피그 11.0에서는 여러 차원의 애그리게이트(Multiple Dimensions Aggregates) 계산을 위한 오퍼레이터 큐브(Operators Cube)를 강화하고, 랭킹을 위한 랭크를 개선하고, 성능을 개선할 계획이다. 피그 개발자들은 언젠가는 하둡과는 별개로 피그를 사용하게 할 예정이지만, 지금 당장은 하둡에 기반을 두고 있다.


서브버전(Subversion)
콜랩넷(CollabNet)이 2000년 구축했다. 이 버전 관리 시스템은 현재 깃(Git)과 경쟁 관계에 있는 것으로 간주되고 있다. 그러나 서브버전의 그레그 스타인 부사장은 둘이 경쟁 관계가 아니라고 주장했다.


그는 "경쟁은 없다. 버전 관리 시스템은 여럿이 있다. 개발자는 자신에게 가장 잘 맞는 툴을 선택하게 될 것이다. 가능한 선택권이 많은 것이 좋다"고 말했다.


이어 "많은 기업들이 중앙 저장소, 간편한 설정, 엑세스 관리, 방대한 저장소 크기, 다양한 클라이언트에 만족감을 나타내고 있다. 서브버전은 현재 기업들이 가장 많이 이용하고 있는 버전 관리 시스템이다"라고 강조했다.


향후 출시될 버전 1.8에서는 파일 및 디렉토리 이동과 관련된 클라이언트 개선 기능이 제공될 계획이다. 또 머징, inheritable 및 서버 규정 속성 기능이 개선될 예정이다.

톰캣(Tomcat)
자바 서블릿(java Servlet) 및 자바서버 페이지(JavaServer Pages) 기반 기술로 1999년 이후 아파치의 중요 기술이었다. 톰캣은 효과적인 자바 애플리케이션 서버이다. 또 'Mulesoft Tcat Server', 'VMware vFabric tc Server' 등 상업용 제품으로 분기되어 나갔다. 또 아파치 'TomEE'도 있다. 톰캣의 자바 EE6 웹 프로파일 버전이다. 톰캣 8부터는 서블릿(Servlet) 3.1 사양을 지원할 것으로 관측된다.


오랜 기간 아파치 개발해 참여하고, 톰캣 4와 7의 출시 매니저를 맡았던 마크 토마스는 "새로 지원하는 중요 기능으로는 'non-blocking I/O' 지원을 들 수 있다. 이는 확장성이 더 뛰어난 앱을 더 쉽게 저작하도록 해준다"고 말했다. 또 웹소켓(WebSocket) 통신을 지원하게 되는데, 이는 애플리케이션이 더 많은 메시지를 처리하도록 확장을 돕는 역할을 한다.




※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.ciokorea.com/slideshow/16087]

맨 위로
맨 위로