통합 개발 환경

Integrated development environment

IDE(Integrated Development Environment)는 소프트웨어 개발을 위해 컴퓨터 프로그래머에게 포괄적인 기능을 제공하는 소프트웨어 애플리케이션입니다.IDE는 보통 적어도 소스 코드 편집기, 빌드 자동화 도구 및 디버거로 구성됩니다.NetBeans나 Eclipse 같은 IDE에는 필요한 컴파일러, 인터프리터 또는 둘 다 포함되어 있는 것도 있고 Sharp Develope나 Lazarus 같은 IDE에는 포함되어 있지 않은 것도 있습니다.

IDE와 광범위한 소프트웨어 개발 환경의 다른 부분 간의 경계가 명확하지 않습니다. 경우에 따라 버전 관리 시스템이나 그래픽 사용자 인터페이스(GUI) 구축을 단순화하는 다양한 도구가 통합될 수 있습니다.또한 현대의 많은 IDE에는 객체 지향 소프트웨어 개발사용하기 위한 클래스 브라우저, 객체 브라우저 및 클래스 계층 다이어그램이 있습니다.

개요

내장 자동 완료 및 외부 플러그인 보풀이 포함된 VIM

통합 개발 환경은 유사한 사용자 인터페이스를 갖춘 긴밀한 컴포넌트를 제공함으로써 프로그래머의 생산성을 극대화할 수 있도록 설계되었습니다.IDE는 모든 개발이 이루어지는 단일 프로그램을 제공합니다.이 프로그램은 일반적으로 소프트웨어의 작성, 수정, 컴파일, 전개 및 디버깅을 위한 많은 기능을 제공합니다.이는 vi, GDB, GCC, make관련 없는 툴을 사용한 소프트웨어 개발과는 대조적입니다.

IDE 의 목적 중 하나는, 복수의 개발 유틸리티를 조합하기 위해서 필요한 설정을 줄이는 것입니다.대신 하나의 통합 유닛과 동일한 기능을 제공합니다.셋업 시간을 단축하면 개발자의 생산성이 향상됩니다.특히 IDE 사용법을 배우는 것이 모든 툴을 수동으로 통합하여 학습하는 것보다 빠를 경우 더욱 그렇습니다.모든 개발 태스크를 보다 긴밀하게 통합함으로써 단순히 셋업 태스크를 지원하는 것 이상의 전체적인 생산성을 향상시킬 수 있습니다.예를 들어 코드를 편집하는 동안 지속적으로 구문 분석하여 구문 오류가 발생했을 때 즉각적인 피드백을 제공할 수 있으므로 개발자는 IDE를 사용하여 훨씬 빠르고 쉽게 코드를 디버깅할 수 있습니다.

일부 IDE는 특정 프로그래밍 언어 전용이므로 해당 언어의 프로그래밍 패러다임에 가장 가까운 기능 세트를 사용할 수 있습니다.그러나 다국어 IDE가 많이 있습니다.

대부분의 최신 IDE는 그래픽 방식이지만 Microsoft Windows 및 X Window System(X11)과 같은 윈도우 시스템이 출시되기 전에는 Turbo Pascal과 같은 텍스트 기반 IDE가 널리 사용되었습니다.일반적으로 기능 키 또는 단축키를 사용하여 자주 사용하는 명령 또는 매크로를 실행합니다.

역사

GNU Emacs: Unix 계열 시스템에서 IDE로 일반적으로 사용되는 확장 가능한 편집기

IDE는 처음에는 콘솔 또는 단말기를 통해 개발할 때 사용할 수 있게 되었습니다.초기 시스템에서는 프로그램이 플로우차트를 사용하여 준비되었기 때문에 컴파일러에 제출하기 전에 천공된 카드(또는 종이 테이프 등)로 프로그램을 입력할 수 없었습니다.Dartmouth BASIC은 IDE로 작성된 최초의 언어입니다(또한 콘솔 또는 [citation needed]터미널 앞에 앉아 사용할 수 있도록 설계된 최초의 언어이기도 합니다).IDE(Dartmouth Time Sharing System의 일부)는 명령어 기반이었기 때문에 그래피컬 사용자 인터페이스가 등장한 이후 널리 보급된 메뉴 기반 그래픽 IDE와 많이 닮지 않았습니다.그러나 편집, 파일 관리, 컴파일, 디버깅 및 실행을 최신 IDE와 일관되게 통합했습니다.

