검수요청.png검수요청.png

소프트웨어 툴

위키원
dltmdgns (토론 | 기여)님의 2021년 7월 27일 (화) 14:00 판 (개요)
이동: 둘러보기, 검색

소프트웨어 툴(Software Tool, Programming Tool)은 소프트웨어 개발자가 다른 프로그램과 응용 프로그램을 만들고 오류를 고치고 유지 보수하는 데에 사용하는 프로그램이나 응용 프로그램이다. 이 용어는 보통 어떠한 작업을 완성할 목적으로 함께 묶을 수 있는 상대적으로 단순한 프로그램을 말한다. 여러 개의 도구로 물리적 객체를 수정할 수 있다.[1]

개요

소프트웨어 툴은 비즈니스 프로세스를 수행 및 조사하고 소프트웨어의 개발 프로세스를 문서화하며 모든 프로세스를 최적화하는 데 사용된다. 소프트웨어 개발 프로세스에서 이러한 도구를 사용하면 프로젝트의 결과가 더 생산적이다. 개발자는 개발 도구를 사용하여 프로젝트의 워크 플로(Workflow)를 쉽게 유지할 수 있다. 워크 플로는 작업 절차를 통한 정보 또는 업무의 이동을 의미하며, 작업 흐름이라고도 부른다. 업무들이 어떻게 구성되고, 누가 수행하며, 순서가 어떻게 되며, 어떻게 동기화를 시킬지, 업무를 지원하기 위한 정보가 어떻게 흐르는지 그리고 업무가 어떻게 추적대는지를 말한다.[2]

소프트웨어

소프트웨어(Software)는 저장장치에 저장된 특정한 목적의 하나 또는 다수의 컴퓨터 프로그램을 뜻한다. 프로그램 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공함으로써, 그것이 수행하도록 구현된 기능을 수행한다. 컴퓨터 소프트웨어는 컴퓨터 하드웨어의 반대 의미로, 하드웨어는 소프트웨어가 실행되고 저장되는 물리적 장치다. 쉽게 설명하자면 생명체를 하드웨어라고 생각하면 되고 그를 구성하는 유전자가 소프트웨어라고 생각하면 된다. 컴퓨터 프로그램을 실행하여 작동 시키는 데에는 응용 소프트웨어에서 명령어를 보내는 과정이 포함되는데, 시스템 소프트웨어를 거쳐 궁극적으로 기계어 명령이 하드웨어에 전달된다. 각각의 명령어데이터를 옮기거나, 계산 결과를 저장하거나, 명령의 흐름을 변경하는 등의 하나의 작업을 수행하도록 한다. [3]

툴 종류

소프트웨어 개발 툴은 언어, 개발 목적에 따라서 다양하게 나뉘어 질 수 있는데, 각 언어마다 사용되는 목적이 존재하고 그에 따라 사용해야할 기능들이 다르기 때문이다. 예를 들어 사이트 개발 소프트웨어는 이클립스, 웹스톰 등이 있지만, 게임 개발에 사용되는 소프트웨어는 유니티 등으로 서로 다른 환경에서 개발이 된다.[4]

이클립스

이클립스(Eclipse)는 컴퓨터 프로그래밍에서 자바(Java) 개발자가 사용하는 가장 인기있는 IDE이다. 자바뿐만 아니라 C, C++, C#, PHP, ABAP 등과 같은 다른 프로그래밍 언어에서도 응용 프로그램을 개발하는 데 사용된다. 이클립스는 새로운 솔루션과 혁신을 개발하는 데 핵심적인 역할을 하는 프로젝트, 도구 및 협업 작업 그룹의 오픈 소스 그룹이다. 이클립스 SDK(Software Development Kit)는 개발자가 각각의 프로그래밍 언어에 따라 프로그래밍에 사용하는 무료 오픈 소스 소프트웨어로, , 데스크톱클라우드 통합 개발 환경(IDE)을 만드는 데 사용되며, 이는 소프트웨어 개발자를 위한 광범위한 추가 도구 모음을 제공한다. 이클립스의 장점은 리팩토링, 코드 완성, 구문 검사, 오류 디버깅, 산업 수준의 개발 등이 있다. 그리고 이클립스를 TestNG, JUnit 및 기타 플러그인과 같은 다른 프레임 워크와 쉽게 통합 할 수 있다.[5]

