오픈오피스

오픈오피스(, OpenOffice.org)는 다양한 운영 체제에서 사용할 수 있는 오피스 제품군이다. 마이크로소프트 오피스 97-2003 포맷을 비롯한 다양한 포맷을 지원할 뿐만 아니라 데이터 교환을 위한 고유 파일 포맷으로 ISO 표준인 오픈도큐먼트 포맷(ODF)을 지원한다.
오픈오피스는 스타디비전이 개발하고 1999년 8월 썬 마이크로시스템즈(지금의 오라클)가 인수한 스타오피스에 기반을 두고 있다. 썬 마이크로시스템즈는 자유롭고 개방적이며 높은 품질의 대안을 제공함으로써 마이크로소프트 오피스의 지배적인 시장 점유율을 줄이려는 목적으로 2000년 7월에 스타오피스의 소스 코드를 공개하였다. 이후 오픈오피스 커뮤니티(OpenOffice.org)에서 오픈오피스 개발 및 관련 활동을 책임지고 있고, 썬 마이크로시스템즈는 오픈오피스 커뮤니티에 소스 기여/자금 기여/인력 기여 등을 통해 오픈오피스 개발과 활동을 지지하는 관계로 변하였다. 그리고 썬 마이크로시스템즈는 그렇게 개발되는 오픈오피스를 기반으로 전용 구성 요소를 추가한 스타오피스를 판매하였다. 그 뒤 현재는 아파치 소프트웨어 재단이 이 소프트웨어 제품군을 관리하고 있다. 오픈오피스는 아파치 라이선스 2.0을 따르는 오픈 소스 소프트웨어이다.
역사.
원래 독일 회사인 스타디비전이 스타오피스라는 독점 소프트웨어로 개발했으나 1999년에 썬 마이크로시스템즈가 코드를 인수했다. 1999년 8월에는 스타오피스 버전 5.2를 무료로 제공하였다.
2000년 7월 19일, 썬 마이크로시스템즈는 스타오피스에 대한 오픈 소스 개발 커뮤니티를 형성할 의도로 LGPL과 SISSL에 따라 소스 코드를 내려받을 수 있도록 한다고 발표했다. 새로운 프로젝트 이름은 OpenOffice.org이며, 2000년 10월 13일에 공식 웹 사이트가 열렸다.
2003년 초에 다음과 같은 사항을 목표로 버전 2.0에 대한 작업을 시작하였다 - 마이크로소프트 오피스와의 호환성 확대, 성능 개선, 속도 향상과 메모리 사용량 감소, 폭넓은 스크립팅 지원, 그놈과의 향상된 통합, 보고서, 양식, 쿼리를 손쉽게 작성할 수 있는 데이터베이스 프론트엔드, 새로운 내장 SQL 데이터베이스, 향상된 사용성. 베타 버전은 2005년 4월에 출시되었다.
2005년 9월 2일, 썬은 SISSL을 폐기한다고 발표했다. 이에 따라, 오픈오피스 커뮤니티 협의회는 다시는 오픈오피스를 이중 라이선스로 제공하지 않으며 앞으로 나올 버전은 LGPL만 사용한다고 발표했다.
2005년 10월 20일, 오픈오피스 2.0이 공식적으로 출시되었다. 버전 2.0이 출시된 지 8주 후에 업데이트 버전인 오픈오피스 2.0.1이 출시되었다. 여기에는 작은 버그 수정과 새로운 기능이 포함되었다.
오픈오피스는 2.0.3 버전부터 업데이트, 기능 향상, 버그 수정을 배포하기 위한 배포 주기를 종전의 18개월에서 3개월로 변경했다. 현재, 새로운 기능을 포함한 버전(feature release)은 그 사이에 나오는 버그 수정 버전(bug fix release)과 번갈아 가며 6개월마다 배포된다.
스타오피스.
썬은 오픈오피스를 기반으로 한 상용 독점 소프트웨어 스타오피스를 위해 오픈오피스 개발을 보조하고 있다. 스타오피스는 버전 6.0 이후로 오픈오피스 소스 코드를 기반으로 하여 다음과 같은 추가 독점 구성 요소를 포함하고 있다.
오픈오피스는 OpenOffice.org XML 파일 포맷을 포함하여 스타오피스의 많은 기능을 물려받았는데, 이 포맷은 버전 2에서 ISO 표준인 오픈도큐먼트 포맷(ODF)으로 바뀔 때까지 유지되었다.
기능.
선언문을 보면, 오픈오피스 프로젝트는 "“모든 주요 플랫폼에서 동작하고, 오픈 컴포넌트에 기반을 둔 API와 XML에 기반을 둔 파일 형식을 통해서 모든 기능과 데이터에 대한 접근을 제공함으로써 세계를 선도하는 오피스 제품군을 만드는 커뮤니티가 되는 것”"이다.
오픈오피스는 마이크로소프트 오피스와 경쟁하고, 마이크로소프트 오피스와 비슷한 외관과 느낌을 구현하는 것을 지향한다. 마이크로소프트 오피스를 비롯한 많은 다른 응용 프로그램들이 사용하는 파일 형식 중 대부분을 읽고 쓸 수 있다. 이는 많은 사용자에게 꼭 필요한 기능이다. 오픈오피스는 마이크로소프트 오피스의 이전 버전 파일뿐만 아니라 마이크로소프트 오피스에서 열지 못하는 손상된 새 버전의 파일을 읽을 수 있다. 하지만 이전 매킨토시 워드 파일(MCW)은 열 수가 없다.
플랫폼.
오픈오피스는 리눅스, 윈도우, OS X, 솔라리스, FreeBSD, OpenVMS, IRIX에서 사용할 수 있다. 현재 가장 중점적으로 지원되는 플랫폼은 윈도우, 리눅스, 솔라리스이다. 오에스 텐용 버전의 경우 2.x버전의 경우 X11이 설치되어 있어야만 제한적인 기능으로 사용할 수 있었으나 3 버전부터는 OS X의 아쿠아 인터페이스에서 네이티브로 작동하는 향상된 버전으로 제공되고 있다. 그 외로 OS X 전용으로 개발된 네오오피스도 있다. 네오오피스는 오픈오피스에서 떨어져 나간 프로젝트이다. 이 프로젝트는 오픈오피스 2.X 시절부터 아쿠아 버전의 오픈오피스를 제공하였다.
구성 프로그램.
오픈오피스는 최신 오피스 제품군에서 제공하는 기능들을 제공하는 응용 프로그램들이 모여 있으며, 그 안에 들어있는 각 프로그램은 서로 밀접하게 연관되어 있다. 많은 구성 요소가 마이크로소프트 오피스와 호환되도록 설계되었다. 구성 프로그램은 다음과 같다.
퀵스타터.
윈도와 리눅스에서 컴퓨터 시작 시 구동되는 프로그램이다. 컴퓨터가 시작될 때 오픈오피스를 위한 핵심 파일들과 라이브러리들을 로드하여 나중에 제품군의 응용 프로그램을 사용할 때 빨리 시작될 수 있도록 도와준다. 오픈오피스 응용 프로그램들의 시작 시간은 1.0 버전의 제품군에서 공통된 불만이었으며, 퀵스타트는 이런 종류의 문제의 해결 방법으로 나온 것이다. 버전 2.2에서는 이 부분에서 많은 개선이 이루어졌다.
매크로 기록기.
사용자의 동작을 기록하여 이를 OOoBasic(오픈 오피스 오브젝트 베이직)을 이용하여 재생함으로써 작업의 자동화에 도움을 주는 다이알로그 프로그램으로
매크로 기록기는 다이알로그 인터페이스외에도 오픈오피스베이직의 베이직 에디터(The Basic Editor)를 제공하는데 이는 직접적인 프로그래밍언어로 조작하는 방식이다.
따라서 매크로 기록기는 오픈오피스베이직으로 소스코드에의한 직접적인 사용방법도 가능하다.
내장된 오픈오피스(오브젝트)베이직(OpenOfficeBasic)이 기본으로 구동되지만 파이썬, 빈 쉘(Bena Shell), 자바 스크립트등도 연동시킬수있다.
윈도에서는 이들 구성 요소를 따로따로 설치할 수는 있어도 별개로 다운로드할 수는 없다. 하지만 대부분 리눅스 배포판에서는 이 구성 요소들을 패키지로 쪼개서 배포하며 따로따로 다운로드하고 설치할 수 있다.
오픈오피스 베이직.
오픈오피스 베이직은 스타오피스 베이직에 기초한 프로그래밍 언어로 응용 프로그램용 마이크로소프트 비주얼 베이직(VBA)과 비슷하다. 오픈오피스 2.0 노벨 에디션은 추가로 마이크로소프트 VBA 매크로를 지원하며, 이 기능은 주 버전에서도 곧 통합될 것으로 기대된다.
오픈오피스 베이직은 라이터(Writer)와 칼크(Calc) 응용 프로그램에서 쓸 수 있다. 이는 서브루틴이나 매크로를 부르는 함수로 쓰이며, 각 매크로는 한 문단에서 단어 수를 세는 것과 같은 서로 다른 일을 수행한다. 오픈오피스 베이직은 특히 프로그램 안에 내장되지 않은 반복 작업을 하는 데 유용하다.
오픈오피스 데이터베이스 프로그램인 베이스는 라이터를 이용해 리포트와 폼을 만들기 때문에, 베이스 또한 오픈오피스 베이직으로 프로그램될 수 있다고 말할 수 있다.
오픈오피스 베이직의 프로그래밍작업은 같이 제공되는 베이직 에디터(The Basic Editor)를 통해서 이루어진다.
베이직 에디터(The Basic Editor)를 이용한 일괄 패치 매크로 소스 예.
다음은 라이터(Text Document)에서 다수의 매쓰(Fomula)오브젝트들을 삽입한후 "글자크기,폰트,가운데정렬"을 위한 일괄 패치 매크로 소스이다.
REM ***** BASIC *****
Sub Main
 embeddedObjects = ThisComponent.getEmbeddedObjects()
 elementNames = embeddedObjects.getElementNames()
 for i=0 to UBOUND(elementNames)
 element = embeddedObjects.getByName(elementNames(i)).Model
 if (element.supportsService("com.sun.star.formula.FormulaProperties")) then
 element.BaseFontHeight = 11
 element.FontNameVariables= "Noto Serif CJK KR,Italic"
 element.FontNameFunctions = "나눔명조"
 element.FontNameNumbers= "Noto Serif CJK KR"
 element.Alignment =com.sun.star.style.TabAlign.CENTER
 endif
 next i
 ThisComponent.reformat()
