이클립스(통합 개발 환경)


[1]
홈페이지

1 역사

Java를 기반으로 한 소프트웨어 개발 툴의 일종으로 이클립스 재단이 만들었다.

2001년부터 개발이 시작된 유구한 역사를 자랑하는 프로그램. 원래는 IBM의 IBM VisualAge용 소프트웨어 개발 툴로서 만들어졌으나, 제작 도중 방향이 바뀌어서 오픈소스로 방향이 바뀐 이후엔 관련 소스등을 모조리 공개하는 자유 소프트웨어가 되었고, 이를 '이클립스'란 이름하에 2001년 세상에 선보인것이 이클립스의 시작이다. 2016년 7월 현재 최신 버전은 4.6으로 코드네임은 Neon.

2 개요

자바 개발자들에게 친숙한 프로그램. 이클립스는 어떤 OS에서든 누구든 자유롭게 이용 및 수정, 재배포가 가능하다.

여담으로 맥용은 환경변수 설정 없이 자바 공부가 가능하다고 하는데, 이는 레지스트리에 의존하지 않는 유닉스 계열의 OS들의 특징이다. 심지어 자바 런타임도 설치 하면 그 즉시 컴파일러까지 동봉 돼 딸려오기 때문에 그냥 자바를 설치하고 터미널(os X의 콘솔)에 javac를 입력하면 바로 작동한다.

3 장점

자유 소프트웨어답게 운영체제의 제한 없이 어디서든 사용이 가능하며[2], 또한 다양한 프로그램 제조에도 쓰일 수 있다. 다만 자바 기반이라는 태생적 한계가 있어서 정말 아무 프로그램이나 다 만들어내는 것은 아니다.[3](결정적으로 애플의 소프트웨어는 만들 수 없다.) 삼성전자웨이브 폰에 쓰였던 OS 바다(운영체제)의 애플리케이션 개발 툴 역시 이클립스의 개량판이다.

4 방대한 플러그인 지원

개발자들을 위한 플러그인 지원이 대단히 활발한 툴중 하나다. 이클립스 플러그인들을 찾아다니다 보면 단순 디자인 툴부터 UML 설계툴, DB 디자인 도구 등등, 없는게 없다. 안드로이드 등의 플랫폼 개발에는 아예 전용 라이브러리를 제공(적어도 링크)하는 경우도 있다.[4]개발 툴들이 그렇듯 아무나 쉽게 만지고 다니는 물건은 아니지만 C언어와 자바에 대한 기본 지식만 있다면 굉장히 간편한 툴이다. 특히 Java에서는 최강의 통합개발툴이다. 경쟁자로 넷빈즈(NetBeans)와 제이빌더(JBuilder) 등이 있는데 이클립스의 인기에 한참 밀리고 있다. 제이빌더는 상용이라는 단점이 있고 느리다는 평도 있는데 넷빈즈는 이클립스와 비슷한 수준이고 오라클에서 밀고 있는데도 역부족.

그리고 Visual Studio 마냥 시스템에 인스톨해서 사용하는 방식이 아니라 하드디스크의 적당한 곳에 압축을 해제하여 실행파일을 돌려 사용하는 방식(무설치판 같은 방식)인지라 사용목적에 따라 다양한 이클립스 버전을 사용하는것도 편리한점의 하나이다.[5] 굳이 이런방식을 택하는 이유는, 개발언어나 목적에 따라 설치한 플러그인들이 서로 충돌하는 경우가 발생할 수 있으며, 이에 따라 프로그램이 꼬이는 일도 발생할 수 있기 때문이다. 가령 A프로젝트에는 A1, A2 플러그인을 설치해 따로 사용하고 B프로젝트에는 B1, B2 플러그인을 설치해 또 따로 사용하는 방식. 이것저것 해야 먹고사는 SI의 비애 그래서 어떤 플러그 인을 깔면 다른 플러그인은 그 이클립스에는 못 깐다. 그러니까 이클립스 A에 어떤 플러그인 B를 깔고난 다음엔 다른 플러그인 C가 깔리지 않는 경우가 있다.

이클립스는 기본적으로 자바 개발용으로 쓰이는 경우가 가장 많지만. 플러그인을 사용하면 다른 언어의 개발도 가능하다. 가장 기본적으로 C/C++를 지원하는 CDT 부터 파이썬을 지원하는 PyDev, Ruby를 지원하는 RDT, 포트란을 지원하는 Photran도 있으며, 액션스크립트 개발툴인 FDT나 플래시빌더도 있다. 웹용으로는 Aptana가 있다. 플래시빌더 같은 경우에는 기본적으로는 별도로 나오는 스탠드얼론 툴이지만 이클립스 플러그인 형태로도 나온다.

어떤 개발 툴체인을 사용할 것인지를 직접 설정, 연결하여 사용할 수 있기 때문에 다른 언어 뿐 아니라 다른 구동 환경에서 사용되는 프로그램의 제작, 즉 크로스 컴파일도 가능하다. 이는 x86 PC 환경에서 AVR, ARM32/64용 프로그램을 제작할 수 있다는 의미가 된다. 안드로이드 개발환경으로 사용 가능한 것도 이러한 이유이다.[6]

