티스토리 뷰



프로그램 개발을 시작하면서 어떤 프로그램을 어떻게 만들것인지를 결정하는 기획 및 설계 단계도 중요하겠지만 잘 드러나지 않는 매우 중요한 성공 요소는 프로그램 개발을 위한 도구의 선정에 있습니다. 개발 조직이 사용하는 도구가 표준화되어 있어 오랜 기간 지속적인 사용으로 이미 익숙한 상태라면 별도의 논의가 필요없을 수도 있지만 이런 조직의 경우에도 프로젝트 시작 이전에 코딩 스타일 표준화를 위한 도구 설정법과 생산성있는 작업을 위한 Tech Tip 나눔의 시간을 가질 필요성이 있습니다. 또한, 도구는 지속적으로 발전하고 있으므로 주기적으로 도구 사용에 관련한 토론의 시간을 가지고 내부 위키 저장소나 KMS(Knowledge Management System)에 관련 내용을 정리해 놓아서 팀원들이 수시로 관련 내용을 쉽게 접할 수 있도록 해야 합니다.

도구가 표준화되어 있지 않은 경우라면 어떤 도구를 사용해야 될지 면밀한 검토가 필요합니다. 시장은 이미 개발자 중심으로 재편되고 있습니다. 예전에 상용으로 제공되었던 개발도구가 오픈소스로 기업에서도 제한 없이 무료로 사용할 수 있게 되었고, 윈도우, 리눅스, 스마트폰등 플랫폼 종속적이던 개발 도구의 한계도 허물어지고 있습니다. 이번 포스팅에서는 통합 개발 환경 선택을 위한 고려 요소에는 무엇이 있는지 간단하게 정리해 보고 대표적인 통합 개발 환경들의 현재 상황을 살짝 살펴 본 다음 넷빈즈 설치까지 진행해 볼까 합니다.


■ 통합 개발 환경 선택을 위한 고려 요소

결론을 먼저 말씀드리면 아래에 나열하는 고려요소들은 개발자들이 많이 사용하는 통합 개발 환경에는 이미 채용되어 있는 경우가 대부분입니다. 서로 벤치마킹하고 개발자들의 요구에 따라 기능이 추가되고 하면서 도구들의 수준이 고르게 향상되었다고 보여집니다. 결과적으로 개발자는 이미 만들어져 있는 도구의 좋은 기능들을 잘 찾아서 사용하는 것이 필요하다는 것이겠지요.

  • 편리한 텍스트 에디터 
    컬럼 가이드 : 프로젝트에 따라 라인 폭을 일정한 크기로 제한하는 경우가 있는데 미리 설정한 컬럼으로 가이드 표시
    자동 완성 기능과 멤버 자동 추천 기능 : 클래스 멤버를 자동 추천하거나, 입력 문자를 기반으로 자동 완성 
    수직 선택 및 편집 기능 : 대량 편집시 매우 유용한 기능으로 행단위 선택이 아니라 수직으로 선택 및 편집하는 기능
    다양한 레벨의 검색 및 치환 기능 : 선택영역>현재문서>프로젝트 내 전체 문서 등 레벨을 지정하여 검색 및 치환
    문법에 따른 색 구분 표시 : 사용하는 프로그래밍 언어의 기본 문법을 인식하여 문법 단위별로 색을 구분해서 표시
    소프트 탭/하드 탭과 인덴테이션 지원 : 설정에 따라 자동 인덴테이션(Indentation, 들여쓰기)
  • 소스 레벨 디버깅 지원
    안정적인 프로그램 개발을 위한 필수 도구 중의 하나가 디버거(Debugger)입니다. 
    소스 레벨로 멈춤 설정이나 라인 단위 실행 등이 가능한지 확인해야 하고 
    실행중인 프로그램을 디버깅 할 수 있는지, 덤프가 발생한 경우 해당 덤프로 소스 레벨 분석이 가능한지 등을 살펴보아야 합니다.
  • 소스간의 편리한 이동
    정의된 곳으로 이동, 참조하고 있는 모든 곳 등 소스 분석 기반의 이동 기능
  • 형상 관리 도구 연동
    협업을 위하여 Subversion, git와 같은 형상 관리 도구와 연동을 지원하는지 확인합니다.
  • 사용 언어 및 프레임워크에 최적화 되었는지
    통합 개발 환경이 다양한 언어와 플랫폼을 지원하도록 진화하고는 있지만 각 도구별로 특정 언어에 최적화되어 있음은 부정할 수 없는 현실이므로 선택하는 언어와 시스템 환경에 따라 도구를 선택할 필요가 있습니다.
    http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments 를 참조하면 언어별로 다양한 통합 개발 환경이 존재함을 확인할 수 있을 것입니다.


