본문 바로가기
CS

[CS] About IDE

by unknownomad 2022. 3. 2.

1. 정의

  • Integrated Development Environment (통합 개발 환경)
  • 공통된 개발자 툴을 하나의 그래픽 사용자 인터페이스(Graphical User Interface, GUI)로 결합하는 애플리케이션을 구축하기 위한 소프트웨어

 

2. 구성 요소

2.1. 소스 코드 편집기

  • 시각적 신호 활용한 구문(Syntax) 강조 등의 기능 포함
    ➡ 소프트웨어 코드 작성을 돕는 텍스트 편집기로, 언어별 자동 완성 기능과 코드 작성 중 버그 검사 제공

2.2. 로컬 빌드 자동화

  • 컴퓨터 소스 코드를 바이너리 코드로 컴파일링하고, 바이너리 코드를 패키징하고 자동화 테스트를 실행하는 등 간편하고 반복 가능한 태스크를 개발자가 사용하는 소프트웨어의 로컬 빌드를 생성할 때 자동화해주는 유틸리티

2.3. 디버거

  • 원본 코드에 있는 버그 위치를 그래픽으로 표시할 수 있는 다른 프로그램을 테스트하는 프로그램

 

3. IDE 사용 목적

  • 설정 프로세스의 일환으로 여러 유틸리티를 수동으로 설정하고 통합할 필요 없음
    ➡ 개발자들이 새로운 애플리케이션 프로그래밍 신속하게 시작 가능
  • 각 유틸리티가 동일한 워크벤치에 나타날 때 서로 다른 툴 사용법을 개별 학습할 필요 없음
    EX) 새로운 개발자가 온보딩할 때 IDE를 사용하여 팀의 표준 툴 및 워크플로우를 익힐 수 있어 유용함
  • 전체 문자열을 입력하지 않아도 되는 지능형 코드 완성 및 자동화된 코드 생성 등 시간 절감 기능
  • 다른 일반적인 IDE 기능들 : 워크플로우 체계화 및 문제 해결 목적
  • 작성된 코드 구문 분석 후 인적 오류로 인한 버그 실시간 식별 가능
  • 유틸리티가 단일 GUI로 표현되기에 애플리케이션 간의 전환 필요 없이 동작 실행 가능
  • 구문 강조 등의 시각적 신호 사용하여 텍스트 편집기에서 문법 구별
  • 일부 IDE : 추가적인 클래스 및 개체 브라우저 및 특정 언어에 대한 클래스 계층 다이어그램 포함함

 

4. 주요 IDE 유형

  • IDE의 다양한 기술 및 비즈니스 활용 사례 O ➡ 독점 및 오픈소스 IDE 옵션도 많다는 의미

4.1. 일반적인 IDE 간 가장 중요한 차별화 특징

  • 지원되는 언어 수 : 일부 IDE는 하나의 언어만 지원하여 특정 프로그래밍 패러다임에 더 적합함
    EX) IntelliJ는 주로 Java IDE로 알려져 있고, 다른 IDE는 Java, XML, Python 등을 지원하는 Eclipse IDE와 같이 한 번에 광범위한 언어 지원함
  • 지원되는 운영 체제(OS) : 개발자의 운영 체제에 따라 실행 가능한 IDE가 제한되며(클라우드 기반 IDE인 경우 제외), 개발 중인 애플리케이션이 특정 운영 체제(Android 또는 iOS)를 사용하는 최종 사용자를 위한 애플리케이션인 경우 추가적인 제약 받음
  • 자동화 기능 : 대부분 IDE가 텍스트 편집기, 빌드 자동화 및 디버거라는 3가지 주요 기능을 포함함, But 많은 IDE는 리팩토링, 코드 검색 및 지속적인 통합 및 지속적인 배포(CI/CD) 툴과 같은 추가 기능도 지원함
  • 시스템 성능에 미치는 영향 : 개발자들이 메모리 사용량이 많은 다른 애플리케이션을 동시에 실행하고자 하는 경우 IDE의 메모리 공간이 중요할 수 있음
  • 플러그인 및 확장 기능 : 일부 IDE는 개발자들의 요구 사항 및 선호 사항에 맞춰 워크플로우를 커스터마이징하는 기능 포함함

 


출처 : https://www.redhat.com/ko/topics/middleware/what-is-ide

댓글