다양한 AI 모델을 활용한 코드 생성 자동화 도구 GenAIcode
요약
GenAIcode는 다양한 AI 모델을 활용하여 코드 생성 작업을 자동화하는 도구로, 개발자의 생산성 향상에 초점을 맞추고 있습니다. 이 도구는 코드 및 이미지 에셋의 분석, 수정, 변경을 지원하며, 웹 UI, 대화형 CLI, node.js 라이브러리 등 다양한 방식으로 통합될 수 있습니다. 사용자는 `--ai-service`, `--ui`, `--interactive` 등의 명령줄 옵션을 통해 AI 모델 선택부터 실행 모드, 파일 변경 제어까지 세밀하게 커스터마이징할 수 있습니다.
핵심 포인트
- 다양한 AI 모델을 활용하여 코드 생성 및 개발 프로세스를 자동화합니다.
- 코드 베이스 전체를 분석하고 여러 파일을 동시에 수정하는 것이 가능합니다.
- 웹 UI, 대화형 CLI, node.js 라이브러리 등 다양한 환경에 통합되어 사용될 수 있습니다.
- 명령줄 옵션을 통해 AI 서비스 선택, 실행 모드(interactive/non-interactive), 파일 변경 허용 여부 등을 세밀하게 제어할 수 있습니다.
GenAIcode 도구는 다양한 AI 모델을 사용하여 코드 생성 작업을 자동화하도록 설계되었습니다. 이 도구는 코드 및 이미지 에셋의 분석, 수정, 변경을 지원함으로써 개발자의 생산성을 향상시킵니다. 모든 코드 베이스에서 작동하며, 여러 파일을 동시에 수정할 수 있습니다. 웹 브라우저, 대화형(interactive) 또는 비대화형(non-interactive) CLI 명령, node.js 라이브러리, 또는 vite 플러그인(plugin)으로 사용할 수 있습니다.
프로젝트 루트 디렉토리에서 다음을 실행하세요:
npx genaicode --ui
open http://localhost:1337
이렇게 하면 GenAIcode 웹 서버가 시작되고 UI가 포함된 브라우저가 열립니다.
모습은 다음과 같습니다:
GenAIcode는 동작을 커스터마이징하기 위한 다양한 명령줄 옵션(command-line options)을 지원합니다:
--ai-service=<ai service>
: 코드 생성에 사용할 AI 서비스/모델을 선택합니다.
--ui
: 도구를 웹 서버로 실행하고 브라우저를 통해 사용합니다.
--ui-port=<port>
: --ui 사용 시 웹 서버 포트를 지정합니다 (기본값: 1337).
--interactive
: 도구를 대화형(interactive) 모드로 실행합니다.
--dry-run
: 파일에 어떠한 변경도 가하지 않고 도구를 실행합니다.
--disallow-file-create
: 도구가 새 파일을 생성하는 것을 허용하지 않습니다 (파일 생성은 기본적으로 허용됩니다).
--disallow-file-delete
: 도구가 파일을 삭제하는 것을 허용하지 않습니다 (파일 삭제는 기본적으로 허용됩니다).
--disallow-directory-create
: 도구가 디렉토리를 생성하는 것을 허용하지 않습니다 (디렉토리 생성은 기본적으로 허용됩니다).
--disallow-file-move
: 도구가 프로젝트 구조 내에서 파일을 이동하는 것을 허용하지 않습니다 (파일 이동은 기본적으로 허용됩니다).
--explicit-prompt=<prompt>
: 코드 생성을 위한 명시적인 프롬프트(prompt)를 제공합니다.
--task-file=<file>
: 코드 생성을 위한 작업 설명이 담긴 파일을 지정합니다.
--verbose-prompt
: 코드 생성에 사용된 프롬프트를 출력합니다.
--disable-explanations
: 코드 생성 작업에 대한 설명을 비활성화합니다. 기본적으로는 응답 품질을 향상시키기 위해 설명 기능이 활성화되어 있습니다.
--disable-context-optimization
: 더 효율적인 코드 생성을 위해 컨텍스트 경로(context paths)를 사용하는 최적화 기능을 비활성화합니다.
--gemini-block-none
--gemini-block-none: Gemini Pro 모델의 안전 설정 (safety settings)을 비활성화합니다 (화이트리스트에 등록된 Cloud 프로젝트 필요).
--temperature=<value>: AI 모델의 온도 (temperature) 파라미터를 설정합니다 (기본값: 0.7).
--vision: 이미지 입력을 처리하기 위한 비전 (vision) 기능을 활성화합니다.
--imagen: AI 모델을 사용한 이미지 생성 (image generation) 기능을 활성화합니다.
--cheap: 코드 생성을 위해 더 저렴하고 빠른 모델을 사용합니다. 결과물의 품질은 낮을 수 있지만, 단순한 작업에는 더 비용 효율적입니다.
--content-mask=<path>: 요청에 포함되는 초기 소스 코드 파일의 범위를 제한하기 위해 콘텐츠 마스크 (content mask)를 적용합니다. 값은 rootDir에 대한 상대 경로의 접두사(prefix)여야 합니다.
--ignore-pattern="glob/regex": 초기 소스 코드 가져오기 과정에서 무시할 파일 패턴을 지정합니다. 이는 초기 토큰 (token) 사용량을 절약합니다.
--disable-ask-question: 코드 생성 과정 중 명확한 설명을 위해 질문을 던지는 AI 어시스턴트 (AI assistant)의 기본 동작을 비활성화합니다.
--disable-cache: 애플리케이션의 캐싱 (caching)을 비활성화합니다. 캐싱으로 인해 문제가 발생하거나 각 작업에 최신 데이터가 사용되도록 보장해야 할 때 유용합니다.
--help: 사용 가능한 모든 옵션이 포함된 도움말 메시지를 표시합니다.
.genaicoderc (또는 genaicode.config.ts, genaicode.config.js, genaicode.config.mts 등) 파일을 통해 GenAIcode 동작의 다양한 측면을 구성할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다:
{
"rootDir": ".",
"extensions": [".md", ".js", ".ts", ".tsx", ".css"],
...
}
rootDir: 프로젝트의 루트 디렉토리 (root directory)를 지정합니다 (필수).
extensions: 도구가 고려할 파일 확장자 (file extensions) 배열 (선택 사항, 기본값은 사전 정의된 목록).
ignorePaths: 도구가 무시할 경로 (paths) 배열 (선택 사항).
lintCommand: 코드 생성 전후에 실행할 린트 명령 (lint command)을 지정합니다 (선택 사항).
modelOverrides: 각 서비스에 사용되는 기본 AI 모델을 재정의할 수 있습니다 (선택 사항).
plugins: 로드할 플러그인 (plugins)을 지정합니다 (플러그인 예시 참조).
importantContext: systemPrompt에 사용자 정의 지침 (custom instructions)을 추가합니다.
. 특정 files를 컨텍스트에 항상 포함하도록 강제합니다.
GenAIcode를 사용하려면 원하는 옵션과 함께 명령어를 실행하세요:
npx genaicode [options]
예시:
npx genaicode --explicit-prompt="문자열 조작을 위한 새로운 유틸리티 함수를 추가해줘"
특정 포트에서 웹 UI (web UI)와 함께 GenAIcode를 실행하려면:
npx genaicode --ui --ui-port=8080
이렇게 하면 기본값인 1337 대신 8080 포트에서 웹 서버 (web server)가 시작됩니다.
GenAIcode 사용에 대한 실질적인 예시는 저희의 Examples 페이지를 방문해 주세요.
GenAIcode의 기능, 지원되는 AI 모델 (AI models), 파일 작업 (file operations) 및 고급 사용법에 대한 심층적인 세부 정보는 종합 설계 문서 (Design Document)를 참조하시기 바랍니다.
여러분의 피드백과 기여를 환영합니다! 저희 GitHub 저장소 (repository)에 이슈 (issues)를 생성하거나 풀 리퀘스트 (pull requests)를 제출해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기