■ 통합 개발 환경의 현재

대부분의 통합 개발 환경이 특정 프로그래밍 언에 최적화되어 있다면 몇몇 통합 개발 환경은 다양한 언어 및 환경을 사용할 수 있도록 발전해 왔는데 대표적인 것이 마이크로소프트사의 비주얼스튜디오입니다. 프로그래밍 언어별로 분리해서 판매하기도 했으나 최근에는 닷넷 환경의 C#, VB, C++ 뿐만 아니라 웹 환경의 Javascript와 HTML5를 지원하고 있고 Python도 지원하는 Visual Studio Community 2013을 무료로 사용할 수 있도록 배포하고 있습니다.(VSC 2015도 배포중) 놀라운 점은 https://www.visualstudio.com/products/visual-studio-community-vs 를 참조해 보면 비주얼스튜디오를 가지고 윈도우용 프로그램을 만들 수 있을 뿐만아니라 안드로이드 및 아이폰용 앱도 개발할 수 있다는 것입니다. 기업에서도 오픈소스 프로젝트를 개발하거나 학술 연구나 강의실에 설치하는 경우에는 무료로 사용할 수 있고 개인의 경우에는 아무런 제약이 없다는 점도 인상적입니다. 


오픈 소스 진영의 발전이 마이크로소프트의 변화를 가져오지 않았나 하는 생각도 있지만, 이러한 치열한 경쟁속에서 오픈 소스 진영의 도구들이 살아남을 수 있을까 하는 생각이 드는 것도 사실입니다. VSC 2013이 윈도우 7 이상에서만 사용할 수 있음은 XP 사용자에게는 슬픈 소식이겠네요. 비주얼스튜디오로 윈도우 응용 뿐만아니라 안드로이드와 아이폰용 앱을 만들수 있다는 것도 인상적이지만 비주얼스튜디오 자체를 윈도우 운영체제가 아닌 리눅스와 맥에서도 사용할 수 있다는 점은 참으로 격세지감입니다.

비주얼 스튜디오와 함께 대표적인 범용 통합 개발 환경의 대표 주자는 뭐니뭐니해도 이클립스(https://eclipse.org/downloads/) 일것입니다. 처음에는 Java 개발 환경으로 개발자들이 선택했으나 점차 활용 영역을 C, PHP를 비롯한 다양한 영역으로 확대했습니다. 구글의 경우에는 안드로이드 개발 환경(ADT)을 이클립스를 기반으로 개발하여 배포하고 있습니다.



마지막으로 다루어볼 통합 개발 환경은 넷빈즈(https://netbeans.org/)입니다. 이클립스 처럼 자바 기반으로 개발된 도구이지만 이클립스가 온전히 오픈소스 프로젝트로 발전해 왔다면 넷빈즈는 Sun사에게 개발하고 현재는 Sun을 인수한 오라클사에서 관리하고 있습니다. 자바 환경을 만든 제작사에서 개발한 통합 개발 환경이라 그런지 몰라도 이클립스와는 약간 다른 느낌이고 오픈소스이고 사용에 제약이 없다는 점 또한 매력입니다.


위의 그림에서도 확인할 수 있듯이 넷빈즈 또한 자바외에도 C/C++과 HTML5 및 PHP를 지원하는 확장성을 보이고 있습니다.


■ 넷빈즈 설치

넷빈즈(NetBeans)는 위의 그림에서 확인 할 수 있는 것처럼 언어나 환경에 따라 별도의 설치 파일을 배포하고 있습니다. 언어별로 미리 다양한 설정이 준비된 형태로 배포하므로 개발 환경에 따라 적절한 설치 파일을 선택하는 것이 좋습니다.

넷빈즈는 자바 환경에서 사용할 수 있는 도구인데 C나 PHP 프로그램을 개발하는 경우라면 자바 컴파일러가 필요없으므로 자바 가상머신(JRE)만 설치되어 있으면 되지만 Java 프로그램 개발을 위해서는 JDK(자바 개발 환경)를 미리 설치해 두어야 합니다(http://www.oracle.com/technetwork/java/javase/downloads/index.html 에서 자바 환경 다운로드 가능)

파일을 다운로드 받아 설치한 다음에는 자동 업데이트를 수행하며 필요에 따라 아래의 그림과 같이 다양한 플러그인을 설치할 수 있습니다.



댓글
댓글쓰기 폼
«   2022/12   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함