아톰

아톰(Atom)은 최신이고 친숙하며 핵심까지 해킹 할 수 있는 오픈 소스 및 무료 데스크톱 편집기 겸 소스 코드 편집기다. 아톰은 크로스 플랫폼 편집을 지원하며, 윈도(Windows), 리눅스(Linux) 및 OS와 ​​같은 다양한 운영 체제에서 작동하고, 사용자 인터페이스의 모양과 느낌을 효과적으로 편집하고 구성 파일을 편집하지 않고도 몇 가지 중요한 기능을 추가 할 수 있는 사용자 정의 가능한 도구다. 놀라운 도구가 된 아톰의 중요한 기능은 내장 패키지 관리자, 스마트 자동 완성, 다중 창, 파일 시스템 브라우저, 찾기 및 바꾸기 기능 등이 있다. 아톰은 다음과 같은 프레임 워크를 사용하여 웹 기술로 크로스 플랫폼 애플리케이션을 빌드하는 데 사용된다. [5]

유니티

유니티(Unity)는 3D 및 2D 비디오 게임의 개발 환경을 제공하는 게임 엔진이자, 3D 애니메이션과 건축 시각화, 가상현실(VR) 등 인터랙티브 콘텐츠 제작을 위한 통합 제작 도구이다. 또한 유니티는 윈도, 맥OS, 아이오에스, 안드로이드, 플레이스테이션, 엑스박스, 닌텐도 스위치, 웹 브라우저(WebGL) 등 27개의 플랫폼에서 사용 가능한 콘텐츠를 만들 수 있고, 제작 도구인 유니티 에디터는 윈도와 맥OS를 지원한다. 엔진 자체에 라이트 매핑, 물리 엔진미들웨어를 탑재했으며, 에디터에 내장된 애셋스토어를 통해 다양한 기능의 애셋을 다운로드하여 사용할 수 있다.[6]

델파이

델파이(Embarcadero Delphi)는 조정 가능한 클라우드 서비스와 포괄적인 IoT 연결을 통해 플랫폼 네이티브 애플리케이션을 개발하는 데 사용되는 강력한 개체 파스칼Pascal 통합 개발 환경이다. 델파이는 리눅스, 안드로이드(Android), 아이오에스(iOS), 맥OS, 윈도, IoT 및 클라우드를 위한 강력하고 빠른 기본 앱을 제공하는 데 사용되며, 여러 데이터베이스(Database) 플랫폼, 데스크톱 및 모바일 용 FireUI 미리보기를 사용하여 하이퍼 커넥티드 앱을 설계하는 데 5배나 더 빠르다. 델파이는 RAD(Rapid Application Development)와 네이티브 크로스 컴파일, 시각적 창 레이아웃, 애플리케이션 프레임 워크, 리팩토링 등과 같은 기능을 지원하고, 델파이는 통합 디버깅, 소스 제어, 강력한 데이터베이스, 코드 완성 기능이 있는 코드 편집기, 실시간 오류 검사, 인라인 문서, 최고의 코드 품질, 코드 협업 등을 제공한다. 델파이의 최신 버전에는 Quick Edit 지원, 새로운 VCL 제어, 파이어몽키(FireMonkey), 설치 프로그램, RAD 서버의 멀티 테넌시 지원 등과 같은 기능이 포함되어 있다.[5]

깃허브

깃허브(GitHub)는 코드 검토 및 코드 관리를 위한 강력한 공동 작업 도구 및 개발 플랫폼으로, GitHub를 통해 사용자는 애플리케이션과 소프트웨어를 빌드하고, 프로젝트를 관리하고, 코드를 호스팅하고, 코드를 검토 할 수 있다. 깃허브의 프로젝트 관리 도구는 사용자가 조정 상태를 유지하고 쉽게 조정하며 그에 따라 작업을 완료하는 데 도움이 되고, 깃허브를 유용한 도구로 만드는 몇 가지 기능은 코드 보안, 팀 구성원 간의 액세스 제어, 다른 도구와의 통합 등이다. 개인 프로젝트에서 새로운 프로그래밍 언어를 실험하기 위해 깃허브를 사용하는 개발자는 거의 없다. 깃허브는 서버 및 클라우드 플랫폼에서 호스팅 할 수 있으며, 윈도 및 맥 OS에서 실행되며, 오픈 소스 프로젝트 및 공용으로 무료다.[5]

