개발 지원 도구

clay·2023년 2월 6일
0

소프트웨어 개발

목록 보기
11/47
post-thumbnail

통합 개발 환경(IDE, Integrated Development Environment)

통합 개발 환경은 코딩, 디버그, 컴파일, 배포 등 프로그램 개발과 관련된 모든 작업을 하나의 프로그램에서 처리할 수 있도록 제공하는 소프트웨어적인 개발 환경을 말한다.

  • 기존 소프트웨어 개발에서는 편집기(Editor), 컴파일러(Compiler), 디버거(Debugger) 등의 다양한 툴을 별도로 사용했으나 현재는 하나의 인터페이스로 통합하여 제공한다.
  • 통합 개발 환경 도구는 통합 개발 환경을 제공하는 소프트웨어를 의미한다.
  • 통합 개발 환경을 지원하는 도구는 플랫폼, 운영체제, 언어별로 다양하게 존재하며, 대표적인 도구는 다음과 같다.
프로그램개발사플랫폼운영체제지원언어
이클립스(Eclipse)Eclipse Foundation, IBM크로스 플랫폼Windows, Linux, MacOS 등Java, C, C++, PHP, JSP 등
비주얼 스튜디어(Visual Studio)MicrosoftWin32, Win64WindowsBasic, C, C++, C#, .NET 등
엑스 코드(Xcode)AppleMac, iPhoneMacOS, iOSC, C++, C#, Java, AppleScript 등
안드로이드 스튜디어(Android Studio)GoogleAndroidWindows, Linux, MacOSJava, C, C++
IDEAJetBrains크로스 플랫폼Windows, Linux, MacOSJava, JSP, XML, Go, Kotlin, PHP 등
  • 통합 개발 환경 도구의 대표적인 기능은 다음과 같다.

코딩(Coding)
C, JAVA 등의 프로그래밍 언어로 프로그램을 작성하는 기능이다.

컴파일(Compile)
개발자가 작성한 고급 언어로 된 프로그램을 컴퓨터가 이해할 수 있는 목적 프로그램으로 번역하여 컴퓨터에서 실행 가능한 형태로 변환하는 기능

디버깅(Debugging)
소프트웨어나 하드웨어의 오류나 잘못된 독작, 즉 버그를 찾아 수정하는 기능이다.

배포(Deployment)
소프트웨어를 사용자에게 전달하는 기능이다.

빌드 도구

빌드는 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물을 말한다.

  • 빌드 도구는 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리(Preprocessing), 컴파일 등의 작업들을 수행하는 소프트웨어를 말한다.
전처리(Preprocessing)
컴파일에 앞서 코드에 삽인된 주석을 제거하거나 매크로들을 처리하는 과정
  • 대표적인 도구로는 Ant, Maven, Gradle 등이 있다.

Ant(Another Neat Tool)

  • 아파치 소프트웨어 재단에서 개발된 소프트웨어로 자바 프로젝트의 공식적인 빌드 도구로 사용되고 있다.

Maven

  • Ant와 동일한 아파치 소프트웨어 재단에서 개발된 것으로, Ant의 대안으로 개발되었다.
  • 규칙이나 표준이 존재하여 예외 사항만 기록하면 되며, 컴파일과 빌드를 동시에 수행할 수 있다.
  • 의존성(Dependency)을 설정하여 라이브러리를 관리한다.

Gradle

  • 기존의 Ant와 Maven을 보완하여 개발된 빌드 도구이다.
  • 한스 도커 외 6인의 개발자가 모여 공동 개발하였다.
  • 안드로이드 스튜디오의 공실 빌드 도구로 채택된 소프트웨어이다.
  • Maven과 동일하게 의존성을 활용하여, 그루비 기반의 빌드 스크립트를 사용한다.

기타 협업 도구

협업 도구는 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도와주는 도구로, 협업 소프트웨어, 그룹웨어 등으로 불린다.

  • 협업 도구의 종류

프로젝트 및 일정 관리

  • 전체 프로젝트와 개별 업무들의 진행 상태, 일정 등을 공유하는 기능을 제공한다.
  • 종류: 구글 캘린더, 분더리스트, 트렐로, 지라, 플로우 등

정보 공유 및 커뮤니케이션

  • 주제별로 구성원들을 지목하여 방을 개설한 후 정보를 공유하고 대화하는 것이 가능하다.
  • 파일 관리가 간편하고, 의사소통이 자유로운 것이 특징이다.
  • 종류: 슬랙, 잔디, 태스크월드

디자인

  • 디자이너가 설계한 UI나 이미지의 정보들을 코드화하여 개발자에게 전달하는 기능을 제공한다
  • 종류: 스케치, 제플린 등

기타

  • 아이디어 공유에 사용되는 에버노트
  • API를 문서화하여 개발자들 간 협업을 도와주는 스웨거
  • 깃의 웹호스팅 기능인 깃허브
profile
샤코타임 팬

0개의 댓글