Skip to content

AI 코드 완성

Sidian의 AI 기반 코드 완성은 기존의 IntelliSense를 넘어 코드의 의도와 패턴을 이해하는 지능적이고 컨텍스트를 인식하는 제안을 제공합니다.

AI 코드 완성의 작동 방식

지능형 분석

  • 컨텍스트 이해: AI가 전체 코드베이스를 분석하여 관련성 있는 제안을 제공합니다
  • 패턴 인식: 코딩 패턴과 스타일을 학습합니다
  • 다중 언어 지원: 다양한 프로그래밍 언어에서 작동합니다
  • 실시간 처리: 입력하는 동안 제안을 제공합니다

고급 기능

  • 전체 줄 완성: 코드의 전체 줄을 완성합니다
  • 여러 줄 제안: 여러 줄의 관련 코드를 생성합니다
  • 함수 생성: 주석이나 이름을 기반으로 완전한 함수를 생성합니다
  • 가져오기 제안: 필요한 가져오기를 자동으로 제안하고 추가합니다

코드 완성 활성화하기

기본 설정

  1. 로그인: Sidian 계정에 로그인했는지 확인합니다
  2. 기능 활성화: 설정 → 공급자/로컬 → 코드 완성 활성화로 이동합니다
  3. 모델 선택: 완성을 위해 선호하는 AI 모델을 선택합니다
  4. 지연 시간 구성: 제안이 나타나기 전의 지연 시간을 설정합니다 (기본값: 500ms)

구성 옵션

  • 제안 개수: 표시할 제안의 수 (1-5)
  • 최소 트리거 길이: 트리거되기 전의 최소 문자 수 (1-3)
  • 자동 수락: 단일 제안을 자동으로 수락합니다
  • 인라인 표시: 팝업 대신 인라인으로 제안을 표시합니다

코드 완성 사용하기

기본 사용법

  1. 입력 시작: 지원되는 언어로 코드 입력을 시작합니다
  2. 제안 대기: 구성된 지연 시간 후에 AI 제안이 나타납니다
  3. 제안 수락: Tab 키를 눌러 강조 표시된 제안을 수락합니다
  4. 제안 순환: / 화살표를 사용하여 여러 제안을 탐색합니다
  5. 닫기: Esc 키를 눌러 제안을 닫습니다

키보드 단축키

동작단축키설명
제안 수락Tab현재 제안을 수락합니다
다음 제안 또는 Ctrl+다음 제안으로 이동합니다
이전 제안 또는 Ctrl+이전 제안으로 이동합니다
제안 닫기Esc제안 팝업을 닫습니다
강제 트리거Ctrl+Space수동으로 제안을 트리거합니다

완성 유형

변수 및 함수 이름

  • 스마트 네이밍: 컨텍스트에 따라 의미 있는 변수 이름을 제안합니다
  • 카멜 케이스: 적절한 케이스로 이름을 자동으로 형식화합니다
  • 타입 추론: 추론된 타입을 기반으로 이름을 제안합니다
  • 규칙 준수: 언어별 명명 규칙을 따릅니다

코드 패턴

  • 일반적인 패턴: 일반적인 코딩 패턴을 인식하고 완성합니다
  • 상용구 코드: 클래스, 함수에 대한 표준 상용구를 생성합니다
  • 오류 처리: 적절한 오류 처리 패턴을 제안합니다
  • API 사용: 문서를 기반으로 API 호출을 완성합니다

언어별 기능

JavaScript/TypeScript

  • Promise 처리: Async/await 및 Promise 완성
  • React 컴포넌트: JSX 및 React 훅 패턴
  • Node.js 모듈: CommonJS 및 ES6 가져오기/내보내기
  • 타입 주석: TypeScript 타입 완성

Python

  • 리스트 컴프리헨션: 복잡한 리스트 컴프리헨션 패턴
  • 데코레이터: 함수 및 클래스 데코레이터 제안
  • 컨텍스트 관리자: with 문 완성
  • 패키지 가져오기: 지능형 가져오기 제안

Java

  • 스트림 작업: Java 8+ 스트림 메서드 체인
  • 예외 처리: try-catch 블록 완성
  • 어노테이션 사용: Spring, JPA 및 기타 프레임워크 어노테이션
  • 제네릭 타입: 제네릭 타입 매개변수 완성