비트 버킷

비트 버킷(Bitbucket)은 소프트웨어 개발 팀 간의 코드 및 코드 검토의 공동 작업에 사용되는 분산 된 웹 기반 버전 제어 시스템이며, 소스 코드 및 개발 프로젝트의 저장소로도 사용된다. 강력한 도구로 만드는 비트 버킷의 유용한 기능은 유연한 배포 모델, 무제한 개인 저장소, 스테로이드(Steroid)에 대한 코드 공동 작업 등이 있다. 비트 버킷은 코드 검색, 문제 추적, (Git) 대용량 파일 저장소, 비트 버킷 파이프 라인, 통합, 스마트 미러링 등과 같은 몇 가지 서비스를 지원한다. 비트 버킷을 사용하면 목표, 프로세스 또는 제품에 쉽게 집중할 수 있는 프로젝트로 저장소를 구성 할 수 있고, 모든 소프트웨어의 개발 프로세스를 합리화하기 위해 일반적인 워크 플로에 통합 할 수 있다.[5]

엑스코드

엑스코드(Xcode)는 아이오에스 기반의 스위프트(Swift)를 다루는 데에 있어 필수적인 역할을 하는 툴이며, 애플에서 제공하는 코코아 개발용 통합 개발 환경이다. 20여 년에 이를 정도로 역사가 오래된 툴인 만큼 제공하는 기능이 광범위하기 때문에 왠만큼 오래 사용한 파워 유저라 할지라도 모든 기능을 속속들이 알기 어려울 만큼 복잡하고 방대하다. 일반적으로 새로운 아이오에스 버전에 대응하려면 그에 맞는 새로운 엑스코드로 업데이트해야 하기 때문에, 아이오에스 개발자라면 자주 애플 개발자 홈페이지를 방문하여 엑스코드 버전 업데이트 여부를 체크해야 한다.[7]

클라우드9

클라우드9(AWS Cloud9)은 2010년에 C, (Perl), 파이썬(Python), 자바스크립트(JavaScript), PHP 등과 같은 다양한 프로그래밍 언어를 지원하는 오픈 소스 클라우드 기반 통합 개발 환경이였다. 2016 년 후반에 AWS(Amazon Web Service)에서 추가로 인수하여 개선하고 사용량에 따라 청구 가능하게 만들었다. 클라우드9은 클라우드에서 코드를 스크립팅, 실행 및 디버깅 하는 데 사용되는 웹 기반 플랫폼이다. 사용자는 클라우드9을 사용하여 원격 및 로컬 테스트 및 디버깅 활동을 전환하는 데 도움이 되는 서버리스 애플리케이션으로 작업 할 수 있다. 코드 완성 제안, 디버깅, 파일 드래그 등과 같은 기능은 클라우드9을 강력한 도구로 만들고, 클라우드9은 함께 협력하는 데 도움이 되는 웹 및 모바일 개발자를 위한 통합 개발 환경이다. 클라우드9을 사용하는 개발자는 프로젝트 작업 동료와 환경을 공유 할 수 있고, 전체 개발 환경을 복제 할 수 있다.[5]

부트 스트랩

