Eclipse (소프트웨어)
| 파일:Eclipse-Luna-Logo.svg | |
| 섬네일을 만드는 중 오류 발생: 이클립스 4.12 | |
| 개발자 | 이클립스 재단 |
|---|---|
| 발표일 | 1.0 / 2001년 11월 7일[1] |
| 미리보기 버전 | 4.28 (2023-06 release)
|
| 저장소 |
|
| 프로그래밍 언어 | 자바 |
| 엔진 | |
| 운영 체제 | 크로스 플랫폼(자바) |
| 플랫폼 | 윈도우, 리눅스, 솔라리스, AIX, OS X, FreeBSD |
| 종류 | 통합 개발 환경 |
| 라이선스 | 이클립스 공중 허가 |
| 웹사이트 | http://eclipse.org |
Eclipse(이클립스)는 자바를 비롯한 다양한 언어를 지원하는 프로그래밍 통합 개발 환경이자 프로그래밍 도구이다. 현재는 OSGi를 도입하여, 범용 응용 소프트웨어 플랫폼으로 진화하였다.
자바로 작성되어 있으며, 자유 소프트웨어이지만 막강한 기능을 자랑한다. 2004년과 2005년에 졸트 어워드(Jolt Award)를 수상했다.
식(蝕)을 뜻하는 이클립스란 이름은 자바를 개발한 회사의 SUN(재단)이란 이름을 염두에 두었다는 말도 있어 2003년도에 썬 마이크로시스템즈는 이클립스 재단에 참여하지 않았던 이유 중의 하나였지만 2005년도에 열린 EclipseCon의 키노트에서 Lee Nackman은 그 목적은 원래 마이크로소프트와 비주얼 스튜디오 생태 시스템을 겨냥한 것이었다고 말했다.[2]
원래 IBM의 웹스피어 스튜디오 애플리케이션 디밸로퍼(WebSpheare Studio Application Developer)란 이름으로 개발되었던 것인데, 엔진부분을 오픈소스로 공개한 것을 기반으로 지금의 이클립스로 발전해 왔다.
C/C++ 개발자용, 자바 개발자용, 웹 개발자용 등 다양한 배포판이 존재한다.
역사
이클립스는 스몰토크 기반 비주얼에이지 계열의 통합 개발 환경(IDE) 제품의 영향을 받았다.[3]
라이선스
이클립스 퍼블릭 라이선스(Eclipse Public License, EPL)는 이클립스 프로젝트 출시에 사용되는 근본적인 라이선스이다.[4] 일부 프로젝트는 듀얼 라이선스를 요구하여 Eclipse Distribution License(EDL)가 사용되는데 케이스 바이 케이스 기준으로 고려되어야 한다.
이름
2003년 IBM의 래셔널 디비전의 CTO 리 낵먼(Lee Nackman)에 따르면 당시 적어도 2001년부터 쓰인 식(蝕)을 의미하는 "이클립스"(eclipse)라는 이름은 썬 마이크로시스템즈의 말장난은 아니었으며 명명 당시 제품의 주요 경쟁 제품인 마이크로소프트 비주얼 스튜디오에 대항하여 해당 제품이 가려지게 될 것을 두고 쓰인 말이다.[5]
배포판
2006년부터 이클립스 재단에서는 매년 6월 말에 새로운 버전을 발표할 때 여러 가지 프로젝트를 묶어서 통합 발표한다. 이클립스 플랫폼 뿐만 아니라 관련된 프로젝트들을 묶어서 발표함으로써 동시다발적으로 개발되는 오픈소스의 특성 상 서로간의 버전 충돌이 일어날 경우에 대비하기 위함이다. 최초 Calisto의 10개 프로젝트부터 시작하여 매 해마다 참여하는 프로젝트의 수가 증가하고 있다.
각 배포판의 이름은 초기에는 목성의 4대 위성 이름으로 결정되었고 최근에는 투표를 통해 결정한다.[6]
| 버전 명칭 | 날짜 | 플랫폼 버전 | 제품 | 주요 변경사항 |
|---|---|---|---|---|
| N/A | 2004년 6월 21일 | 3.0[7] | ||
| N/A | 2005년 6월 28일 | 3.1 | 자바 5 지원 추가: generics, annotations, boxing-unboxing, enums, enhanced for loop, varargs, static imports[8] | |
| Callisto | 2006년 6월 30일 | 3.2 | Callisto 프로젝트[9] | |
| Europa | 2007년 6월 29일 | 3.3 | Europa 프로젝트[10] | |
| Ganymede | 2008년 6월 25일 | 3.4 | Ganymede 프로젝트[11] | |
| Galileo | 2009년 6월 24일 | 3.5 | Galileo 프로젝트[12] | |
| Helios | 2010년 6월 23일 | 3.6 | Helios 프로젝트[13] | |
| Indigo | 2011년 6월 22일 | 3.7 | Indigo 프로젝트[14] | 자바 7 지원 추가 (3.7.1 sr1): Improved Type Inference for Generic Instance Creation (Diamond), Multi-catch, try-with-resources statement, Simplified Varargs Method Invocation, Strings in switch, Binary Literals and Underscores in Numeric Literals, Polymorphic Methods[15] |
| Juno | 2012년 6월 27일 | 3.8, 4.2[16] | Juno 프로젝트[19] | |
| Kepler | 2013년 6월 26일 | 4.3 | Kepler 프로젝트[20] | |
| Luna | 2014년 6월 25일 | 4.4 | Luna 프로젝트[21] | 자바 8 지원 통합;[22] 그 이전 버전에서는 자바 8 패치 플러그인을 통해서만 이용이 가능했다. |
| Mars | 2015년 6월 24일 | 4.5 | Mars 프로젝트[23] | |
| Neon | 2016년 6월 22일 | 4.6 | Neon 프로젝트[24] | |
| Oxygen | 2017년 6월 28일 | 4.7 | Oxygen 프로젝트[25] | Oxygen.1a의 자바 9 지원 도입, Junit 5 지원, Oxygen.3a의 자바 10 지원 도입.[26]
다음 유닉스 기반 플랫폼 지원 중단: AIX, Solaris, HP-UX, s390.[27] |
| Photon | 2018년 6월 27일 | 4.8 | Photon 프로젝트[28] | 32비트 윈도우 및 리눅스 지원 중단. |
| 2018-09 | 2018년 9월 19일 | 4.9 | 2018-09 프로젝트[29] | |
| 2018-12 | 2018년 12월 19일 | 4.10 | 2018-12 프로젝트[30] | 자바 11 지원 추가.[31] |
| 2019-03 | 2019년 3월 20일 | 4.11 | 2019-03 프로젝트[32] | |
| 2019-06 | 2019년 6월 19일 | 4.12 | 2019-06 프로젝트[33] | |
| 2019-09 | 2019년 9월 18일 | 4.13 | 2019-09 프로젝트[34] | |
| 2019-12 | 2019년 12월 18일 | 4.14 | 2019-12 프로젝트[35] | |
| 2020-03 | 2020년 3월 18일 | 4.15 | 2020-03 프로젝트[36] | |
| 2020-06 | 2020년 6월 17일 | 4.16 | 2020-06 프로젝트[37] | |
| 2020-09 | 2020년 9월 16일 | 4.17 | 2020-09 프로젝트[38] | |
| 2020-12 | 2020년 12월 16일 | 4.18 | 2020-12 프로젝트[39] | |
| 2021-03 | 2021년 3월 17일 | 4.19 | 2021-03 프로젝트[40] | |
| 2021-06 | 2021년 6월 16일 | 4.20 | 2021-06 프로젝트[41] |
- ↑ There is a 3.8 release of Eclipse Juno; it is not promoted on the main downloads page, but a packaged distribution is available for download.[17] Eclipse 3.8 provides bugfixes for Indigo & adds Java 7 support, and its maintenance was dual streamed with 4.2.[18] Features and plug-ins equivalent to a packaged distribution may be added from within the IDE.
아키텍처
이클립스의 기반은 리치 클라이언트 플랫폼 (RCP)으로, RCP는 아래와 같은 구성 요소로 이루어져 있다.
- 코어 플랫폼 - 플러그인을 실행하는 이클립스의 기반
- OSGi - 표준 번들링 프레임워크
- SWT (Standard Widget Toolkit) - 이식가능한 GUI 위젯 툴킷
- JFace - SWT를 이용하여 고급 컴포넌트를 구성하는 작업을 간략화 할 수 있도록 해 준다.
- 이클립스 워크벤치(Workbench) - 뷰(views), 편집기(editors), 퍼스펙티브(perspectives), 마법사(wizards)
이클립스의 GUI 위젯은 자바를 위한 위젯 툴킷인 SWT로 구현되었다. 이는 AWT나 Swing을 사용하는 다른 대다수 자바 응용 프로그램과 다른 점이다. 또한 이클립스의 사용자 인터페이스는 또 하나의 중간 GUI 계층인 JFace를 사용하여, 이는 SWT 기반의 응용 작성을 좀 더 쉽게 만들어 준다.
이클립스는 RCP를 포함한 상위의 모든 기능을 제공하기 위해, 플러그인을 사용한다. 이는 다른 자바 응용이 기능 확장 부분을 하드 코딩하는 것과는 대조적인 특징이다. 이 플러그인 메커니즘은 경량화한 소프트웨어 컴포넌트 프레임워크라할 수 있다. 플러그인 프레임워크를 활용하면, 자바가 아닌 다른 프로그래밍 언어, 예를 들면 C 언어나 파이썬 언어로 이클립스를 확장하는 것이 가능할 뿐 아니라 이클립스에서 LaTeX와 같은 조판 언어를 활용하거나,[42] 텔넷과 같은 네트워크 응용을 실행하거나 데이터베이스 관리를 하는 것도 가능하다. 또한 플러그인 아키텍처로 개발 환경 자체를 확장하는 것도 가능하다. 예를 들어 기본으로 제공하는 CVS 지원에 더욱 향상된 형상관리 기능을 확장하는 것이 가능하다.
이클립스 SDK에는 이클립스 자바 개발 툴(Java Development Tools)이 포함되어 있는데 이는 자바 컴파일러를 내장하고 있고 자바 소스 파일 전체 모델을 제공한다. JDT를 이용하면 자바 언어 기반의 고급 리펙터링 기법과 코드 분석을 수행할 수 있다.
같이 보기
각주
- ↑ “Eclipse Tools Project”. 《archive.eclipse.org》. 2018년 12월 28일에 확인함.
- ↑ Darryl K. Taft (2005년 5월 20일). “Eclipse : Behind the Name”. eWeek. 2012년 6월 8일에 확인함.
- ↑ “Where did Eclipse come from?”. 《Eclipse Wiki》. 2008년 3월 16일에 확인함.
- ↑ “Eclipse Public License”. 2012년 2월 24일에 확인함.
- ↑ Darryl K. Taft (2005년 5월 20일). “Eclipse: Behind the Name”. 《eWeek.com》. Ziff Davis Enterprise Holdings. 2008년 8월 11일에 확인함.
- ↑ Naming Helios + 1 ... to Indigo
- ↑ “Eclipse Foundation”. Eclipse.org. 2004년 6월 21일. 2018년 1월 12일에 확인함.
- ↑ “Eclipse 3.1 Inside!”. 2016년 12월 1일에 원본 문서에서 보존된 문서. 2018년 1월 12일에 확인함.
- ↑ “Eclipse Callisto Projects”. 《Eclipse》. 2018년 1월 12일에 확인함.
- ↑ “Simultaneous Release”. 2018년 1월 12일에 확인함.
- ↑ “Ganymede Simultaneous Release”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Galileo Simultaneous Release”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Helios”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Indigo”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Help - Eclipse Platform” (영어). 《help.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Eclipse Juno Release Train Has Arrived”. 《Eclipse》. 2012년 6월 27일. 2018년 1월 12일에 확인함.
- ↑ “Eclipse 3.8.2 Maintenance Build: 3.8.2”. 《archive.eclipse.org》. 2013년 1월 31일. 2018년 1월 12일에 확인함.
- ↑ “389175 – Dual stream simultaneous release (3.x and 4.x)”. 《bugs.eclipse.org》. 2018년 12월 28일에 확인함.
- ↑ “Category:Juno”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Kepler”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Luna”. 《Wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Eclipse Project 4.4.0”. 2018년 1월 12일에 확인함.
- ↑ “Category:Mars”. 《Wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Neon”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:Oxygen”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Eclipse Oxygen - New and Noteworthy”. 2018년 7월 3일에 확인함.
- ↑ “Eclipse Project Oxygen (4.7) M1 - New and Noteworthy”. 2019년 8월 22일에 확인함.
- ↑ “Category:Photon”. 《wiki.eclipse.org》. 2018년 1월 12일에 확인함.
- ↑ “Category:SimRel-2018-09”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2018-12”. 《wiki.eclipse.org》.
- ↑ “Eclipse 4.10 - New and Noteworthy - New Features for Java Developers”. 《www.eclipse.org》.
- ↑ “Category:SimRel-2019-03”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2019-06”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2019-09”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2019-12”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2020-03”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2020-06”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2020-09”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2020-12”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2021-03”. 《wiki.eclipse.org》.
- ↑ “Category:SimRel-2021-06”. 《wiki.eclipse.org》.
- ↑ TeXlipse homepage - LaTeX for Eclipse
외부 링크
- 파일:Commons-logo.svg 위키미디어 공용에 [{{fullurl:Commons:모듈:WikidataIB 508번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).|uselang=ko}} Eclipse] 관련 미디어 분류가 있습니다.
- 모듈:Official_website 90번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
모듈:Authority_control 159번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
- 스크립트 오류가 있는 문서
- CS1 - 영어 인용 (en)
- 잘못된 파일 링크가 포함된 문서
- 영어 표기를 포함한 문서
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- Eclipse (소프트웨어)
- 크로스 플랫폼 자유 소프트웨어
- 디버거
- IBM 소프트웨어
- 자바 개발 도구
- 자바 플랫폼
- 리눅스 소프트웨어
- 자바로 작성된 자유 소프트웨어
- 이클립스 라이선스 소프트웨어
- 자유 HTML 편집기
- 자유 통합 개발 환경
- 소프트웨어 개발 키트
- 안드로이드 개발 소프트웨어
- 자유 UML 도구