End Sub
API.
오픈오피스 베이직의 프로퍼티를 구성하는 API는 사용자가 거의 대부분의 오픈오피스 자원에 접근할 수 있게 도와준다.
오픈오피스는 썬 마이크로시스템즈버전의 스타오피스의 전통을 유지하므로 여전히 API 참조에서도 스타오피스의 프레임을 찾아볼 수 있다.
탁상출판.
탁상출판(DTP)용도를 완전히 지원한다.
다양한 출판물의 사이즈와 커스터마이징이 가능하며, 이미지 뿐만아니라 그래픽SVG등과 수학등의 수식을 삽입하는 출판물에 활용도가 높다.
파일 형식.
오픈오피스는 ISO/IEC 표준 오픈도큐먼트 파일 형식을 만들었고, 이를 기본 고유 형식으로 사용한다. 또한, 많은 예전 전용 형식들(예: 워드 퍼펙트, 로터스 소프트웨어, MS 웍스, 리치 텍스트 형식)을 읽을 수 있으며, 일부는 쓰기도 가능하다. 가장 주목할 만한 것은 마이크로소프트 오피스 형식으로 일부 버전은 현재 마이크로소프트 오피스보다 오히려 더 잘 읽어들인다.
마이크로소프트가 오피스 오픈 XML을 쓰는 쪽으로 움직이는 것에 대응하여, 노벨은 오픈오피스를 위한 오피스 오픈 XML을 플러그인을 자유로운 BSD 라이선스 조건으로 내놓았는데(GNU GPL 그리고 LGPL 라이선스 라이브러리들과 병행하여), 이는 OpenOffice.org 프로젝트 안으로 포함되도록 제공될 것이다. 이는 오픈오피스에서 마이크로소프트 오피스 2007에서 만들어진 .docx 파일을 읽을 수 있게 해 줄 것이다.
개발.
개요.
오픈오피스 API는 유니버설 네트워크 오브젝트(UNO)로 알려진 컴포넌트 기술에 기반을 두고 있다. 이는 CORBA와 같은 인터페이스 서술 언어에서 정의된 광범위한 인터페이스들로 구성되어 있다.
사용되는 문서 파일 형식은 XML 형식과 여러 가지 내보내기/가져오기 필터들에 바탕을 두고 있다. 오픈오피스가 읽어들이는 모든 외부 형식들은 내부 XML 표현을 통해 서로 변환된다. XML을 디스크에 저장할 때에는 압축을 사용하여 똑같은 이진 마이크로소프트 오피스 문서들보다 더 작다. 버전 1.0에서 문서 저장을 위해 쓰던 고유 파일 형식은 OASIS 오픈도큐먼트 파일 형식 표준에 바탕을 두고 있는데, 이는 버전 2.0에서는 기본 파일 형식이 되었다. 제품군 개발 버전은 OpenOffice.org 웹 사이트의 개발자 존에서 몇 주마다 한 번씩 나오고 있다. 이 배포 버전들은 새로운 특징을 테스트해보고 싶거나 단순히 앞으로 있을 변경들이 궁금한 사람들에게 의미가 있다. 이들은 실무용으로는 적당하지 않다.
고유 데스크톱 통합.
오픈오피스 1.0은 운영되는 플랫폼을 위해서 고유로 개발된 응용 프로그램의 룩 앤드 필을 가지고 있지 않다는 비판을 받아 왔다. 버전 2.0을 시작하면서, 오픈오피스는 고유 응용 프로그램들과 더 잘 어울리고 사용자들에게 더 매끄러운 경험을 제공하기 위하여 여러 가지 플랫폼에 걸쳐 있는 고유 위젯 툴키트, 아이콘, 그리고 폰트 렌더링 라이브러리를 적용했다. 특히 GNOME과 KDE 양쪽과 통합을 더욱 향상시키기 위한 프로젝트들이 진행되고 있다.
이 문제는 특히나 맥 OS X에서 뚜렷한데, 표준 유저 인터페이스가 윈도나 X-11 기반 데스크톱 환경 어느 쪽과는 눈에 보이게 많이 다르며, 대부분 오픈오피스 개발자와는 친숙하지 않은 프로그래밍 툴킷을 쓰라고 요구한다. 오에스 텐에서 오픈오피스를 쓸 수 있는 두 가지 버전이 있다.
오픈오피스 Mac OS X (X11).
공식 버전은 X11.app 또는 XDarwin을 설치하여 달라고 요구하며, 잘 테스트된 유닉스 버전에 딱 들어맞는 포팅이다. 이는 기능으로는 유닉스 버전과는 동등하며, 유저 인터페이스는 그 버전의 룩 앤드 필과 닮았다. 예를 들어 응용 프로그램은 화면 상단의 오에스 텐 메뉴 대신에 자체 메뉴를 사용한다. 이는 또한 오픈오피스를 위한 X11 형식의 시스템 글꼴이 필요한다(이는 응용 프로그램 설치 도중에 할 수 있다.).
오픈오피스 아쿠아.
오픈오피스 아쿠아는 X11 오픈오피스를 대체하여 현재에는 정식 버전의 맥용 오픈오피스 지칭한다. 그러므로 오픈오피스 아쿠아라는 용어는 더 이상 사용되지 않는다.
다른 프로젝트들.
오픈오피스에서 파생된 프로젝트들은 상당히 많이 있다. 대표적으로 스타오피스와 네오오피스가 있고, 그룹웨어 솔루션을 포함한 상당한 수의 보완 프로그램도 있다.
네오오피스.
이는 독자적인 포팅으로 OS X의 아쿠아 유저 인터페이스를 자바, 카본, 그리고 점점 더 비중이 높아지는 코코아 툴킷을 써서 통합을 구현하였다. 네오오피스는 OS X UI 표준에 꽤 가까우며, OS X에 설치된 글꼴과 프린터들을 직접 사용한다. 이는 공식 오픈오피스 X11 릴리즈보다는 뒤처져서 발표되는데, 개발팀이 규모가 작고 유저 인터페이스를 포팅하는 데에 쓰는 기술 개발을 같이하기 때문이다.
OpenGroupware.org.
OpenGroupware.org는 OpenOffice.org 문서, 캘렌더, 주소록, 이메일, 인스턴트 메시징, 그리고 블랙 보드를 공유할 수 있고 다른 그룹웨어 응용 프로그램들에 접근할 수 있도록 해 주는 프로그램이다.
또한, OOExtras에서는 문서 템플릿과 쓸모 있는 추가물들을 만들고 공유하기 위한 노력이 있다.
외부 프로그램에서 OpenOffice.org 문서 처리를 할 수 있도록 하기 위한 펄 확장기능들을 CPAN에서 구할 수 있다. 이들 라이브러리는 OpenOffice.org API를 쓰지 않는다. 이들은 펄 표준 압축/압축 풀기, XML 접근, 그리고 UTF-8 인코딩 모듈을 이용해서 OpenOffice.org 파일을 직접 읽고 쓴다.
휴대용 프로그램.
“휴대용 OpenOffice.org”라고 부르는 OpenOffice.org 배포판은 USB 플래시 드라이브에서 제품군을 돌리고자 설계되었다.
OxygenOffice 프로페셔널.
OpenOffice.org보다 향상된 다음과 같은 기능을 제공한다.
옵션으로 다음이 제공되며, 개인과 업무용으로 무료로 쓸 수 있다.
확장 기능.
버전 2.0.4부터, OpenOffice.org는 모질라 파이어폭스와 비슷한 방식으로 확장기능을 지원한다.
OpenOffice.org 서지 프로젝트는 강력한 참고 문헌 관리 소프트웨어를 이 제품군으로 통합하는 것을 목표로 한다. 새로운 주요 추가물들은 2007년 후반이나 2008년 중반에 나올 표준 OpenOffice.org 릴리즈에 포함되기 위한 후보로 정해져 있으나, 프로그래머들의 선호도에 따라서 더 늦어질 수도 있다.
보안.
오픈오피스는 보안 팀을 따로 가동하고 있으며, 보안 사이트인 Secunia는 2007년 9월 현재까지 이 소프트웨어에 대한 패치 되지 않은 보안 문제가 발견되지 않았다고 보고했다. 또한, 카스퍼스키 연구소에서는 오픈오피스에 존재할 수 있는 바이러스의 형태를 제시하였다. 이는 오픈오피스 바이러스가 존재할 수 있다는 것을 보여 주지만, 현재까지 알려진 바이러스는 없다.
프랑스 국방성의 비공개회의에서, 매크로에 관련된 보안 문제가 제기되었다. 오픈오피스 개발자들은 이 폭로에 가깝게 발표된 취약점이 “미리 규정된 절차”에 따라서 발표되지 않았으며, 국방부가 구체적인 내용은 하나도 공개하지 않았다는 것을 지적했다. 하지만, 추측되는 취약점에 대해서는 개발자들과 연구원들의 논의가 진행 중이다.
시장 반응.
시장 점유율.
오픈오피스의 경우 인터넷 사이트, 미러 사이트, 피어투피어 네트워크, CD, 리눅스 배포판 등 다양한 경로로 배포되기 때문에 정확한 시장 점유율을 추정하기 어렵다. 따라서 오픈오피스 측에서는 표본 조사를 통해 시장 점유율을 추정하고 있다.
마이크로소프트 오피스가 전체 시장에서 95%의 점유율을 유지하고 있지만, 오픈오피스와 스타오피스는 2004년에는 대형 엔터프라이즈 시장에서 14%를, 중소규모 비즈니스 시장에서는 2005년에 19%를 확보했다. 오픈오피스 웹 사이트는 2009년 10월 28일에 다운로드 수 1억 회를 돌파했다고 발표했다.
오픈오피스를 대규모로 쓰는 사용자는 싱가포르 국방부, 그리고 영국의 브리스톨 시청 등이다. 프랑스에서는 오픈오피스가 소프트웨어 조달을 합리화시키면서도 안정되고, 기록 보관을 위한 표준 파일 형식을 원하는 지역과 국가 행정부의 관심을 끌었다. 리눅스를 쓰는 인도 대법원과 알라하바드 고등법원은 완전히 오픈오피스에 의존하고 있다.
2005년 10월 4일, 선과 구글은 전략 파트너십을 선언했다. 합의 일부로써, 선은 구글 검색 바를 오픈오피스에 추가하고, 선과 구글은 공동 마케팅 활동은 물론 공동 연구 개발을 약속했으며, 구글은 오픈오피스 배포를 도울 것이다.
스타오피스 말고도, 오픈오피스에서 파생된 여러 가지 상업 제품들도 있다. 이들 가운데 대부분은 SISSL 라이선스로 개발되었다(오픈오피스 2.0 베타 2까지 유효하다.). 대체로 이들은 지역 특화 또는 틈새 시장을 목표로 하고 있으며, 음성 인식 모듈, 자동 데이터베이스 연결, 또는 더 나은 CJK 지원과 같은 전용 애드-온이 들어 있다.
자바 논란.
예전에 오픈오피스는 자유 소프트웨어가 아닌 자바 런타임 환경에 의존성이 커지고 있다는 비판을 받았다. 선 마이크로시스템이 자바 창시자이자 오픈오피스의 선도 후원자라는 사실은 이 기술 채택에 숨은 뜻이 있다는 비판을 낳았다. 버전 1은 몇몇 보조 기능을 위하여 현재 사용자 컴퓨터에 있는 자바 런타임 환경(JRE)에 의존하지만, 버전 2에서는 자바 사용이 늘어나면서 이 제품군은 JRE를 요구한다. 그에 대응하여, 레드햇은 자유 자바 구현을 향상시키기 위한 노력을 늘렸다. 레드햇의 페도라 코어 4(2005년 6월 13일 출시)는 GCJ와 GNU Classpath에서 동작하는 오픈오피스 버전 2를 포함하고 있다.
한국어화.
오픈오피스의 한국어화 작업은 처음 썬마이크로시스템의 의뢰로 미지리서치가 스타오피스를 한국어화하고 그 결과물을 오픈오피스에 반영하였다. 이후 한국어판은 썬마이크로시스템의 지역화 팀에서 계속 관리하고 있는데, 2008년 4월 배포된 2.4판 이후부터는 오픈오피스 한국어 팀이 참여하였다.
현재까지 한국어 오픈오피스는 마이크로소프트 윈도우와 리눅스, OS X에서 사용할 수 있다.