부트 스트랩(Bootstrap)은 CSS, HTML 및 자바스크립트를 사용하여 반응 형 웹 사이트모바일 우선 프로젝트를 개발하기 위한 오픈 소스 및 무료 프레임 워크로, 더 빠르고 간단한 웹 사이트를 디자인하는 데 널리 사용된다. 부트 스트랩은 오픈 소스 툴킷이므로 프로젝트 요구 사항에 따라 맞춤 설정할 수 있고, 스마트 드래그 앤 드롭 기능을 통해 반응 형 웹 사이트를 축적하는 데 사용되는 기본 제공 구성 요소와 함께 제공된다. 반응 형 그리드 시스템, 플러그인, 사전 구축 된 구성 요소, sass 변수 및 믹스 인과 같은 부트 스트랩의 강력한 기능을 통해 사용자는 애플리케이션을 구축 할 수 있다. 부트 스트랩은 아이디어를 빠르게 모델링하고 웹 애플리케이션을 구축하는 데 사용되는 프런트 엔드 웹 프레임 워크로, 프로젝트에서 작업하는 모든 개발자 또는 사용자 간의 일관성을 보장한다.[5]

툴 장단점

소프트웨어 툴은 데이터의 재입력과 재구성 같은 반복 작업의 자동화를 통하여 인력과 시간을 최소화해주고, 빌드확인, 회귀, 다중 플랫폼 호환성, 소프트웨어 구성, 기본 테스트 등의 향상된 품질을 보장한다. 그리고 정적인 측정값과 향상된 요구사항 정의, 성능 등을 최적화 해주고, 성능에 대한 통계와 그래프 등 정보에 대한 쉬운 접근을 제공해준다. 하지만 도입 휴 소프트웨어 툴에 맞는 전문가를 양성 또는 고용이 필요하고, 초기에 프로세스 적용, 도구 사용에 대한 시간, 비용, 노력에 대한 추가 투자가 필요하다. 비공개 상용 소프트웨어의 경우 고가이며, 인력과 교육에 대한 유지, 관리 비용 또한 높다. [8]

프로그래머

프로그래머(Programmer)란 컴퓨터 프로그래밍을 하고 컴퓨터 소프트웨어를 개발하는 사람을 말한다. 프로그래머는 거대한 메인 프레임상의 소프트웨어를 개발 유지하기도 한다. 이 같은 의미에서 프로그래머는 소프트웨어 공학자 또는 소프트웨어 개발자, 소프트웨어 엔지니어로 간주할 수 있다. 컴퓨터 프로그래밍 기술에 능숙한 사람들은 유명세를 타기도 하지만, 이러한 관심은 보통 소프트웨어 공학자 집단으로 국한된다. 많은 저명한 프로그래머들이 종종 '해커'라는 명칭으로 불린다. 프로그래머는 다양한 형태를 가지고, 전문 프로그래머는 보통 IT 분야의 큰 회사나 작은 서비스 업체에서 일한다. IT 프로그래머는 보통 IT 분야의 회사에서 일하며 프로그램을 만든다. 베타 테스터들에게 첫 시험판을 주어 오류가 나는지 살필 수 있다. 그 다음 오류가 나지 않으면 그것을 알파 버전으로 한정적으로 판매할 수 있고, 사용자들 에게도 문제가 일어나지 않으면 그것을 정식 버전으로 판매할 수 있다. 많은 사람들은 가벼운 프로그램만 개발한다고 생각하고 아주 적게 공부해도 들어가도 되는 것으로 여기지만 사실은 아주 많은 컴퓨터 언어들과 함께 다른 것들도 공부하여야 한다.[9]

각주

  1. 프로그래밍 도구〉, 《위키백과》
  2. 워크 플로〉, 《위키백과》
  3. 소프트웨어〉, 《위키백과》
  4. TOPCIT, 〈소프트웨어 개발 Tool! 모두 모여라!〉, 《네이버 블로그》, 2015-01-26
  5. 5.0 5.1 5.2 5.3 5.4 5.5 5.6 20 BEST 소프트웨어 개발 도구 (2021 랭킹)〉, 《myservername.com》
  6. 유니티 (게임 엔진)〉, 《위키백과》
  7. 꼼꼼한 재은씨, 〈실전편 학습을 위한 Xcode의 구조와 활용 - 1. Xcode의 각 영역과 명칭〉, 《네이버 블로그》, 2017-07-06
  8. CODEDRAGON, 〈테스트 도구의 장단점〉, 《티스토리》
  9. 프로그래머〉, 《위키백과》

참고자료

같이 보기


  검수요청.png검수요청.png 이 소프트웨어 툴 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.