Maestro I은 Softlab Munich의 제품으로 세계 최초의 소프트웨어 통합 개발 환경입니다[1].마에스트로 1세는 전 세계 22,000명의 프로그래머를 위해 설치되었습니다.1989년까지 독일 연방 공화국에는 6,000개의 설비가 존재했습니다.Maestro는 1970년대와 1980년대에 이 분야에서 거의 틀림없이 세계적인 리더였다.오늘날 나는 텍사스 알링턴에 있는 정보 기술 박물관에서 마지막 마에스트로 1을 찾을 수 있다.

플러그인 컨셉의 최초의 IDE 중 하나는 Softbench였습니다.1995년 Computerwoche는 IDE의 사용은 그들의 창의성을 방해하기 때문에 개발자들에게 좋은 반응을 얻지 못했다고 논평했다.

2021년 1월 현재 다운로드 페이지가 가장 많이 검색되는 IDE는 Visual Studio, EclipseAndroid [2]Studio입니다.

토픽

구문 강조 표시

IDE 에디터는 일반적으로 구문 강조 표시를 제공하며, 구조, 언어 키워드 및 구문 오류를 시각적으로 구별되는 색상과 글꼴 [3]효과로 모두 표시할 수 있습니다.

코드 완성

코드 완성은 프로그래밍 속도를 높이기 위한 중요한 IDE 기능입니다.최신 IDE는 인텔리전트한 코드 완성 기능까지 갖추고 있습니다.

리팩터링

고도의 IDE는 자동 [3]리팩터링을 지원합니다.

버전 관리

IDE는 소스 [3]저장소와 상호 작용하기 위해 통합 버전 제어를 제공해야 합니다.

디버깅

또한 IDE는 디버깅, 통합 디버거 사용, 에디터에서의 중단점 설정, 스텝의 시각적 렌더링 [4]등에 사용됩니다.

코드 검색

IDE는 코드 검색을 지원할 수 있습니다.코드 검색에는 두 가지 다른 의미가 있습니다.첫째, 클래스 및 함수 선언, 사용, 변수 및 필드 읽기/쓰기 등을 검색하는 것을 의미합니다.IDE는 폼 기반[5] 위젯 및 자연 언어 기반 인터페이스 [6]등 다양한 종류의 사용자 인터페이스를 코드 검색에 사용할 수 있습니다.둘째, 특정 기능의 구체적인 구현을 찾는 것을 의미합니다.이것은 형식적인 기술이나[8] 신경적인 기술 둘 다로[7] 이루어질 수 있다.

비주얼 프로그래밍

비주얼 프로그래밍은 일반적으로 IDE가 필요한 사용 시나리오입니다.Visual Basic을 사용하면 프로그래밍, 빌딩 블록 또는 코드 노드를 이동하여 흐름도 또는 구조도를 만들고 컴파일 또는 해석할 수 있습니다.이러한 흐름도는 많은 경우 Unified Modeling Language를 기반으로 합니다.

이 인터페이스는 Lego Mindstorms 시스템과 함께 대중화되어 Mozilla에서 발견된 것과 같은 커스텀 브라우저의 힘을 활용하고자 하는 많은 회사들에 의해 활발하게 사용되고 있다.KTechlab은 플로우코드를 지원하며 마이크로컨트롤러용 소프트웨어 개발을 위한 인기 오픈소스 IDE와 시뮬레이터다.또한 시각적 프로그래밍은 분산 프로그래밍의 성능을 담당합니다(cf).LabVIEWEICASLAB 소프트웨어).초기 비주얼 프로그래밍 시스템인 Max는 아날로그 신시사이저 디자인을 본떠 1980년대부터 실시간 음악 퍼포먼스 소프트웨어를 개발하는 데 사용되어 왔다. 다른 초기 예는 원래 Macintosh용으로 개발된 데이터 흐름 기반 시스템인 Programaph입니다.그래픽 프로그래밍 환경 "Grape"는 qfix 로봇 키트를 프로그래밍하는 데 사용됩니다.