유명한 플러그인으로 AWT/Swing을 GUI로 개발해주는 WindowBuilder(구 Visual Editor)가 있다.[7]

JAVA 개발 통합환경으로서는 기능의 충실성 면에서 독보적인 원탑이지만 사소한 잔버그가 있고 전반적으로 (다른 IDE들에 비해) 심하게 느리다. 물론 그만큼 빵빵한 기능들이 있기는 하지만 IDE계의 끝판왕 비주얼 스튜디오를 쓰다가 이클립스를 사용하게 되면 일단 그 반응성의 구림에 불만이 나오는 것은 어쩔 수 없다.

5 코드 네이밍

참고로 이름의 뜻을 존중하여 새로운 버전을 항상 매년 6월 마지막 주에 공개하는 특성이 있다. 첫 공개일부터 6월 21일이였고 그 후로도 매년 6월 28일, 30일, 22일 등 항상 6월 마지막 주, 그것도 7월로 넘어가기 이전의 마지막 주에 신버전을 내놓는 것을 원칙으로 삼고 있다.

이 때문에 이클립스의 코드명 작명은 워낙에 독특하기로도 유명하다. 예전부터 독특하기로 유명했지만, 알파벳 네이밍을 따라가기 시작하면서 점점 산으로 가는 중.(...) 그래도 절대 규칙이 하나 있는데, 이유를 막론하고 상표권 문제에 휘말리면 가차없이 실격이다.

워낙 독특해서 따로 서술. 연대는 편의상 나누었다.

  • 초창기(Helios 까지): 2005년 버전까지는 변변한 코드네임이 없었는데, 2006년 부터는 목성의 위성 또는 이와 관련된 인물의 이름을 임의로 채용하였다. 2006년 Callisto, 2007년 Europa, 2008년 Ganymede 순. 2009년에는 갈릴레오 갈릴레이의 이름을 따 Galileo로 명명되었다. 이오는 그렇게 잊히고 말았다.
  • 알파벳 네이밍 1기 (Mars 까지): 그러다 Eclipse Galileo+1 부터는 이름을 투표로 정하기 시작하였는데, 알파벳 'H'이니까 Helios로 하자는 의견이 지지를 얻었고, 이것이 곧 알파벳 네이밍의 시작이 되었다. 그리고 2011년 Eclipse Helios+1 부터는 전통이 되었는데, 그렇게 붙은 이름이 Helios(2010년), Indigo(2011년), Juno(2012년), Kepler(2013년), Luna(2014년), Mars(2015년) 순. 특히 2번째 투표인 Indigo는 상징적인 색깔이 남색(Indigo)라는 점에서 압도적인 표차로 당선되었고, Mars는 다른 후보들이 상표권 분쟁에 휘말리는 바람에 어부지리로 당선되었다.
  • 알파벳 네이밍 2기 (Neon 부터): Mars가 나오자마자 어김없이 Eclipse Mars+1라는 이름으로 투표를 하게 되었다. 이 과정에서 Neptune이 전폭적인 지지를 받았으나, 하필 상표권 문제 때문에 실격하고 말았다. 그래서 대신 채택된 것이 Neon(2016년 현재), 이미 Neon Toolkit이 있긴 하나 사실상 지원이 끊긴 지 오래(2011년 종료)라 당선되었다. 이 때 부터 슬슬 방향이 바뀔 조짐을 보이더니 2017년 버전은 천체학에서 완전히 탈피한 Oxygen으로 결정되었다.
  1. 출처 : 이클립스 홈페이지
  2. 크로스플랫폼은 자유소프트웨어와 관계 없다. 오히려 Java로 개발되었다는 부분에 직접적인 영향이 있다. 다만 많은 수의 자유소프트웨어가 크로스플랫폼인 부분에 빗대어 표현한 것이라면 일정부분 맞는 표현이긴 하다.
  3. 자바의 태생적 한계와는 관계가 없다. IDE(이클립스)는 개발을 도와주는 환경일 뿐이다. 프로그램을 만드는 것은 컴파일러 등이 해결하는 문제이다. 대표적으로 CDT플러그인을 설치하면 C/C++ 프로그래밍이 가능하다.
  4. 물론 지금은 구글에서 안드로이드 스튜디오를 정식 제작할뿐더러, 이클립스 안드로이드 플러그인이 지원 종료되기 때문에 이제 안드로이드 개발에는 이클립스가 쓰이지 않는다.
  5. 하지만 이제 설치버전도 나왔다. 물론 아직 베타버전이고 귀찮으면 그냥 압축파일을 받아 쓸 수도 있다.
  6. 이 것이 중요한 이유를 AVR을 예로 들어 설명하자면, 적절한 크로스 컴파일러만 나와 있다면 AVR studio를 이용하거나 CLI에서 직접 컴파일러를 구동시킬 필요 없이 더 편리한 환경에서 사용할 수 있다는 점이다.
  7. 기존에는 동명의 회사가 유료 플러그인으로 판매했었으나, 구글이 회사를 인수한 후 플러그인을 무료로 배포하고 있다.