통합개발환경
통합개발환경(Integrated Development Environment, IDE)은 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어이다.
목차
개요
통합개발환경은 프로그래밍을 위한 통합 개발 환경으로서 에디터, 컴파일러, 디버그 등 프로그래밍에 필요한 툴이 하나의 인터페이스로 통합되어 사용 가능한 개발 환경을 말한다. 통합개발환경은 개발자가 소프트웨어를 개발하는 과정에 필요한 모든 작업을 하나의 소프트웨어에서 처리할 수 있는 환경을 제공한다. 초기 소프트웨어 개발 시스템은 코드 편집기, 컴파일링, 디버깅 등과 같은 개발 과정을 각각의 프로그램에서 사용했으며 콘솔을 통한 개발이 불가능했다. 가장 많이 사용되는 통합개발환경은 IBM에서 개발한 이클립스(Eclipse)와 마이크로소프트에서 개발한 비주얼스튜디오(Visual Studio)이다. 이클립스는 자바 개발자에게 필수적인 통합개발환경이며, 이 통합개발환경을 가진 이클립스는 아이디어 공유와 협업, 빠른 작업이 가능한 플랫폼이다. 개발자의 입장에서 본다면 강력하고 확장성이 있는 플랫폼으로 연결되어서 고급 툴을 빠르고 효율적으로 개발할 수 있도록 개발자를 지원한다. 분산된 개발 환경을 잘 끌어 모아서 통일된 환경이므로 윈도에서 VC++, 파워 빌더 등이 통합 개발 환경을 지원하며, 이들 프로그램은 하나의 툴에서 코드 작성·테스트·디버깅·내비게이션·버전 관리를 할 수 있도록 환경을 조성한다. 개발자는 불필요한 프로세스를 거치지 않고 편리한 환경에서 개발에 집중할 수 있게 된다. 이외에도 JDE, 안드로이드 스튜디오, 비주얼 스튜디오, 델파이, 알에스스튜디오, 넷빈즈, 코드블럭스 등이 있다. 또한 클라우드 환경에 맞춘 클라우드 통합개발환경이 개발되었으며, 이로 인해 개발자의 협업이 가능해졌다. 여러 개발자가 동시에 코드를 작성하거나 리뷰를 하고 공유하는 것이 가능하며, 운영체제와 웹브라우저의 종류에 관계 없이 사용 가능하다.
역사
최초의 통합개발환경은 소프트랩(Softlab)에서 1975년에 개발된 마에스트로 I(Maestro I)이다. 다트머스대학교의 존 케메니(John Kemeny)와 토머스 커츠(Thomas Kurtz)가 개발한 다트머스 베이직(Dartmouth BASIC) 언어에서 처음으로 통합개발환경을 사용하였다. 다트머스 베이직은 절차적 언어로 현대 베이직 프로그래밍 언어의 시초이며 코드 편집기와 파일 관리, 컴파일링, 디버깅, 실행 등이 포함되어 있었다. 이는 통합개발환경 소프트웨어의 기본이 되었다. 통합개발환경 소프트웨어 개발 이후 콘솔과 터미널을 통한 개발이 가능해졌으며, 다양한 운영체제와 플랫폼에서 개발을 할 수 있게 되었다. 또한 일부 소프트웨어는 여러 개의 프로그래밍 언어를 함께 지원한다.
특징
차별화
통합개발환경의 다양한 기술 및 비즈니스 활용 사례가 있다. 이는 마찬가지로 독점과 오픈소스 통합개별환경 옵션도 많다는 의미인데, 일반적으로 통합개발환경 간의 가장 중요한 차별화 특징은 지원되는 언어의 수 및 운영체제, 자동화 기능, 시스템 성능에 미치는 영향, 플러그인 및 확장 기능 등이 있다.
- 지원되는 언어의 수 : 일부 통합개발환경은 하나의 언어만 지원하여 특정 프로그래밍 패러다임에 더욱 적합하다. 그 예인 인텔리제이(IntelliJ)는 주로 자바 통합개발환경으로 알려져 있다. 다른 통합개발환경은 자바, XML, 파이썬 등을 지원하는 이클립스 통합개발환경과 같이 한 번에 광범위한 언어를 지원한다.
- 지원되는 운영체제 : 개발자의 운영체제에 따라 실행 가능한 통합개발환경이 제한되며(클라우드 기반 통합개발환경인 경우 제외), 개발 중인 애플리케이션이 특정 운영체제를 사용하는 최종 사용자를 위한 애플리케이션인 경우 추가적인 제약을 받는다.
- 자동화 기능 : 대부분의 통합개발환경이 텍스트 편집기, 빌드 자동화 및 디버거라는 3가지 주요 기능을 포함하지만, 많은 통합개발환경은 리팩토링, 코드 검색 및 지속적인 통합 및 지속적인 배포(CI/CD) 툴과 같은 추가 기능도 지원한다.
- 시스템 성능에 미치는 영향 : 개발자들이 메모리 사용량이 많은 다른 애플리케이션을 동시에 실행하고자 하는 경우 통합개발환경의 메모리 공간이 중요할 수 있다.
- 플러그인 및 확장 기능 : 일부 통합개발환경은 개발자들의 요구사항 및 선호사항에 맞춰 워크플로우를 커스터마이징하는 기능을 포함한다.[1]
클라우드 통합개발환경
클라우드 기반 SaaS(Software-as-a-Service, 서비스로서의 소프트웨어)로 제공되는 통합개발환경은 로컬개발환경과 달리 여러 특별한 이점을 제공한다. 그 중 하나는 모든 SaaS 서비스와 마찬가지로 소프트웨어를 다운로드하고 로컬 환경 및 종속 요소를 설정할 필요가 없으므로 개발자들이 프로젝트를 신속하게 시작할 수 있다는 점이다. 이는 또한 팀원들의 환경 전반에 표준화 수준을 제공하므로 일부 시스템에서만 작동하는 문제를 완화할 수 있다. 또한 개발자 환경은 중앙 집중식으로 관리되기 때문에 어떤 코드도 개별 개발자들의 컴퓨터에 상주하지 않으므로 지적 재산 및 보안 문제를 해결해 준다. 프로세스가 로컬 시스템에 미치는 영향 또한 다양하다. 빌드 실행 및 제품군 테스팅 같은 프로세스는 일반적으로 컴퓨팅 집약적인 워크로드이므로 프로세스를 실행하는 동안에는 워크스테이션 사용이 중단될 수 있다. SaaS 통합개발환경은 로컬 시스템의 컴퓨팅 리소스를 독점하지 않고도 장기간 실행되는 작업을 디스패치할 수 있다. 또한, 클라우드 통합개발환경은 일반적으로 플랫폼에 국한되지 않아 다양한 클라우드 벤더에 대한 연결을 지원한다.[1]
종류
나모 웹에디터
나모 웹에디터는 나모인터랙티브에서 만든 위지윅 기반의 웹에디터 HTML 편집기이다. 보통 웹 전문 편집, 웹사이트 제작 및 HTML 실습을 할 때 사용되었으며, 기본적인 양식과 태그, 프레임을 갖추고 있어서 유용하게 쓰이는 편이었다. 라이센스는 개인/기업 모두 유료로 서비스되고 있었으나, 2008년 '나모 웹에디터 8' 버전을 마지막으로 개발이 중단되었다. 이후 9년 만에 2017년 7월 1일에 선보일 예정으로 나모 웹에디터 10을 개발 중이라고 2016년 10월 24일 밝혔다. 그리고 2017년 8월 29일 '나모 웹에디터 원'이 출시되었다. 나모 웹에디터는 사용자에게 친숙하고 비교적 직관적인 인터페이스로 호응을 얻고 있었다. 1990년대 말 국내에 인터넷의 바람이 불고 젊은이들에게서 홈페이지 만드는 것이 유행할 무렵, 영어로만 작동하고 상대적으로 다루기 까다로웠던 드림위버나 그 당시 국내 유저들에겐 아직 생소했던 오피스 프로그램 '워드'를 빼닮은 마이크로소프트의 프론트페이지는 HTML 문서를 작성하는 것이 상당히 어려웠고 난해했었다. 그 틈새시장을 비집고 들어온 것이 나모 웹에디터로, 마치 아래아 한글에서 문서나 표를 작성하듯이 사용할 수 있어서 익숙해지기 쉬웠고, 위지윅도 드림위버에 비해 전문적이진 않지만 상당히 직관적이라 학교나 학원에서도 많은 유저들이 나모 웹에디터로 개인 홈페이지와 같은 웹페이지를 만들어서 올리곤 했었다. 하지만, 곧 블로그 등 HTML 코드를 바로 다루지 않아도 쉽게 웹페이지를 만들 수 있는 시대가 오게 되어 일반인들에게 HTML 코딩의 중요성이 떨어지고, 그 당시 열악한 웹표준 현황과 계속 추가되는 신기술을 적극적으로 받아들이지 못해 줄어드는 니치 시장과 빈약한 전문가 기능 사이에서 우왕좌왕하다가 도태되어버렸다. 그 당시 가장 큰 문제라고 할 수 있는 인터넷 익스플로러 6.0 호환 문제로 같은 웹페이지라도 인터넷 익스플로러 버전에 따라 다르게 보인다든지, 테이블(table) 태그만 써서 표를 만드는 식으로 CSS로 일부 수정이 가능했지만 그나마도 인터넷 익스플로러가 CSS를 제대로 지원 하지 않았으므로 작동 안하는 경우가 허다했다. 지금은 완전히 사장된 방법이 되어버렸고, 모바일 등 최신 환경을 지원하지 못했으며, HTML5도 제대로 지원 못했다. 그리고 자바스크립트도 일부 지원하였으나 프로그래밍 언어인 자바스크립트의 자유도를 감당해내지 못하고 지원에 어려움을 겪었다. 이 같은 문제는 나모 웹에디터 엔진의 한계였는지 마지막 버전까지 해소하지 못하고, 결국 HTML5를 제대로 지원하는 크로스 에디터를 처음부터 새로 만들면서 명맥이 끊기게 된 원인이 되었다.[2]
넷빈즈
넷빈즈(NetBeans)는 자바 기반의 통합 개발 환경이다. 1996년 프라하 찰스 대학의 학생들이 만든 자바 통합개발환경 1999년 썬 마이크로시스템즈가 사들여 오픈 소스로 발표한 것이 그 시초이다. 자바 가상머신(Java Virtual-Machine)이 설치된 환경이면 사용이 가능하며 윈도우즈, 맥, 리눅스를 지원한다. 이클립스와 함께 널리 알려진 무료 자바 통합개발환경 중 하나이며 2007년 제17회 졸트 상(Jolt Award)를 수상하였다. 2010년 오라클이 썬을 인수하여 넷빈즈 역시 오라클의 소유가 되었으나, 2016년에 오라클이 넷빈즈를 아파치 소프트웨어 재단으로 넘긴 후 지금은 아파치에서 개발 중이다. 지원 언어로는 자바, 그루비, C, 자바스크립트, PHP, JSP, 노드제이에스(NodeJS)가 있다.[3] 넷빈즈에서는 다음과 같은 특장점을 기반으로 개발할 수 있다.
- 약속된 명령어로 자주 쓰는 코드를 자동으로 생성할 수 있다. psvm을 입력하고 탭키를 누르면 public static void main(String[] args)가 자동으로 생긴다. sout을 입력하고 탭키를 누르면 System.out.println("")코드가 자동으로 생성된다. 약속된 명령어들은 Tools -> Options menu -> the Editor -> Code Templates 안에 있고 자신이 정의해서 넣을 수도 있다.
- 주석 처리를 한 번에 처리할 수 있다. 주석하고 싶은 줄에 커서를 갖다 놓거나 여러 줄을 주석 처리하려면 드래그로 블록을 만들어서 선택하고 Ctrl+Shift+C 키를 누르면 // 문자열이 생기면서 자동 주석처리가 된다. 다시 Ctrl+Shift+C 키를 누르면 주석이 해제된다.
- 변수명을 한 번에 바꿀 수 있다. 변경하고 싶은 변수명에 커서를 올려 놓고, Ctrl+R 키를 누르면 변수명에 네모박스가 생기면서 그 안에서만 지워지고 수정 가능해진다. 원하는 변수명으로 수정하면 그 변수를 쓰고 있던 모든 곳에서 같이 변경된다.
- 줄 자동 정렬을 할 수 있다. Alt+Shift+F 또는 Ctrl+Shift+F 키를 누르면 한 번에 줄 자동 정렬을 할 수 있다
- import를 자동으로 생성할 수 있다. 소스만 복사해 와서 붙인 경우 Import 문은 누락되어 빨간색 줄을 볼 수 있는데, Ctrl+Shift+I 를 누르면 자동으로 찾아서 import 문을 생성해 준다.
- 자동으로 관련 메소드를 찾을 수 있다. Ctrl+Space를 누르면 java-doc까지 친절한 해설과 관련 메소드를 보여 준다.
- 자동으로 getter, setter 메소드를 만들 수 있다. 클래스에 멤버변수(클래스 변수)들만 선언해 놓고 Alt+Insert 키를 누르면 Generate 창이 뜬다. 거기서 getter and setter를 선택하면 변수별로 자동으로 get, set 메소드를 생성할 수 있다.
- 파일끼리 무엇이 변했는지 한 눈에 볼 수 있다. 상단 메뉴에서 Tools - Diff를 눌러 비교할 파일을 선택하면 현재 펼쳐져 있는 문서와 비교하여 무엇이 변했고 삭제되었는지, 삽입되었는지 알 수 있게 해 준다.[4]
델파이
델파이(Delphi)는 마이크로소프트 윈도우 응용 프로그램을 위한 통합개발환경이며, 오브젝트 파스칼 프로그래밍 언어로부터 파생된 언어이다. 오브젝트 파스칼이란, 파스칼에 객체지향 개념을 포함하여 발전시킨 프로그래밍 언어로, 델파이 언어로 잘 알려져 있다. 델파이는 윈도우 아래에서 모든 부분을 프로그래밍할 수 있는 강력한 언어로 높은 생산성과 간결한 코드가 대표적인 장점이고, C++과 비슷한 수준의 저수준 시스템 프로그래밍도 가능하다. 델파이는 순수 네이티브 앱에 강하다. 현재 기반 프레임워크로 뛰어난 객체지향 프레임워크인 비주얼 컴포넌트 라이브러리(VCL), 윈도우 앱뿐만 아니라 FMX로 안드로이드, IOS, 맥, 윈도우 앱을 단일 소스 코드로 만드는 것이 가능하다. 컴파일 과정을 통해 원하는 네이티브 앱을 만들어낸다. XE8 버전부터는 비콘 개발 등 사물인터넷 연결 능력 또한 강화되었다. 델파이는 윈도우에서 모든 부분을 프로그래밍할 수 있는 뛰어난 언어이며 높은 생산성과 간결한 코드가 대표적인 장점이고, C++과 비슷한 수준의 시스템 프로그래밍도 가능하다. 또 현존하는 네이티브 언어(native language) 중 가장 빠른 컴파일 속도도 델파이만의 자랑이며 대표적인 개발 도구로 볼랜드/코드기어의 델파이, 카일릭스가 있다. 이외에도 프리 파스칼도 고유한 오브젝트 파스칼 외에 델파이를 컴파일할 수 있도록 지원한다. 델파이는 향후 멀티플랫폼을 비전으로 삼고 윈도 운영 체제 이외에 다른 플랫폼들을 지원하는 방향으로 개발이 진행되고 있다. 델파이로 코딩하는 과정에서도, 즉 프로그램이 동작하지 않는 과정에서도 델파이는 완성 후의 모습을 살펴볼 수 있다. 그러나 이것은 설계시에 프로그램이 동작하는 것이 아니라 내부적으로만 동작하고 있는 것이다. 이러한 시각적인 개발 환경은 프로그램의 모습을 보면서 바로 프로그램을 수정할 수 있는 방법을 제공한다.[5]
비주얼 스튜디오
비주얼 스튜디오(Visual Studio)는 1997년부터 현재까지 마이크로소프트가 배포 및 판매 중인 통합개발환경이자 통합 패키지이다. 이것만 있으면 윈도우즈에서 돌아가는 데스크톱 애플리케이션과 웹 애플리케이션을 모두 개발할 수 있다. 그러나 그만큼 용량이 커뮤니티 기준 80GB, 엔터프라이즈 기준 150GB 정도로 매우 크고 또 설치 과정도 상당히 길다. 다만 그 많은 것들을 반드시 다 설치해야 하는 경우는 없고, 관련 지식이 없다면 최초에 정해 주는 대로만 깔면 충분히 쓸 수 있다. 비주얼 스튜디오는 기존에 마이크로소프트가 제작하던 컴파일러인 마이크로소프트 C/C++ 컴파일러를 나중에 비주얼 C++로 개명하면서, 같이 '비주얼'을 접두어로 붙이던 비주얼 베이직과 합쳐서 패키지로 내놓은 것이다. 비주얼 스튜디오는 강화된 코드 내비게이션, 인텔리센스(IntelliSense), 리팩토링, 코드 픽스, 디버깅이 애플리케이션 개발과 웹 프로그램 개발 작업을 더 편하고 빠르게 만들어 생산성이 극대화된다. 근본적인 작업의 효율성을 강화하기 위해 원하는 모듈만 설치하고, 프로젝트와 솔루션이 없어도 코드를 보고, 수정하고, 디버깅 할 수 있다. 마이크로소프트 애져(Azure)상에는 구동되는 애플리케이션 개발을 더욱 더 쉽게 해 주는 애져 관련 툴의 집합이 설치되어 있다. 비주얼 스튜디오에서 마이크로소프트 애져상에서 구동되는 애플리케이션 개발 시 더 쉽게 서비스를 구성하고, 빌드하고, 패키지하고, 배포할 수 있다. 또한, 비주얼 스튜디오의 강화된 디버깅 및 프로파일링 툴과 단위 테스트 생성 기능을 통해 애플리케이션 개발이 쉬워진다.[6]
어도비 드림위버
어도비 드림위버(Adobe Dreamweaver)는 디자인 중심의 홈페이지를 신속히, 손쉽게 만들고자 할 때에 유용한 홈페이지 제작 도구이다. 매크로미디어 제품으로, 나모 웹에디터와 같이 위지윅 방식을 채택하였다. 드림위버와 함께 그래픽, 사운드, 영상, 쇽웨이브 등의 적절한 컨텐츠를 함께 사용한다면 효과적이고 감각적인 홈페이지를 제작할 수 있다. 또한, 스타일 시트, DHTML 등의 구현이 용이하다는 것이 드림위버의 가장 큰 장점이다. 매크로와 히스토리 기능을 지원하는 사용자의 편의성을 극대화시킨 프로그램이다. 테이블로 레이아웃을 짜는 고질병을 지닌 나모 웹에디터와는 달리, 웹 표준을 매우 잘 준수하는 모습을 보인다. 어도비는 웹 표준을 이끄는 위치에 있기 때문이다. W3C에 어도비도 참여하고 있으며, 웹 브라우저의 엔진도 만들고 있다. DTD(Document Type Definition)부터 시작해서 각종 HTML 규격이 두루 갖춰져 있고, HTML5도 잘 지원한다. 또한, 웹 디자인에 많이 쓰이는 포토샵이나 플래시 등과 묶음으로 살 수 있기에 관리가 편한 장점도 있다. 그리고 반응형 웹 구축을 쉽게 할 수 있다. 단점이라면 위지윅치고는 무겁다는 것과 비싸다는 것이 있다.[7]
안드로이드 스튜디오
안드로이드 스튜디오(Android Studio)는 안드로이드 및 안드로이드 전용 앱 제작을 위한 공식 통합개발환경이다. 구글이 안드로이드 앱 개발을 위해 젯브레인스 사의 인텔리제이 아이디어(IntelliJ IDEA)를 기반으로 만든 통합개발환경으로, 2014년 10월부터 이클립스를 대체해 안드로이드의 공식 통합개발환경이 되면서 무료로 제공되고 있으며, 윈도우즈, 맥 OS X, 리눅스를 지원한다. 안드로이드의 공식 프로그래밍 언어로 채택된 코틀린(Kotlin)도 사용 가능하다. 안드로이드 스튜디오는 빌드 자동화, 종속성 관리 및 맞춤형 빌드 구성을 제공한다. 로컬 라이브러리와 호스팅된 라이브러리를 포함하도록 프로젝트를 구성하고 다양한 코드와 리소스를 포함하는 빌드 변형을 정의하며 여러 코드 축소 및 앱 서명 구성을 적용할 수 있다.[8]
이클립스
이클립스(Eclipse)는 자바를 기반으로 한 통합개발환경으로, 이클립스 재단이 만들었다. 2001년부터 개발이 시작된 유구한 역사를 자랑하는 프로그램으로, 원래는 IBM의 IBM 비주얼에이지용 소프트웨어 개발 툴로서 만들어졌으나, 제작 도중 방향이 바뀌어서 관련 소스 등을 모조리 공개하는 자유 소프트웨어가 되었고, 이를 '이클립스'란 이름 하에 2001년 세상에 선보인 것이 이클립스의 시작이다. 이클립스는 자바 프로그래밍 개발이 용이하며, 플러그인을 통해 C/C++, PHP, HTML 등 여러 언어의 개발이 가능하다. 그리고 단순한 구문 강조는 이클립스 Colorer, 컬러에디터 등의 플러그인을 통해 거의 대부분의 언어/파일 형식을 사용이 가능하다. 또한, 훌륭한 버전 관리 시스템 클라이언트의 기능 및 강력한 파일 비교 유틸리티까지 수행하고, 자바 기반으로 가상머신 위에서 어떤 플랫폼에서든 실행 가능하다. 다양한 플러그인을 통한 확장이 가능하고 자바에 대해 강력한 리팩토링 기능을 제공한다.[9]
코드블럭스
코드블럭스(Code::Blocks)는 GCC, MSVC를 포함한 여러 컴파일러를 지원하는 자유, 오픈 소스, 크로스플랫폼 통합개발환경이다. wxWidgets를 GUI 툴킷으로 사용하는 C++ 언어로 개발되어 있다. 플러그인 구조를 이용하여 여러 기능을 사용할 수 있게 되어 있다. 현재 코드블럭스는 C와 C++, 포트란을 지원하고 있다. 윈도우즈, 리눅스, 맥 OS X용으로 개발되고 있으며, 사용자들은 프리BSD 하에서 코드블럭스를 성공적으로 개발해 놓기도 했다. 코드블럭스는 MinGW+GCC 컴파일러를 포함한 설치 크기가 100MB 정도 되고, 사양도 거의 제한 없기 때문에 가볍다. 2003~4년 쯤 셀러론 CPU + 1GB RAM으로 구동해도 원활하게 돌아갈 정도여서 저사양 컴퓨터에도 잘 구동된다. 그리고 리눅스에서 구동하게 되면 자신이 설치한 GCC, 클랭(Clang) 등을 자동으로 인식해서 사용할 수 있다. 그러나 본격적인 프로젝트 개발에 쓰기에는 기능이 좀 떨어진다는 평이 많다. 그래도 간단한 콘솔 프로그램 제작에 영향을 줄 정도는 아니며, 애초에 그런 기능을 사용할 만한 대규모 프로젝트라면 비주얼 스튜디오를 쓸 것이기 때문에 개인적인 용도로는 크게 문제되지 않는다. 또한, MSVC 컴파일러도 인식하기 때문에 비주얼 스튜디오로 개발된 파일을 불러오는 것도 문제가 없다. 한글화가 되지 않았다는 것을 단점으로 볼 수 있겠으나, 대부분이 쉬운 영어라 쓰는 데에 어려움은 없다.[10]
인텔리제이 아이디어
인텔리제이 아이디어(IntelliJ IDEA)는 젯브레인스 사에서 제작한 상용 자바 통합개발환경으로, 줄여서 인텔리제이 혹은 아이디어로도 불린다. 이클립스 재단의 이클립스와 썬 마이크로시스템즈의 넷빈즈로 대표되는 무료 자바 통합개발환경에서 볼랜드의 제이빌더와 함께 얼마 되지 않는 상용 개발 도구 가운데 하나이다. [11] 인텔리제이 아이디어는 다음과 같은 기능이 있다.
- 스마트 완성 : Ctrl+Shift+Space를 누르면 현재 컨텍스트에 적용할 수 있는 가장 적합한 심볼 목록이 표시된다. 이 기능을 비롯한 모든 완성 기능은 사용자 행동을 지속적으로 학습하여, 가장 자주 사용되는 클래스와 패키지의 멤버를 최상위 제안 목록으로 올려 놓기 때문에 사용자가 더 빨리 선택할 수 있다.
- 체인 완성 : 스마트 완성보다 자세히 분석하여, 현재 컨텍스트에서 메소드나 게터로 액세스할 수 있으며 적용 가능한 심볼 목록을 표시한다. 예를 들어 Project 값을 찾으려 하는데 module이라는 모듈 선언만 가지고 있는 경우, 다른 작업을 할 필요 없이 Ctrl+Shift+Space를 두 번 눌러 module.getProject()를 얻을 수 있다.
- 정적 멤버 완성 : 정적 메소드와 상수를 간편하게 사용할 수 있다. 입력 내용에 맞는 심볼 목록이 제공되고 필요한 import 문이 자동으로 추가된다.
- 데이터 흐름 분석 : 인텔리제이 아이디어는 데이터 흐름을 분석하여 가능한 런타임 심볼 유형을 추측하고 해당 정보에 따라 선택지를 개선해 클래스의 형 변환을 자동으로 추가한다.
- 언어 삽입 : 사용자가 평소에 이용하던 코드 지원의 이점이 그대로 지원되어, 선택한 언어를 다른 언어의 표현식과 문자열 리터럴에 사용할 수 있다. 예를 들어, SQL, XPath, HTML, CSS 또는 자바스크립트 코드의 일부를 자바 문자열에 삽입할 수 있다.
- 교차 언어 리팩토링 : 인텔리제이 아이디어는 심볼의 사용 위치를 모두 파악하기 때문에 매우 효과적이며 완벽한 리팩토링을 제공한다. 예를 들어 JPA 구문에 있는 클래스의 이름을 변경하는 경우, JPA 엔티티 클래스부터 모든 JPA 표현식까지 해당 클래스가 사용되고 있는 모든 요소를 빠짐없이 업데이트한다.
- 중복 탐지 : 중복된코드 부분을 바로 찾아낸다. 변수나 상수, 메소드만 추출하려고 하는 경우에도 인텔리제이 아이디어는 작업 중인 코도를 대체할 수 있는 유사한 코드가 있음을 알려 준다.
- 검사 및 빠른 수정 : 인텔리제이 아이디어에서 사용자의 실수를 탐지할 때마다 에디터에 작은 전구를 표시한다. 전구를 클릭하거나 Alt+Enter를 누르면 오류 수정을 위해 선택할 수 있는 액션 목록이 열린다.[12]
파이참
파이참(PyCharm)은 파이썬 프로그램을 쉽게 개발할 수 있도록 하는 통합개발환경이다. 코드 분석 및 코딩 지원, 프로젝트 및 코드 탐색, 파이썬, 웹 프레임워크 지원, 통합 파이썬 디버그, 라인 단위 테스트, 구글 앱 엔진 파이썬(Google App Engine Python), 통합 사용자 인터페이스, 과학적 도구를 지원한다.[12] 파이참은 다음과 같은 기능들을 포함한다.
알스튜디오
알스튜디오(RStudio)는 R을 처음 배우는 사람이 사용하는 통합개발환경이다. 다른 통합개발환경에 비해 R 언어에 특화된 사용자 인터페이스와 기능을 가지고 있으며, ggplot2, shiny, dplyr, httr 등 다양한 패키지를 왕성하게 만들고 있는 알스튜디오 팀이 직접 관리를 하기 때문에 문서도 많고, 국내 사용자 층도 큰 편이다. 특히 초보자부터 고급 사용자까지 필요한 많은 기능들을 그래픽 사용자 인터페이스로 제공함으로써 배울수록 편리함이 늘어난다.[13]
엑스코드
엑스코드(xcode)는 애플이 개발한 OS X의 개발 툴 모음이다. 엑스코드는 애플리케이션을 개발하기 위한 필요한 모든 도구(텍스트 에디터, 컴파일러, 빌드 시스템 등)를 가져 온다. 또한, 스크립트를 이용해 개별적인 툴로 가지고 오는 것이 아니라 하나의 패키지로 가지고 온다. 엑스코드는 맥과 IOS를 위한 애플의 공식적인 통합개발환경으로, 초기에는 '프로젝트 인 더 넥스트 데이(Project Builder In the NeXT days)'라고 불렸지만, 맥 OSx 10.3 혹은 10.4에 엑스코드라는 명칭으로 변경되었다. 버전 4에 따라 애플은 컴패니언 인터페이스 빌더 프로그램을 만들었기 때문에 오직 하나의 앱 번들러가 있다. 프로그램의 디자인은 변경되지 않았지만 툴은 정기적으로 업데이트되고 있다.[14]
각주
- ↑ 1.0 1.1 〈IDE란?〉, 《레드햇》
- ↑ 〈나모 웹에디터〉, 《위키백과》
- ↑ 〈넷빈즈〉, 《위키백과》
- ↑ SourceBox, 〈넷빈(NetBeans)에서 10가지 기능으로 개발속도를 높여보자〉, 《티스토리》, 2012-08-15
- ↑ 늅이, 〈(델파이) Delphi란 무엇이며 왜 아직까지 사용하는가?〉, 《티스토리》, 2016-07-27
- ↑ 〈비주얼 스튜디오〉, 《나무위키》
- ↑ 200920748, 〈1. 드림위버란?〉, 《티스토리》, 2010-12-17
- ↑ IT게임Blog, 〈안드로이드 스튜디오 설치 방법 및 설정 후 프로젝트 관리〉, 《도라가이드》
- ↑ 〈이클립스(통합개발환경)〉, 《나무위키》
- ↑ 〈Code::Blocks〉, 《위키백과》
- ↑ 〈IntelliJ IDEA〉, 《위키백과》
- ↑ 12.0 12.1 젯브레인스 공식 홈페이지 - https://www.jetbrains.com/ko-kr/
- ↑ mrchypark, 〈실무 빅데이터 분석을 위한 SQL과 R의 활용 CAMP〉, 《깃허브》
- ↑ yngmanie, 〈xcode란?〉, 《개인 블로그》, 2019-04-17
참고자료
- 〈IDE란?〉, 《레드햇》
- 〈나모 웹에디터〉, 《위키백과》
- 〈넷빈즈〉, 《위키백과》
- SourceBox, 〈넷빈(NetBeans)에서 10가지 기능으로 개발속도를 높여보자〉, 《티스토리》, 2012-08-15
- 늅이, 〈(델파이) Delphi란 무엇이며 왜 아직까지 사용하는가?〉, 《티스토리》, 2016-07-27
- 〈비주얼 스튜디오〉, 《나무위키》
- 200920748, 〈1. 드림위버란?〉, 《티스토리》, 2010-12-17
- IT게임Blog, 〈안드로이드 스튜디오 설치 방법 및 설정 후 프로젝트 관리〉, 《도라가이드》
- 〈이클립스(통합개발환경)〉,《나무위키》
- 〈Code::Blocks〉, 《위키백과》
- 〈IntelliJ IDEA〉, 《위키백과》
- 젯브레인스 공식 홈페이지 - https://www.jetbrains.com/ko-kr/
- mrchypark, 〈실무 빅데이터 분석을 위한 SQL과 R의 활용 CAMP〉, 《깃허브》
- 알 툴즈 테크놀로지 공식 홈페이지 - https://www.r-tt.com/ko/
- yngmanie, 〈xcode란?〉, 《개인 블로그》, 2019-04-17
- 애플 디벨로퍼 공식 홈페이지 - https://developer.apple.com/kr/
같이 보기