이 접근방식은 Openlab과 같은 전문 소프트웨어에서도 사용됩니다.이 소프트웨어에서는 최종 사용자는 기존의 프로그래밍 언어에 얽매이지 않고 완전한 프로그래밍 언어의 유연성을 원합니다.

언어 지원

일부 IDE는 C 및 Emacs Lisp 기반의 GNU Emacs, Java 기반IntelliJ IDEA, Eclipse, MyEclipse 또는 NetBeans, C# 기반의 MonoDevelope, PlayCode 등의 여러 언어를 지원합니다.

대체 언어에 대한 지원은 대부분의 경우 플러그인을 통해 제공되므로 동일한 IDE에 동시에 설치할 수 있습니다.를 들어 Flycheck는 GNU Emacs 24의 최신 온 더 플라이 구문 검사 확장으로 39개 언어를 [9]지원합니다.Eclipse 및 Netbeans에는 C/C++, Ada, GNAT(예를 들어 AdaGide), Perl, Python, Ruby PHP용 플러그인있으며 파일 확장자, 환경 또는 프로젝트 설정에 따라 자동으로 선택됩니다.

다양한 컴퓨팅 플랫폼에서의 태도

Unix 프로그래머명령줄 POSIX 도구를 완전한 개발 환경에 결합할 수 있으며 Linux 커널 및 그 [10]환경과 같은 대규모 프로그램을 개발할 수 있습니다.그런 의미에서 Unix 시스템 전체가 [11]IDE로 기능합니다.무료 소프트웨어 GNU 툴(GNU 컴파일러 컬렉션(GCC), GNU 디버거(GDB) GNU 메이커)는 Windows를 [12]포함한 많은 플랫폼에서 사용할 수 있습니다."모든 것은 텍스트 스트림"이라는 Unix의 이념에 따라 명령줄 지향 툴을 선호하는 개발자는 표준 Unix 및 GNU 빌드 도구의 많은 지원을 통해 편집기를 사용할 수 있으며 Emacs 또는 Vim과 같은 프로그램[13][14][15] 사용하여 IDE를 구축할 수 있습니다.Data Display Debugger는 많은 텍스트 기반 디버거 표준 도구의 고급 그래픽 프런트 엔드로 사용됩니다.일부 프로그래머는 완전한 IDE에 포함된 유사한 코드 빌드 도구보다 makefile과 그 파생 파일을 관리하는 것을 선호합니다.예를 들어, Postgre의 대부분의 기고자들은SQL 데이터베이스는 make 및 GDB를 직접 사용하여 새로운 [16]기능을 개발합니다.Postgre를 만들 때도Visual C++사용하는 Microsoft Windows용 SQL Perl 스크립트는 IDE 기능에 [17]의존하지 않고 make를 대체하기 위해 사용됩니다.Geany와 같은 일부 Linux IDE는 기존 빌드 작업에 그래픽 프런트 엔드를 제공하려고 합니다.

다양한 Microsoft Windows 플랫폼에서는 개발용 명령줄 도구가 거의 사용되지 않습니다.따라서 상업용과 비상업용 제품이 많이 있습니다.단, 각각 다른 설계를 가지고 있기 때문에 일반적으로 비호환성이 발생합니다.Microsoft(Visual C++, Platform SDK, .NET Framework SDK, nmake 유틸리티)를 포함한 대부분의 Windows용 컴파일러 벤더는 여전히 명령줄 도구의 무료 복사본을 제공합니다.

IDE는 1980년대 중반의 Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal 및 THINK C 환경에서부터 Apple Macintosh의 클래식 Mac OS 및 MacOS에서 항상 인기를 끌었습니다.현재 macOS 프로그래머는 Xcode와 같은 네이티브 IDE와 이클립스 Netbeans와 같은 오픈 소스 도구 중에서 선택할 수 있습니다.ActiveState Komodo는 macOS에서 지원되는 독자적인 다국어 IDE입니다.

