코드 자동 완성
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
코드 자동 완성은 사용자가 코드를 더 빠르고 효율적으로 작성하도록 돕는 기능이다. 1957년 맞춤법 검사기에서 시작되어, 1971년 SPELL 프로그램이 개발되었고, 이후 유닉스 Ispell에 영향을 주었다. 주요 기능으로는 코드 자동 완성, 매개변수 정보 제공, 오류 검출, 코드 제안 등이 있으며, Visual Studio의 IntelliSense가 대표적이다. IntelliSense는 C++, C#, Visual Basic 등 다양한 언어를 지원하며, Visual Studio Code, SQL Server Management Studio 등 다른 마이크로소프트 제품에도 통합되어 있다. 이클립스, Vim 등에서도 코드 자동 완성 기능을 제공한다.
더 읽어볼만한 페이지
- 문서 편집기 기능 - 전문 검색
전문 검색은 문서 내 특정 단어나 구절을 찾는 정보 검색의 핵심 기술로, 인덱싱, 페이지랭크 알고리즘, 문자열 추출 방법, 문서 필터 기술, 질의 도구 개선 등을 통해 발전해왔으며, 웹 검색, 기업용 검색, 데스크톱 검색 등 다양한 분야에서 활용된다. - 문서 편집기 기능 - 맞춤법 검사기
맞춤법 검사기는 텍스트의 오타와 문법 오류를 검사하여 수정 제안을 제공하는 소프트웨어 도구이며, 1970년대에 처음 등장하여 기술 발전을 거쳐 현재 다양한 플랫폼에서 여러 언어를 지원한다. - 마이크로소프트 비주얼 스튜디오 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 마이크로소프트 비주얼 스튜디오 - J 샤프
J#은 마이크로소프트에서 개발한 .NET Framework 기반의 프로그래밍 언어로, 자바와 유사한 문법을 가지며 기존 자바 코드의 .NET 플랫폼 이전 및 .NET 언어와의 상호 운용성을 지원했으나 현재는 개발이 중단되었다. - 마이크로소프트 개발 도구 - 비주얼 스튜디오
비주얼 스튜디오는 마이크로소프트가 개발한 통합 개발 환경(IDE)으로, 다양한 프로그래밍 언어와 플랫폼을 지원하며 소프트웨어 개발에 필요한 도구와 기능을 제공한다. - 마이크로소프트 개발 도구 - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다.
코드 자동 완성 | |
---|---|
개요 | |
명칭 | 코드 자동 완성 |
영어 명칭 | Code completion |
다른 명칭 | IntelliSense (인텔리센스) |
설명 | |
정의 | 통합 개발 환경(IDE)에서 프로그래머가 코드를 입력할 때 자동으로 코드를 완성해주는 기능 |
목표 | 개발 속도 향상 오타 감소 API 학습 지원 |
작동 방식 | |
기본 원리 | 문맥 분석을 통해 가능한 코드 후보를 예측 입력 내용 기반으로 후보 목록 필터링 사용자에게 후보 제시 및 선택 기능 제공 |
활용 기술 | 구문 분석 정적 분석 기계 학습 (최근) |
유형 | |
이름 기반 자동 완성 | 이전에 사용한 변수명, 함수명 등을 기반으로 제시 |
태그 자동 완성 | HTML, XML 등 태그 기반 언어에서 태그 쌍을 자동으로 완성 |
단어 자동 완성 | 현재 입력 중인 단어를 기반으로 가능한 단어 목록 제시 |
문장 자동 완성 | 전체 문장 구조를 예측하여 자동으로 완성 (최근) |
장점 및 효과 | |
생산성 향상 | 코드 입력 시간 단축 및 오타 감소 |
학습 효과 | API 및 라이브러리 사용법 학습 지원 |
코드 품질 향상 | 일관성 있는 코딩 스타일 유지 및 오류 감소 |
단점 및 고려 사항 | |
오버헤드 | 자동 완성 기능으로 인한 IDE 성능 저하 가능성 |
의존성 | 자동 완성 기능에 과도하게 의존할 경우 프로그래밍 실력 저하 우려 |
활용 분야 | |
주요 IDE | Visual Studio Eclipse IntelliJ IDEA |
기타 편집기 | VS Code Sublime Text Emacs Vim |
미래 전망 | |
발전 방향 | 인공지능 기반의 더욱 정확한 코드 예측 코드 스타일 및 패턴 학습을 통한 개인 맞춤형 자동 완성 클라우드 기반 자동 완성 기능 강화 |
2. 역사
지능형 코드 자동 완성에 대한 연구는 1957년 비트맵 이미지의 필기체나 잘못된 항목에도 불구하고 데이터베이스에서 기록을 찾는 특수한 용도의 맞춤법 검사기 연구에서 시작되었다. 1961년, 이 초기 기술 연구를 이끌었던 레스 언네스트는 10,000개의 허용 가능한 단어 목록을 활용하는 최초의 맞춤법 검사기가 필요하다고 보았다.[7] 당시 언네스트의 제자였던 랄프 고린은 일반 영어 텍스트를 대상으로 한 최초의 실용적인 맞춤법 검사 프로그램인 SPELL을 개발했다. 이 프로그램은 스탠포드 대학교 인공 지능 연구소(SAIL)의 DEC PDP-10 컴퓨터용으로 만들어졌으며, 1971년 2월에 발표되었다.[8] 고린은 프로그램 실행 속도를 높이기 위해 어셈블리 언어로 SPELL을 작성했다. 이 프로그램은 사용자가 입력한 단어와 비슷하거나 글자 순서가 바뀐 단어를 단어 목록에서 찾아 올바른 철자 후보를 제시하는 방식으로 작동했다. 고린은 SPELL을 대부분의 SAIL 프로그램처럼 공개적으로 접근 가능하게 만들었고, 이는 개인용 컴퓨터가 보급되기 약 10년 전 ARPANET을 통해 빠르게 전 세계로 퍼져나갔다.[9] SPELL과 그 알고리즘 및 데이터 구조는 이후 유닉스 운영체제의 Ispell 프로그램 개발에 영향을 주었다.
(내용 없음)
3. 주요 기능
3. 1. 코드 자동 완성
코드 자동 완성은 다른 자동 완성 기능과 비슷하게 작동하며, 함수, 특히 함수의 매개변수 목록에 대한 설명을 쉽게 접근할 수 있게 도와준다. 이 기능은 키보드 입력과 이름을 외워야 하는 부담을 줄여 소프트웨어 개발 속도를 높인다. 또한 현재 작업 범위 내의 여러 기호(예: 변수 및 함수)에 대한 설명을 도구 설명 형태로 보여주므로, 사용자는 외부 문서를 덜 찾아보게 해준다.[6]
코드 자동 완성은 컴퓨터 코드가 정의하거나 참조하는 클래스, 변수 이름, 기타 구문 등으로 이루어진, 자동으로 생성된 메모리 내 데이터베이스를 활용한다. IntelliSense의 초기 구현은 마침표(`.`) 같은 특정 문자(마커 문자)를 감지하여 작동한다. 사용자가 하나 이상의 멤버(예: 변수 또는 함수)를 가진 객체의 이름 바로 뒤에 이런 문자를 입력하면, IntelliSense는 팝업 창에서 일치하는 항목들을 제안한다. 사용자는 완성 문자('Tab' 키나 'Enter' 키) 또는 언어별 특정 문자(예: C++의 세미콜론)를 입력하여 제안을 받아들이거나, 계속해서 이름을 입력할 수 있다. 시간이 지나면서 IntelliSense는 사용자가 가장 필요로 할 가능성이 높은 변수나 함수를 파악한다. 또한, 함수의 소스 코드에 문서화된 내용에 따라 팝업 창에 해당 함수의 간략한 설명을 표시한다.
이 기능을 통해 사용자는 객체 지향 프로그래밍을 지원하는 언어에서 여러 개의 오버로드된 함수 중에서 선택할 수도 있다. 일부 코드 편집 소프트웨어는 언어 서버 프로토콜(LSP) 서버를 통해 코드 자동 완성 기능을 제공한다.
IntelliSense는 마이크로소프트가 구현한 코드 자동 완성 기능으로, 특히 Visual Studio에서 가장 잘 알려져 있다. 1996년 주요 마이크로소프트 제품의 기능으로 처음 도입되었으며, 기존의 코드 자동 완성 및 구문 검사 개념들을 기반으로 만들어졌다.[10] 이는 기본적으로 Visual Basic 5.0의 공개 프로토타입인 Visual Basic 5.0 Control Creation Edition에서 시작되었다.[11] 초기에는 Visual Basic IDE가 이 기술의 주요 시험대였지만, IntelliSense는 Visual Studio 97 시기에 Visual FoxPro 및 Visual C++에도 통합되었다. COM의 리플렉션 기능을 기반으로 했기 때문에, Visual Basic 버전의 IntelliSense는 COM에 전적으로 의존하지 않았던 Visual C++ 5.0 및 6.0 버전보다 항상 더 강력하고 완전했다. 이러한 단점은 .NET 제품군에서 대부분 수정되었다. 예를 들어, .NET 이전 제품에서 가장 많이 요청되었던 기능 중 하나인 템플릿 지원은 현재 완전히 구현되었다.[13]
IntelliSense는 2001년에 처음 출시된 통합 Visual Studio.NET 환경과 .NET 프레임워크가 제공하는 더 강력한 리플렉션 및 코드 문서화 기능 덕분에 새로운 단계로 발전했다. IntelliSense는 이제 C++, C#, J#, Visual Basic, XML, HTML, XSLT 등을 포함한 Visual Studio 편집기에서 지원한다. Visual Studio 2005부터 IntelliSense는 사용자가 특정 문자를 입력하기를 기다리지 않고 입력을 시작하면 기본적으로 활성화된다(이 기능은 끌 수 있다). 이 IDE는 개발자가 입력하는 내용을 바탕으로 더 많은 맥락을 추론하는 기능이 있어서, `'for'`나 `'while'` 같은 기본 언어 구문도 선택 목록에 포함될 정도이다. 2017년 마이크로소프트는 IntelliCode[14]를 발표했는데, 이는 기계 학습을 사용하여 사용자가 키를 입력할 때마다 어떤 언어 기능이나 라이브러리 기능을 의도했을 가능성이 높은지 추론한다. 처음에는 C# 전용 확장 기능으로 제공되었고, 이후 Visual Studio 버전에 내장될 예정이다.
Visual Studio 2022는 주변 코드를 바탕으로 전체 코드 줄을 자동으로 제안할 수 있는 GitHub Copilot과 같은 인공지능 기능을 포함한다.
IntelliSense를 통합하는 다른 마이크로소프트 제품으로는 Expression Web, FrontPage 2003, Small Basic, Microsoft Office 제품의 Visual Basic for Applications IDE, Visual Studio Code 등이 있다. SQL Server 2008 Management Studio에는 SQL 구문에 대한 자동 완성이 있다.
이클립스 통합 개발 환경(IDE)는 자체 코드 자동 완성 도구를 갖추고 있다.[15][16] 이클립스 IDE는 자바, C++, 자바스크립트 코드 작성에 대한 지원을 포함한다. 과거에는 Code Recommenders 이클립스 프로젝트가 강력한 지능형 자동 완성을 제공했지만,[17] 자원 부족으로 인해 이클립스 2018-12 버전에서 중단되었고, 2019년 7월에 보관 처리되었다.[18][19][20]
Vim 인텔리센스[21]는 Vim 편집기를 위한 고급 코드 자동 완성 시스템이다.
예를 들어, C++ 프로그램을 Visual Studio에서 편집할 때, 다음과 같은 멤버 함수를 가진 `'Foo'` 클래스가 있다고 가정해보자.
class Foo {
public:
void bar();
void foo_bar(char c, int n);
};
개발자가 소스 코드에서 이 클래스를 사용할 때, 예를 들면 다음과 같다.
Foo foo;
foo.
사용자가 `'foo'` 뒤에 마침표(`.`)를 입력하면, IntelliSense는 사용 가능한 모든 멤버 함수(즉, `bar()`와 `foo_bar()`)와 모든 멤버 속성을 자동으로 목록으로 보여준다(비공개 및 보호된 멤버는 이름 옆에 자물쇠 아이콘으로 식별할 수 있다). 그런 다음 사용자는 화살표 키로 원하는 항목을 선택하고, 올바른 멤버 함수가 강조 표시되면 완성 문자를 눌러 선택하면 된다. 가능하다면 IntelliSense는 소스 코드 문서에 제공된 대로 멤버 함수에 대한 짧은 설명을 보여준다.
IntelliSense는 사용자가 매개변수를 입력할 때 필요한 매개변수를 다른 팝업 창에 표시해주는 기능도 제공한다. 사용자가 변수 이름을 입력하면, 입력하는 동안 변수 완성을 위한 제안도 제공한다. IntelliSense는 사용자가 입력함에 따라 관련된 매개변수를 강조하며 계속 보여준다.
사용자는 `'Ctrl+J'` 또는 `'Ctrl+Space'` 키를 눌러 어떤 상황에서든 IntelliSense 팝업 목록을 강제로 표시하게 할 수 있다. Visual Studio에서는 개발자가 사용할 수 있는 전체 애플리케이션 도메인 객체 모델이 표시된다.
3. 2. 매개변수 정보 제공
지능형 코드 자동 완성은 함수, 특히 함수의 매개변수 목록에 대한 설명을 편리하게 접근할 수 있도록 돕는다. 이는 키보드 입력과 함수 이름, 매개변수 등을 외워야 하는 부담을 줄여 소프트웨어 개발 속도를 높이는 데 기여한다. 또한, 현재 작업 범위 내에 있는 여러 기호(예: 변수 및 함수)에 대한 설명을 도구 설명 형태로 동적으로 보여주어, 개발자가 외부 문서를 찾아보는 빈도를 줄일 수 있게 한다.[6]
이 기능은 객체 지향 프로그래밍을 지원하는 언어에서 여러 개의 오버로드된 함수 중에서 사용자가 적절한 것을 선택하는 데 도움을 주기도 한다.
마이크로소프트의 IntelliSense 구현을 예로 들면, 사용자가 클래스의 객체 뒤에 멤버 접근 연산자(예: C++의 마침표 `.`)를 입력하면, 해당 객체에서 사용할 수 있는 멤버 함수나 속성 목록이 팝업 형태로 나타난다. 이때, 함수를 선택하면 필요한 매개변수 정보가 별도의 팝업 창에 표시된다. 사용자가 매개변수를 하나씩 입력할 때마다 IntelliSense는 현재 입력해야 할 매개변수를 강조하여 보여준다.
예를 들어, C++에서 다음과 같은 멤버 함수를 가진 `Foo
` 클래스가 있다고 가정해 보자.
class Foo {
public:
void bar();
void foo_bar(char c, int n);
};
개발자가 코드에서 이 클래스의 객체를 사용하다가,
Foo foo;
foo. // 여기에 마침표를 입력하면
'foo' 객체 뒤에 마침표를 입력하는 순간, IntelliSense는 사용 가능한 멤버 함수('bar()'와 'foo_bar()') 목록을 보여준다. 사용자는 화살표 키로 원하는 함수를 선택하고 Tab 키나 Enter 키를 눌러 자동 완성을 할 수 있다. 만약 'foo_bar()' 함수를 선택하고 괄호를 열면, IntelliSense는 'char c'와 'int n'이라는 매개변수가 필요하다는 정보를 보여주며, 사용자가 각 매개변수를 입력할 때마다 해당 설명을 업데이트하여 안내한다. 소스 코드에 문서 주석이 있다면, 멤버 함수에 대한 간단한 설명도 함께 표시된다.
사용자는 필요에 따라 Ctrl+Space 와 같은 단축키를 사용하여 언제든지 IntelliSense의 도움말 목록을 직접 호출할 수도 있다.
3. 3. 오류 검출
마이크로소프트의 코드 자동 완성 기능인 IntelliSense는 단순히 코드를 완성하는 것을 넘어, 작성 중인 코드의 구문 검사 기능도 함께 제공하여 오류를 미리 발견하는 데 도움을 준다.[10] 초기 Visual C++ 버전의 IntelliSense는 COM에 완전히 기반하지 않아 Visual Basic 버전에 비해 구문 검사 등 일부 기능 구현에 제약이 있었지만,[13] .NET 환경으로 전환되면서 이러한 문제점들이 상당 부분 개선되었다.
Visual Studio 2005부터는 개발자가 코드를 입력하는 과정에서 문맥을 더 정확하게 파악하여 `for`나 `while` 같은 기본적인 언어 구문 수준까지 검사하고 제안하는 기능이 강화되었다. 이는 잠재적인 구문 오류를 줄이는 데 기여한다. 나아가 2017년에 발표된 IntelliCode[14]는 기계 학습을 이용하여 개발자의 의도를 예측하고, Visual Studio 2022에 포함된 GitHub Copilot과 같은 인공 지능 기능은 주변 코드를 분석하여 전체 코드 라인을 제안함으로써 오류 발생 가능성을 낮추고 코드의 정확성을 높이는 방향으로 발전하고 있다.
3. 4. 코드 제안
지능형 코드 자동 완성은 다른 자동 완성 시스템과 유사하게 작동하며, 함수와 그 매개변수 목록에 대한 설명을 쉽게 찾아볼 수 있게 해준다. 이 기능은 키보드 입력과 이름 암기의 필요성을 줄여주어 소프트웨어 개발 속도를 높이는 데 기여한다. 또한, 현재 작업 범위 내에 있는 변수나 함수 같은 여러 기호에 대한 설명이 도구 설명 형태로 동적으로 나타나므로, 개발자가 외부 문서를 찾아보는 빈도를 줄일 수 있다.[6]
코드 제안 기능은 컴퓨터 코드가 정의하거나 참조하는 클래스, 변수 이름, 기타 구문 요소들로 구성된, 자동으로 생성되는 메모리 내 데이터베이스를 활용한다. 대표적인 예시인 IntelliSense의 기본적인 구현 방식은 마침표(.)나 언어에 따라 다른 구분 기호와 같은 특정 문자를 감지하여 작동한다. 사용자가 접근 가능한 멤버(변수나 함수 등)를 가진 객체의 이름 바로 뒤에 이러한 문자를 입력하면, 팝업 대화 상자를 통해 일치하는 항목 목록이 제시된다. 사용자는 `Tab
` 키나 `Enter
` 키 같은 완성 문자를 누르거나, C++에서의 세미콜론(;)처럼 언어별 특정 기호를 입력하여 제안된 항목을 선택할 수 있으며, 혹은 계속해서 이름을 직접 입력할 수도 있다. 시간이 지나면서 이 기능은 사용자가 가장 필요로 할 가능성이 높은 변수나 함수를 예측하여 제안하게 된다. 또한, 함수의 소스 코드에 문서화된 내용이 있다면, 해당 함수의 간략한 설명을 팝업 창에 함께 표시해주기도 한다.
이 기능은 객체 지향 프로그래밍을 지원하는 언어에서 여러 개의 오버로드된 함수 중에서 사용자가 원하는 것을 선택할 수 있도록 돕는다. 일부 코드 편집 소프트웨어는 언어 서버 프로토콜(LSP) 서버를 통해 지능형 코드 자동 완성 기능을 제공하기도 한다.
IntelliSense는 마이크로소프트가 구현한 코드 자동 완성 기능으로, 특히 Visual Studio에서 널리 알려져 있다.
예를 들어, C++ 애플리케이션을 Visual Studio에서 편집 중이고 다음과 같은 멤버 함수를 가진 `Foo
` 클래스가 있다고 가정해보자.
class Foo {
public:
void bar();
void foo_bar(char c, int n);
};
개발자가 소스 코드에서 이 클래스를 다음과 같이 참조할 때,
Foo foo;
foo.
사용자가 `foo` 객체 이름 뒤에 마침표(.)를 입력하는 순간, IntelliSense는 사용 가능한 모든 멤버 함수(여기서는 `bar()`와 `foo_bar()`)와 멤버 속성을 자동으로 나열한다. 비공개(private) 및 보호된(protected) 멤버는 이름 옆에 자물쇠 아이콘으로 표시될 수 있다. 사용자는 화살표 키를 사용하여 원하는 항목을 선택하고, 해당 멤버 함수가 강조 표시되면 완성 문자를 눌러 코드를 완성할 수 있다. 만약 소스 코드에 문서가 포함되어 있다면, IntelliSense는 해당 멤버 함수에 대한 간단한 설명도 함께 보여준다.
IntelliSense는 여기서 더 나아가, 사용자가 함수의 매개변수를 입력할 때 필요한 매개변수 목록을 다른 팝업 창에 표시해준다. 사용자가 변수 이름을 입력하기 시작하면, 입력 내용에 맞춰 변수 이름을 완성할 수 있는 제안 목록도 제공한다. 사용자가 매개변수를 입력하는 동안에도 IntelliSense는 현재 입력해야 할 관련 매개변수를 계속 강조하여 보여준다.
사용자는 `Ctrl+J
` 또는 `Ctrl+Space
` 키 조합을 사용하여 필요할 때 언제든지 IntelliSense 팝업 목록을 강제로 표시할 수도 있다. Visual Studio에서는 이를 통해 개발자가 사용할 수 있는 전체 애플리케이션 도메인 객체 모델을 확인할 수 있다.
4. 지원 환경
코드 자동 완성 기능은 다양한 통합 개발 환경(IDE) 및 텍스트 편집기에서 중요한 기능으로 자리 잡았다. 대표적인 예로는 마이크로소프트의 Visual Studio에서 제공하는 IntelliSense, 이클립스 IDE의 내장 기능, 그리고 Vim 편집기용 확장 기능 등이 있다. 이러한 도구들은 개발자가 코드를 더 빠르고 정확하게 작성할 수 있도록 돕는다.
4. 1. Visual Studio
IntelliSense는 마이크로소프트의 코드 자동 완성 기능 구현으로, 특히 Visual Studio에서 가장 잘 알려져 있다. 1996년 주요 마이크로소프트 제품에 처음 도입되었으며, 기존의 코드 자동 완성 및 구문 검사 개념들을 기반으로 만들어졌다.[10] 이 기능은 Visual Basic 5.0의 공개 프로토타입이었던 Visual Basic 5.0 Control Creation Edition에서 시작되었다.[11] 초기에는 Visual Basic IDE가 이 기술의 주요 시험대였지만, IntelliSense는 Visual Studio 97 시기에 Visual FoxPro 및 Visual C++에도 통합되었다. 이는 COM의 리플렉션 기능에 기반했기 때문에, Visual Basic 버전의 IntelliSense는 COM에 전적으로 의존하지 않았던 Visual C++ 5.0 및 6.0 버전보다 항상 더 강력하고 완전한 기능을 제공했다. 이러한 단점은 .NET 제품군에서 대부분 개선되었으며, 예를 들어 .NET 이전에는 지원되지 않았던 템플릿 지원이 완전히 구현되었다.[13]IntelliSense는 2001년에 처음 출시된 통합 Visual Studio .NET 환경과 .NET 프레임워크가 제공하는 향상된 리플렉션 및 코드 문서화 기능을 통해 새로운 발전 단계에 들어섰다. 현재 IntelliSense는 C++, C#, J#, Visual Basic, XML, HTML, XSLT 등 다양한 언어를 Visual Studio 편집기에서 지원한다. Visual Studio 2005부터는 사용자가 특정 문자를 입력해야만 작동하는 대신, 입력을 시작하면 기본적으로 IntelliSense가 활성화된다(이 기능은 끌 수 있다). 이 IDE는 개발자가 입력하는 내용을 바탕으로 더 많은 맥락을 추론하여,
for
나 while
과 같은 기본 언어 구문도 선택 목록에 포함시킨다. 2017년 마이크로소프트는 기계 학습을 활용하여 사용자가 입력할 때마다 어떤 언어 기능이나 라이브러리 기능을 의도했을 가능성이 높은지 추론하는 IntelliCode[14]를 발표했다. 처음에는 C# 전용 확장 기능으로 제공되었으며, 이후 Visual Studio 버전에 내장될 예정이다.Visual Studio 2022 버전에는 주변 코드를 분석하여 전체 코드 줄을 자동으로 제안할 수 있는 GitHub Copilot과 같은 인공 지능 기능이 포함되었다.
IntelliSense를 통합한 다른 마이크로소프트 제품으로는 Expression Web, FrontPage 2003, Small Basic, Microsoft Office 제품의 Visual Basic for Applications IDE, Visual Studio Code 등이 있다. SQL Server 2008 Management Studio에서는 SQL 구문에 대한 자동 완성 기능을 제공한다.
예를 들어, Visual Studio에서 C++ 애플리케이션을 편집하고 있으며 다음과 같은 멤버 함수를 가진
Foo
클래스가 있다고 가정해 보자.class Foo {
public:
void bar();
void foo_bar(char c, int n);
};
개발자가 소스 코드에서 이 클래스를 다음과 같이 참조할 때,
Foo foo;
foo.
사용자가
foo
뒤에 마침표(.)를 입력하는 순간, IntelliSense는 사용 가능한 모든 멤버 함수(예: bar()
, foo_bar()
)와 멤버 속성을 자동으로 나열한다. 비공개(private) 및 보호된(protected) 멤버는 이름 옆에 자물쇠 아이콘으로 표시될 수 있다. 사용자는 화살표 키로 원하는 항목을 선택하고, 올바른 멤버 함수가 강조 표시되면 완성 문자를 눌러 코드를 완성할 수 있다. 사용 가능한 경우, IntelliSense는 소스 코드 주석에 제공된 멤버 함수에 대한 간단한 설명도 함께 보여준다.IntelliSense는 사용자가 함수의 매개변수를 입력할 때 필요한 매개변수 정보를 다른 팝업 창에 표시하여 기능을 확장한다. 사용자가 변수 이름을 입력하기 시작하면, 입력하는 동안 변수 이름을 완성할 수 있는 제안 목록도 제공한다. IntelliSense는 사용자가 입력하는 동안 관련된 매개변수를 계속 강조 표시하며 보여준다.
사용자는 'Ctrl+J' 또는 'Ctrl+Space' 키를 눌러 어떤 상황에서든 IntelliSense 팝업 목록을 강제로 표시할 수 있다. Visual Studio에서는 개발자가 사용할 수 있는 전체 애플리케이션 도메인 객체 모델이 표시된다.
4. 2. Eclipse
이클립스 통합 개발 환경(IDE)는 프로그램과 함께 제공되는 코드 자동 완성 도구를 갖추고 있다.[15][16] 이클립스 IDE는 자바(Java), C++, 자바스크립트(JavaScript) 코드 작성에 대한 뛰어난 지원을 포함한다.과거에는 Code Recommenders 이클립스 프로젝트가 강력한 지능형 자동 완성을 제공했지만,[17] 자원 부족으로 인해 이클립스 2018-12 버전부터 중단되었고, 2019년 7월에 보관 처리되었다.[18][19][20]
4. 3. Vim
Vim 인텔리센스[21]는 Vim 편집기를 위한 고급 코드 자동 완성 시스템이다.참조
[1]
서적
2008 23rd IEEE/ACM International Conference on Automated Software Engineering
2008
[2]
웹사이트
Code Completion, Episode 1: Scenarios and Requirements
https://blog.jetbrai[...]
2021-05-28
[3]
문서
FAQ - CodeBlocks
http://wiki.codebloc[...]
2014-02-01
[4]
문서
Qt Documentation - Completing Code
http://doc.qt.io/qtc[...]
2015-07-07
[5]
블로그
Using Dynamic Apex to retrieve Picklist Values | Developer Force Blog
http://blogs.develop[...]
2008-12-09
[6]
서적
C# 2005
[7]
웹사이트
The First Three Spelling Checkers
http://www.stanford.[...]
Stanford University
2011-10-10
[8]
서적
Computer Programs for Detecting and Correcting Spelling Errors
http://simson.net/re[...]
1980-12
[9]
서적
Visible Legacies for Y3K
https://stanford.edu[...]
[10]
웹사이트
Microsoft KB Archive/165524 - BetaArchive Wiki
https://www.betaarch[...]
2023-11-19
[11]
웹사이트
Microsoft Introduces Visual Basic 5.0, Control Creation Edition
https://news.microso[...]
1996-10-28
[12]
웹사이트
Microsoft Introduces Visual C++ 6.0
https://news.microso[...]
1998-06-29
[13]
문서
Using IntelliSense
http://msdn.microsof[...]
2014-04-04
[14]
웹사이트
Visual Studio IntelliCode
https://visualstudio[...]
[15]
웹사이트
Eclipse Corner Article: Unleashing the Power of Refactoring | the Eclipse Foundation
http://www.eclipse.o[...]
[16]
웹사이트
Technologies
http://www.ibm.com/d[...]
[17]
블로그
Eclipse Code Recommenders: It’s all about intelligent code completion
http://code-recommen[...]
2010-05-03
[18]
버그리포트
542689 - Don't include Code Recommenders for 2018-12
https://bugs.eclipse[...]
[19]
메일링리스트
cross-project-issues-dev Withdrawing Code Recommenders from SimRel
https://www.eclipse.[...]
[20]
웹사이트
Archived Projects | The Eclipse Foundation
https://www.eclipse.[...]
[21]
웹사이트
Vim Intellisense
http://insenvim.sour[...]
2014-04-04
[22]
서적
2008 23rd IEEE/ACM International Conference on Automated Software Engineering
[23]
웹인용
Code Completion, Episode 1: Scenarios and Requirements
https://blog.jetbrai[...]
2021-05-28
[24]
문서
FAQ - CodeBlocks
http://wiki.codebloc[...]
2014-02-01
[25]
문서
Qt Documentation - Completing Code
http://doc.qt.io/qtc[...]
2015-07-07
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com