C#

  • LINQ 쿼리: 복잡한 LINQ 표현식 완성
  • 비동기 패턴: 작업 기반 비동기 패턴
  • 속성 정의: 자동 속성 및 전체 속성 패턴
  • 어트리뷰트 사용: 프레임워크별 어트리뷰트 완성

고급 기능

컨텍스트 인식 제안

  • 프로젝트 컨텍스트: 프로젝트 구조와 종속성을 이해합니다
  • 파일 컨텍스트: 현재 파일의 가져오기, 변수, 함수를 고려합니다
  • 선택 컨텍스트: 선택한 코드를 기반으로 관련 제안을 제공합니다
  • 주석 기반: 주석과 문서를 기반으로 코드를 생성합니다

학습 및 적응

  • 사용 패턴: 수락 및 거부된 제안으로부터 학습합니다
  • 코드 스타일: 코딩 스타일과 선호도에 적응합니다
  • 프로젝트별: 프로젝트에 특정한 패턴을 학습합니다
  • 팀 일관성: 팀 코딩 표준과의 일관성을 유지합니다

다중 언어 프로젝트

  • 언어 간: 다른 언어 간의 관계를 이해합니다
  • API 경계: 언어 간에 적절한 인터페이스를 제안합니다
  • 구성 파일: JSON, YAML, XML에서 구성 완성을 지원합니다
  • 템플릿 언어: HTML, CSS 및 템플릿 엔진을 지원합니다

사용자 정의

모델 선택

  • 빠른 모델: 정확도는 낮지만 빠른 제안
  • 균형 모델: 속도와 정확도의 좋은 균형
  • 고급 모델: 처리 시간은 길지만 가장 높은 정확도
  • 로컬 모델: 개인 정보 보호에 중점을 둔 오프라인 처리

필터링 옵션

  • 언어 필터: 특정 언어에 대해 활성화/비활성화
  • 파일 유형 필터: 다른 파일 유형에서 완성 제어
  • 프로젝트 필터: 다른 프로젝트에 대해 다른 설정
  • 컨텍스트 필터: 코드 컨텍스트(주석, 문자열 등)에 따라 필터링

성능 튜닝

  • 캐시 설정: 제안 캐싱 구성
  • 네트워크 타임아웃: 클라우드 기반 모델의 타임아웃 설정
  • 배치 처리: 효율성을 위해 여러 요청을 그룹화
  • 리소스 제한: CPU 및 메모리 사용량 제어

문제 해결

일반적인 문제

제안이 나타나지 않음

  • 설정에서 코드 완성이 활성화되어 있는지 확인합니다
  • 로그인되어 있고 활성 구독이 있는지 확인합니다
  • 클라우드 모델의 경우: 인터넷 연결을 확인합니다
  • 로컬 모델의 경우: Ollama/LM Studio가 실행 중인지 확인합니다
  • 트리거 지연 시간을 늘려봅니다

느린 제안

  • 더 빠른 AI 모델로 전환합니다
  • 표시되는 제안 수를 줄입니다
  • 네트워크 연결 속도를 확인합니다
  • 제안 캐시를 지웁니다

관련 없는 제안

  • 추가 문자를 입력하여 더 많은 컨텍스트를 제공합니다
  • 주석을 사용하여 AI를 안내합니다
  • 올바른 언어가 감지되었는지 확인합니다
  • 다른 AI 모델을 시도합니다

높은 리소스 사용량

  • 더 가벼운 AI 모델로 전환합니다
  • 제안 빈도를 줄입니다
  • 가능한 경우 로컬 처리를 활성화합니다
  • 불필요한 파일과 탭을 닫습니다

모범 사례

  1. 컨텍스트 제공: 설명적인 주석과 변수 이름을 작성합니다
  2. 인내심 갖기: AI가 컨텍스트를 분석할 시간을 줍니다
  3. 제안 검토: 생성된 코드를 수락하기 전에 항상 검토합니다
  4. 단축키 배우기: 효율적인 사용을 위해 키보드 단축키를 마스터합니다
  5. 설정 사용자 정의: 개발 스타일에 맞게 설정을 조정합니다
  6. 피드백 제공: 피드백 옵션을 사용하여 제안을 개선합니다

Sidian의 AI 코드 완성은 코드 품질을 유지하면서 생산성을 향상시키도록 설계되었습니다. 시간을 내어 기능을 탐색하고 개발 스타일에 맞게 사용자 정의하십시오.