- 통합 개발 환경은 코딩, 디버그, 컴파일, 배포 등 프로그램 개발과 관련된 모든 작업을 하나의 프로그램에서 처리할 수 있도록 제공하는 소프트웨어적인 개발 환경을 말한다.
- 기존 소프트웨어 개발에서는 편집기(Editor), 컴파일러(Compiler), 디버거 (Debugger) 등의 다양한 툴을 별도로 사용했으나 현재는 하나의 인터페이스로 통 합하여 제공한다.
- 통합 개발 환경 도구는 통합 개발 환경을 제공하는 소프트웨어를 의미한다.
- 통합 개발 환경을 지원하는 도구는 플랫폼, 운영체제, 언어별로 다양하게 존재하며, 대표적인 도구는 다음과 같다.
프로그램 개발사 플랫폼 운영체제 지원 언어 이클립스(Eclipse) Eclipse Foundation, IBM 크로스 플랫폼 Windows, Linux, MacOS 등 Java, C, C++, PHP, JSP,Python 등 비주얼 스튜디오 (Visual Studio) Microsoft Win32, Win64 Windows Basic, C, C++, Python 등 엑스 코드(Xcode) Apple Mac, iPhone MacOS, iOS C, C++, C#, Java, Python, AppleScript 등 안드로이드 스튜디오(Android Studio) Android Windows, Linux, MacOS Java, C, C++ IDEA JetBrains(이전 IntelliJ) 크로스 플랫폼 Windows, Linux, MacOS Java, JSP, XML, Go, Kotlin, PHP 등
코딩(Coding) C, JAVA, Python 등의 프로그래밍 언어로 프로그램을 작성하는 기능이다. 컴파일 (Compile) 개발자가 작성한 고급 언어로 된 프로그램을 컴퓨터가 이해할 수 있는 목적 프로그램으로 번역하여 컴퓨터에서 실행 가능한 형태로 변환하는 기능이다. 디버깅(Debugging) 소프트웨어나 하드웨어의 오류나 잘못된 동작, 즉 버그(Bug)를 찾아 수정하는 기능이다. 배포(Deployment) 소프트웨어를 사용자에게 전달하는 기능이다.
- 빌드는 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물을 말한다.
- 빌드 도구는 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리(Preprocessing), 컴파일(Compile) 등의 작업들을 수행하는 소프트웨어를 말한다.
- 대표적인 도구로는 Ant, Maven, Gradle 등이 있다.
Ant(Another Neat Tool) - 아파치 소프트웨어 재단(Apache Software Foundation)에서 개발한 소프트웨어로 자바프로젝트의 공식적인 빌드 도구로 사용되고 있다.
- XML 기반의 빌드 스크립트를 사용하며, 자유도와 유연성이 높아 복잡한 빌드 환경에도 대처가 가능하다.
- 정해진 규칙이나 표준이 없어 개발자가 모든 것을 정의하며 스크립트의 재사용이 어렵다.Maven - Ant와 동일한 아파치 소프트웨어 재단에서 개발된 것으로 Ant의 대안으로 개발되었다.
- 규칙이나 표준이 존재하여 예외 사항만 기록하면 되며, 컴파일과 빌드를 동시에 수행할 수 있다.
- 의존성(Dependency)을 설정하여 라이브러리를 관리한다.Gradle - 기존의 Ant와 Maven을 보완하여 개발된 빌드 도구이다.
- 한스 도커(Hans Docker) 외 6인의 개발자가 모여 공동 개발하였다.
- 안드로이드 스튜디오의 공식 빌드 도구로 채택된 소프트웨어이다.
- Maven과 동일하게 의존성을 활용하며 그루비(Groovy) 기반의 빌드 스크립트를 사용한다.
- 협업 도구는 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도와주는 도구(Tool)로, 협업 소프트웨어, 그룹웨어(Groupware) 등으로도 불린다.
- 협업 도구의 종류
프로젝트 및 일정 관리 - 전체 프로젝트와 개별 업무들의 진행 상태, 일정 등을 공유하는 기능을 제공한다.
- 종류: 구글 캘린더(Google Calendar), 분더리스트(Wunderlist), 트렐로(Trello), 지리(Jira), 플로우(Flow) 등정보공유 및 커뮤니케이션 - 주제별로 구성원들을 지목하여 방을 개설한 후 정보를 공유하고 대화하는 것이 가능하다.
- 파일 관리가 간편하고 의사소통이 자유로운 것이 특징이다.
- 종류: 슬랙(Slack), 잔디(Jandi), 태스크월드(Taskworld) 등디자인 - 디자이너가 설계한 UI나 이미지의 정보들을 코드화하여 개발자에게 전달하는 기능을 제공한다.
- 종류: 스케치(Sketch), 제플린(Zeplin) 등기타 - 아이디어 공유에 사용되는 에버노트(Evernote)
- API를 문서화하여 개발자들 간 협업을 도와주는 스웨거(Swagger)
- 깃(Git)의 웹호스팅 서비스인 깃허브(GitHub)
출처: 2024 시나공 정보처리기사 필기 기본서