본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
통합 개발 환경 문서 원본 보기
문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
통합 개발 환경
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[파일:JGRASP+hello world.png|thumb|260px|데스크톱 운영 체제에서 실행되는 통합 개발 환경]] {{소프트웨어 개발 프로세스|도구}} '''통합 개발 환경'''(統合開發環境, {{lang|en|integrated development environment, '''IDE'''}})은 [[소프트웨어 개발]]을 위한 포괄적인 기능을 제공하는 [[응용 소프트웨어|소프트웨어 애플리케이션]]이다. IDE는 일반적으로 적어도 [[소스 코드 편집기]], [[빌드 자동화]] 도구 및 [[디버거]]로 구성된다. [[IntelliJ IDEA]], [[Eclipse (소프트웨어)|이클립스]], [[라자루스 (소프트웨어)|라자루스]]와 같은 일부 IDE는 필요한 [[컴파일러]], [[인터프리터]] 또는 둘 다를 포함한다. [[샤프디밸롭|SharpDevelop]] 및 [[넷빈즈|NetBeans]]와 같은 다른 IDE는 포함하지 않는다. IDE와 광범위한 소프트웨어 개발 환경의 다른 부분 사이의 경계는 잘 정의되어 있지 않다. 때로는 [[버전 관리 시스템]] 또는 [[그래픽 사용자 인터페이스]](GUI) 구축을 단순화하는 다양한 도구가 통합되기도 한다. 많은 최신 IDE에는 [[객체 지향 프로그래밍]]에서 사용되는 [[클래스 브라우저]], [[객체 브라우저]] 및 [[클래스 다이어그램|클래스 계층 다이어그램]]도 있다. == 개요 == [[파일:Vim8-autocompletion-go-syntastic.png|thumb|외부 플러그인을 통해 자동 완성 및 린팅이 통합된 Vim]] 통합 개발 환경은 유사한 [[사용자 인터페이스]]를 가진 긴밀한 구성 요소를 제공하여 프로그래머의 생산성을 극대화하도록 설계되었다. IDE는 모든 개발이 이루어지는 단일 프로그램을 제공한다. 이 프로그램은 일반적으로 소프트웨어 작성, 수정, 컴파일, 배포 및 디버깅을 위한 많은 기능을 제공한다. 이는 [[Vi (유닉스)|vi]], [[GNU 디버거|GDB]], [[GNU 컴파일러 모음]], [[Make (소프트웨어)|make]]와 같은 관련 없는 도구를 사용하는 소프트웨어 개발과는 대조적이다. IDE의 한 가지 목표는 여러 개발 유틸리티를 한데 모으는 데 필요한 구성을 줄이는 것이다. 대신, 동일한 기능 세트를 하나의 응집력 있는 단위로 제공한다. 설정 시간을 줄이면 개발자 생산성을 높일 수 있으며, 특히 IDE를 배우는 것이 개별 도구를 수동으로 통합하고 배우는 것보다 빠른 경우에 더욱 그렇다. 모든 개발 작업을 더욱 긴밀하게 통합하면 설정 작업을 돕는 것 이상으로 전반적인 생산성을 향상시킬 수 있다. 예를 들어, 코드는 편집하는 동안 지속적으로 파싱되어 구문 오류가 발생할 때 즉각적인 피드백을 제공하므로 개발자는 IDE를 사용하여 코드를 훨씬 빠르고 쉽게 디버깅할 수 있다. 일부 IDE는 특정 [[프로그래밍 언어]]에 전념하여 해당 언어의 [[프로그래밍 패러다임]]과 가장 밀접하게 일치하는 기능 세트를 허용한다. 그러나 많은 다중 언어 IDE가 있다. 대부분의 최신 IDE가 그래픽 기반인 반면, [[마이크로소프트 윈도우]] 및 [[X 윈도 시스템]] (X11)과 같은 창 시스템이 나오기 전에는 [[터보 파스칼]]과 같은 텍스트 기반 IDE가 널리 사용되었다. 이들은 일반적으로 기능 키 또는 [[단축키|핫키]]를 사용하여 자주 사용하는 명령이나 매크로를 실행한다. == 역사 == [[파일:Emacs-screenshot.png|thumb|[[유닉스 계열]] 시스템에서 IDE로 흔히 사용되는 확장 가능한 편집기인 [[GNU 이맥스]]]] IDE는 처음에는 [[시스템 콘솔]] 또는 [[단말기]]를 통한 개발이 가능해지면서 등장했다. 초기 시스템은 프로그램이 [[천공 카드]], [[천공 테이프]] 등을 통해 [[컴파일러]] 또는 [[어셈블리어|어셈블러]]에 제출되었기 때문에 IDE를 지원할 수 없었다. [[다트머스 베이직]]은 IDE와 함께 만들어진 최초의 언어였으며 (또한 콘솔이나 터미널 앞에 앉아서 사용하도록 설계된 최초의 언어이기도 했다). 다트머스 베이직의 IDE([[다트머스 시분할 시스템]]의 일부)는 명령 기반이었기 때문에 [[그래픽 사용자 인터페이스]]의 등장 이후 인기를 얻은 메뉴 방식의 그래픽 IDE와는 별로 닮지 않았다. 그러나 현대적인 IDE와 일관된 방식으로 편집, 파일 관리, 컴파일, 디버깅 및 실행을 통합했다. 소프트랩 뮌헨(Softlab Munich)의 제품인 [[Maestro I]]는 소프트웨어 개발을 위한 세계 최초의 통합 개발 환경이었다.<ref>[https://www.computerwoche.de/a/interaktives-programmieren-als-systems-schlager,1205421 "Interaktives Programmieren als Systems-Schlager"] from Computerwoche ([[독일어|German]])</ref> [[Maestro I]]는 전 세계 22,000명의 프로그래머에게 설치되었다. 1989년까지 [[서독]]에 6,000대가 설치되었다. Maestro는 1970년대와 1980년대에 이 분야에서 세계 최고였다. 오늘날 마지막 Maestro I 중 하나는 텍사스 알링턴의 정보 기술 박물관에서 찾을 수 있다. 플러그인 개념을 가진 최초의 IDE 중 하나는 [[Softbench]]였다. 1995년 컴퓨터보헤(Computerwoche)는 IDE의 사용이 개발자들에게 창의성을 가로막을 것이라며 환영받지 못했다고 논평했다. {{As of|2023|08}} 기준으로 [[구글 검색]]에서 가장 많이 검색된 IDE는 [[비주얼 스튜디오|Visual Studio]], [[비주얼 스튜디오 코드|Visual Studio Code]], [[Eclipse (소프트웨어)|Eclipse]]였다.<ref>{{웹 인용|url=https://pypl.github.io/IDE.html|title=TOP IDE Top Integrated Development Environment index|website=pypl.github.io|access-date=August 8, 2023}}</ref> == 주제 == === 구문 강조 === {{본문|구문 강조}} IDE 편집기는 일반적으로 [[구문 강조]]를 제공하며, 구조, 언어 키워드 및 구문 오류를 시각적으로 구별되는 색상과 글꼴 효과로 표시할 수 있다.<ref name="ide-common"/> === 코드 자동 완성 === 코드 자동 완성은 프로그래밍 속도를 높이기 위한 중요한 IDE 기능이다. 최신 IDE는 [[지능형 코드 자동 완성]] 기능도 갖추고 있다. ====지능형 코드 자동 완성==== {{본문|지능형 코드 자동 완성}} === 리팩토링 === 고급 IDE는 [[소스 대 소스 컴파일러#리팩토링 도구|자동 리팩토링]]을 지원한다.<ref name="ide-common">{{웹 인용|title=Course CS350 Integrated Development Environments |url=https://www.cs.odu.edu/~zeil/cs350/f17/Public/IDEs/index.html |website=cs.odu.edu |publisher=Old Dominion University |access-date=10 October 2018}}</ref> === 버전 관리 === IDE는 소스 저장소와 상호 작용하기 위해 통합 [[버전 관리]]를 제공해야 한다.<ref name="ide-common"/> === 디버그 === IDE는 통합 [[디버거]]를 사용하여 디버깅에도 사용되며, 편집기에서 중단점 설정, 단계의 시각적 렌더링 등을 지원한다.<ref>{{웹 인용|title=Programming software and the IDE |url=https://www.bbc.com/bitesize/guides/zgmpr82/revision/1 |website=BBC Bitesize |access-date=10 October 2018 |archive-date=9 October 2018 |archive-url=https://web.archive.org/web/20181009173403/https://www.bbc.com/bitesize/guides/zgmpr82/revision/1 |url-status=dead }}</ref> === 코드 검색 === IDE는 코드 검색을 지원할 수 있다. 코드 검색에는 두 가지 다른 의미가 있다. 첫째, 클래스 및 함수 선언, 사용, 변수 및 필드 읽기/쓰기 등을 검색하는 것을 의미한다. IDE는 코드 검색을 위해 예를 들어 폼 기반 위젯<ref>{{웹 인용|title=Eclipse Cookbook - Searching Code |url=https://www.oreilly.com/library/view/eclipse-cookbook/0596007108/ch04s05.html |website=O’Reilly |language=en}}</ref> 및 자연어 기반 인터페이스와 같은 다양한 종류의 사용자 인터페이스를 사용할 수 있다. 둘째, 특정 기능의 구체적인 구현을 검색하는 것을 의미한다.<ref>{{서적 인용|last1 =Stolee|first1=Kathryn T.|last2=Elbaum|first2=Sebastian|last3=Dobos|first3=Daniel|date=2014|title=Solving the Search for Source Code|url=https://dl.acm.org/doi/10.1145/2581377|journal=ACM Transactions on Software Engineering and Methodology|language=en|volume=23|issue=3|pages=1–45|doi=10.1145/2581377|s2cid=8558710 |issn=1049-331X|url-access=subscription}}</ref> === 비주얼 프로그래밍 === [[비주얼 프로그래밍]]은 IDE가 일반적으로 필요한 사용 시나리오이다. 비주얼 베이직은 사용자가 프로그래밍, 빌딩 블록 또는 코드 노드를 이동하여 플로우차트나 구조 다이어그램을 생성하고 이를 컴파일하거나 해석하여 새로운 애플리케이션을 만들 수 있게 한다. 이러한 플로우차트는 종종 [[통합 모델링 언어]]를 기반으로 한다. 이 인터페이스는 [[레고 마인드스톰]] 시스템으로 대중화되었으며, [[모질라]]에서 발견되는 것과 같은 사용자 정의 브라우저의 힘을 활용하고자 하는 여러 회사에서 적극적으로 추구하고 있다. [[KTechlab]]은 플로우코드를 지원하며 마이크로컨트롤러용 소프트웨어 개발을 위한 인기 있는 오픈 소스 IDE 및 시뮬레이터이다. 비주얼 프로그래밍은 또한 [[분산 프로그래밍]]의 힘을 담당한다 (cf. [[LabVIEW]] 및 EICASLAB 소프트웨어). 초기 비주얼 프로그래밍 시스템인 [[맥스 (소프트웨어)|Max]]는 아날로그 [[신시사이저]] 설계를 모델로 하여 1980년대부터 실시간 음악 연주 소프트웨어를 개발하는 데 사용되었다. 또 다른 초기 예는 원래 [[맥 OS의 역사|매킨토시]]용으로 개발된 [[데이터플로 프로그래밍]] 기반 시스템인 [[Prograph]]였다. 그래픽 프로그래밍 환경 "[[GRAPE]]"는 [[qfix 로봇 키트]]를 프로그래밍하는 데 사용된다. 이러한 접근 방식은 Openlab과 같은 전문 소프트웨어에서도 사용되는데, 최종 사용자는 기존 학습 곡선 없이 완전한 프로그래밍 언어의 유연성을 원한다. === 언어 지원 === [[GNU 이맥스|GNU Emacs]], [[IntelliJ IDEA]], [[Eclipse (소프트웨어)|Eclipse]], [[MyEclipse]], [[넷빈즈|NetBeans]], [[MonoDevelop]], JDoodle 또는 PlayCode와 같은 일부 IDE는 여러 언어를 지원한다. 대체 언어에 대한 지원은 종종 [[플러그인]]을 통해 제공되어 동일한 IDE에 동시에 설치할 수 있다. 예를 들어, [[플라이체크]]는 39개 언어를 지원하는 [[GNU 이맥스|GNU Emacs]] 24용 최신 즉석 구문 검사 확장이다.<ref>{{웹 인용|url=http://flycheck.readthedocs.org/en/latest/manual/introduction.html |title=Introduction - Flycheck 0.18-cvs | website = [[Read the Docs]] |access-date=2014-03-10 |url-status=dead |archive-url=https://web.archive.org/web/20140310225211/http://flycheck.readthedocs.org/en/latest/manual/introduction.html |archive-date=10 March 2014}}</ref> 또 다른 예는 88개 언어를 지원하는 온라인 클라우드 기반 IDE인 JDoodle이다.[https://www.jdoodle.com/docs/jdoodle-apis/programming-languages-and-versions] [[Eclipse (소프트웨어)|Eclipse]] 및 [[넷빈즈|Netbeans]]에는 [[C (프로그래밍 언어)|C]]/[[C++]], [[에이다 (프로그래밍 언어)|Ada]], [[GNAT]] (예: [[AdaGIDE]]), [[펄|Perl]], [[파이썬|Python]], [[루비 (프로그래밍 언어)|Ruby]], [[PHP]]용 플러그인이 있으며, 파일 확장자, 환경 또는 프로젝트 설정에 따라 자동으로 선택된다. === 구현 === IDE는 다양한 언어로 구현될 수 있다. 예를 들어: * [[이맥스 리스프]] 및 [[C (프로그래밍 언어)|C]]를 사용하는 [[GNU 이맥스]]; * [[자바 (프로그래밍 언어)|Java]]를 사용하는 [[IntelliJ IDEA]], [[Eclipse (소프트웨어)|Eclipse]] 및 [[넷빈즈|NetBeans]]; * [[C 샤프|C#]]를 사용하는 [[MonoDevelop]] 및 [[JetBrains Rider|Rider]]. === 다양한 컴퓨팅 플랫폼에서의 태도 === [[유닉스]] 프로그래머는 [[명령줄]] [[POSIX]] 도구를 완전한 개발 환경으로 결합하여 [[리눅스 커널]] 및 그 환경과 같은 대규모 프로그램을 개발할 수 있다.<ref> Rehman, Christopher Paul, Christopher R. Paul. "The Linux Development Platform: Configuring, Using and Maintaining a Complete Programming Environment". 2002. {{ISBN|0-13-009115-4}} </ref> 이런 의미에서 전체 유닉스 시스템은 IDE 역할을 한다.<ref>{{웹 인용|url=http://c2.com/cgi/wiki?UnixIsAnIde|title=UnixIsAnIde}}</ref> 무료 소프트웨어 [[GNU 툴체인]]([[GNU 컴파일러 모음]] (GCC), [[GNU 디버거]] (GDB), [[Make (소프트웨어)|GNU make]] 포함)은 윈도우를 포함한 여러 플랫폼에서 사용할 수 있다.<ref>{{웹 인용|url=https://www.gnu.org/software/emacs/windows/Developing-with-Emacs.html|archiveurl=https://web.archive.org/web/20130704094014/http://www.gnu.org/software/emacs/windows/Developing-with-Emacs.html|url-status=dead|title="Use Emacs with Microsoft Visual C++ ... use Emacs as an IDE"|archivedate=4 July 2013}}</ref> "모든 것이 텍스트 스트림이다"라는 유닉스의 보편적인 철학은 [[명령줄]] 지향 도구를 선호하는 개발자들이 많은 표준 유닉스 및 GNU 빌드 도구를 지원하는 편집기를 사용하여 다음과 같은 프로그램으로 IDE를 구축할 수 있게 한다. [[이맥스]]<ref>{{웹 인용|url=https://www.linuxjournal.com/article/5765|title=Emacs: the Free Software IDE | Linux Journal|website=www.linuxjournal.com}}</ref><ref>{{웹 인용|url=https://cl-cookbook.sourceforge.net/emacs-ide.html|title=The Common Lisp Cookbook - Using Emacs as a Lisp IDE|website=cl-cookbook.sourceforge.net}}</ref><ref>{{웹 인용|url=http://obsidianrook.com/perlnow/emacs_as_perl_ide.html|title=Emacs as a Perl IDE|website=obsidianrook.com|access-date=11 May 2011|archive-date=21 May 2016|archive-url=https://web.archive.org/web/20160521010534/http://obsidianrook.com/perlnow/emacs_as_perl_ide.html|url-status=dead}}</ref> 또는 [[Vim]]. [[데이터 디스플레이 디버거]]는 많은 텍스트 기반 [[디버거]] 표준 도구를 위한 고급 그래픽 프런트엔드로 의도되었다. 일부 프로그래머는 완전한 IDE에 포함된 유사한 코드 빌딩 도구보다 [[Make (소프트웨어)|메이크파일]] 및 그 파생물을 관리하는 것을 선호한다. 예를 들어, [[PostgreSQL]] 데이터베이스에 기여하는 대부분의 개발자는 새로운 기능을 개발하기 위해 [[Make (소프트웨어)|make]] 및 [[GNU 디버거|GDB]]를 직접 사용한다.<ref>{{웹 인용|url=http://wiki.postgresql.org/wiki/Developer_FAQ#What_development_environment_is_required_to_develop_code.3F|title=Developer FAQ - PostgreSQL wiki|website=wiki.postgresql.org}}</ref> [[비주얼 C++]]를 사용하여 [[마이크로소프트 윈도우]]용 PostgreSQL을 빌드할 때도 IDE 기능에 의존하기보다는 [[Make (소프트웨어)|make]]를 대체하는 [[펄|Perl]] 스크립트가 사용된다.<ref>{{웹 인용|url=https://www.postgresql.org/docs/devel/install-windows.html|title=Chapter 18. Installation from Source Code on Windows|date=29 September 2021|website=PostgreSQL Documentation}}</ref> [[Geany]]와 같은 일부 리눅스 IDE는 전통적인 빌드 작업에 그래픽 프런트엔드를 제공하려고 시도한다. 다양한 [[마이크로소프트 윈도우|Microsoft Windows]] 플랫폼에서는 개발을 위한 명령줄 도구가 거의 사용되지 않는다. 따라서 많은 상업용 및 비상업용 제품이 있다. 그러나 각각 다른 디자인을 가지고 있어 일반적으로 호환성 문제를 일으킨다. 윈도우용 대부분의 주요 컴파일러 공급업체는 [[마이크로소프트]] ([[비주얼 C++|Visual C++]], [[플랫폼 SDK]], [[닷넷 프레임워크|Framework]] SDK, [[nmake]] 유틸리티)를 포함하여 명령줄 도구의 무료 복사본을 여전히 제공한다. IDE는 [[Mac OS의 역사|클래식 Mac OS]]와 [[macOS]]를 사용하는 애플 매킨토시에서 1980년대 중반의 [[매킨토시 프로그래머스 워크숍|Macintosh Programmer's Workshop]], [[터보 파스칼|Turbo Pascal]], THINK Pascal 및 [[THINK C]] 환경으로 거슬러 올라가며 항상 인기를 누렸다. 현재 macOS 프로그래머는 [[엑스코드|Xcode]]와 같은 네이티브 IDE와 [[Eclipse (소프트웨어)|Eclipse]], [[넷빈즈|Netbeans]]와 같은 오픈 소스 도구 중에서 선택할 수 있다. [[액티브스테이트 코모도]]는 macOS에서 지원되는 독점 다국어 IDE이다. == 온라인 == {{본문|온라인 통합 개발 환경}} [[온라인 통합 개발 환경]]은 웹 IDE 또는 클라우드 IDE라고도 불리며, [[웹 브라우저]] 기반 IDE로 소프트웨어 개발 또는 웹 개발을 가능하게 한다.<ref>{{웹 인용|title=Web-based vs. desktop-based Tools – EclipseSource |url=http://eclipsesource.com/blogs/2018/06/19/web-based-vs-desktop-based-tools/ |website=eclipsesource.com|date=19 June 2018 }}</ref> 온라인 IDE는 웹 브라우저에서 접근할 수 있어 휴대용 작업 환경을 제공한다. 온라인 IDE는 일반적으로 기존 데스크톱 IDE와 동일한 모든 기능을 포함하지는 않지만, 구문 강조와 같은 모든 기본적인 IDE 기능은 일반적으로 존재한다. 모바일 기반 통합 개발 환경(IDE)은 모바일 플랫폼에서 소프트웨어 개발을 위한 포괄적인 도구 모음을 제공하는 소프트웨어 애플리케이션이다. 기존 데스크톱 IDE와 달리 모바일 기반 IDE는 스마트폰과 태블릿에서 실행되도록 설계되어 개발자가 모바일 장치에서 직접 코드를 작성, 디버그 및 배포할 수 있도록 한다. == 통합 개발 환경의 종류 == {{본문|통합 개발 환경 비교}} == 같이 보기 == {{위키공용분류}} * [[소프트웨어 개발 키트]] * [[고속 개발 도구]] * [[유틸리티 프로그램]] * [[소프트웨어 공학]] * [[컴파일러]] == 각주 == {{각주}} {{통합 개발 환경}} {{위키데이터 속성 추적}} [[분류:통합 개발 환경| ]] [[분류:소프트웨어 공학]]
통합 개발 환경
문서로 돌아갑니다.
검색
검색
통합 개발 환경 문서 원본 보기
새 주제