인공지능

IDE의 일부 기능은 [18]AI의 발전으로 혜택을 볼 수 있다.특히 IDE [19]기능을 강화하기 위해 개발자 간에 IDE 작업으로부터 정보를 수집할 수 있습니다.예를 들어 코드 완성에 대한 데이터 중심 접근 방식은 지능형 코드 완성을 가져옵니다.

온라인.

통합 개발 환경(Web IDE)은 온라인 IDE 또는 클라우드 IDE라고도 하며 소프트웨어 개발 또는 웹 [20]개발을 허용하는 브라우저 기반 IDE입니다.Web IDE 는, 휴대 가능한 작업 환경을 가능하게 하는 Web 브라우저에서 액세스 할 수 있습니다.웹 IDE에는 일반적으로 기존의 IDE 또는 데스크톱 IDE와 동일한 기능이 모두 포함되어 있지는 않지만 구문 강조 표시 등의 기본적인 IDE 기능은 모두 포함되어 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Computerwoche(독일)Interaktives Programmieren als Systems-Schlager
  2. ^ "TOP IDE Top Integrated Development Environment index". pypl.github.io.
  3. ^ a b c "Course CS350 Integrated Development Environments". cs.odu.edu. Old Dominion University. Retrieved 10 October 2018.
  4. ^ "Programming software and the IDE". BBC Bitesize. Retrieved 10 October 2018.
  5. ^ "Eclipse Cookbook - Searching Code". O’Reilly.
  6. ^ Kimmig, Markus; Monperrus, Martin; Mezini, Mira (2011). "Querying source code with natural language". 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011). pp. 376–379. arXiv:1205.6361. doi:10.1109/ASE.2011.6100076. ISBN 978-1-4577-1639-3. S2CID 6898947.
  7. ^ Stolee, Kathryn T.; Elbaum, Sebastian; Dobos, Daniel (2014). "Solving the Search for Source Code". ACM Transactions on Software Engineering and Methodology. 23 (3): 1–45. doi:10.1145/2581377. ISSN 1049-331X.
  8. ^ Gu, Jian; Chen, Zimin; Monperrus, Martin (2021). "Multimodal Representation for Neural Code Search". 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME). Luxembourg: IEEE: 483–494. doi:10.1109/ICSME52107.2021.00049. ISBN 978-1-6654-2882-8.
  9. ^ "Introduction - Flycheck 0.18-cvs". Read the Docs. Archived from the original on 10 March 2014. Retrieved 10 March 2014.
  10. ^ 레만, 크리스토퍼 폴, 크리스토퍼 R. 폴"Linux 개발 플랫폼: 완전한 프로그래밍 환경 구성, 사용 및 유지보수"2002. ISBN 0-13-009115-4
  11. ^ "UnixIsAnIde".
  12. ^ ""Use Emacs with Microsoft Visual C++ ... use Emacs as an IDE"". Archived from the original on 4 July 2013.
  13. ^ "Emacs: the Free Software IDE Linux Journal". www.linuxjournal.com.
  14. ^ "The Common Lisp Cookbook - Using Emacs as a Lisp IDE". cl-cookbook.sourceforge.net.
  15. ^ "Emacs as a Perl IDE". obsidianrook.com.
  16. ^ PostgreSQL "Developer FAQ - PostgreSQL wiki". wiki.postgresql.org. {{cite web}}:확인. url=(도움말)
  17. ^ "Chapter 18. Installation from Source Code on Windows". PostgreSQL Documentation. 29 September 2021.
  18. ^ Williams, Christina Mercer & Hannah. "AI tools all developers need to try". Techworld.
  19. ^ Bruch, Marcel; Bodden, Eric; Monperrus, Martin; Mezini, Mira (7 November 2010). IDE 2.0: collective intelligence in software development. FoSER '10. pp. 53–58. doi:10.1145/1882362.1882374. ISBN 9781450304276. S2CID 7637561.
  20. ^ "Web-based vs. desktop-based Tools – EclipseSource". eclipsesource.com. 19 June 2018.