9.2. 로컬 코딩 어시스턴트¶
생산적인 코딩 환경을 갖추려면 보통 에디터, 터미널, 브라우저, 문서를 오가며 작업해야 합니다. Backend.AI GO의 Cowork 메뉴는 이 모든 기능을 하나의 자율 워크플로우로 통합합니다. 코딩 작업을 설명하면 에이전트가 코드베이스를 읽고, 코드를 작성하고, 테스트를 실행하고, 파일을 정리합니다—모두 로컬 머신에서 수행됩니다.
이 가이드에서는 Cowork을 로컬 코딩 어시스턴트로 설정하는 방법을 안내하고, Python CLI 도구를 처음부터 만드는 구체적인 예제를 제공합니다.
Cowork을 코딩에 사용하는 이유¶
| 기존 워크플로우 | Cowork 워크플로우 |
|---|---|
| 에디터, 터미널, 브라우저를 오가며 작업 | 전체 작업을 단일 인터페이스에서 수행 |
| 수동으로 파일 생성 및 보일러플레이트 작성 | 에이전트가 프로젝트 구조를 자동으로 스캐폴딩 |
| 직접 테스트 실행, 수정, 반복 | 에이전트가 코드 작성, 테스트 실행, 반복 수행 |
| 별도 창에서 문서 검색 | 에이전트가 문서를 검색하고 패턴을 직접 적용 |
프라이버시 장점: 소스 코드가 절대로 머신 밖으로 나가지 않습니다. 클라우드 기반 AI 코딩 어시스턴트와 달리, Cowork은 모델을 로컬에서 실행하므로 독점 코드가 안전하게 보호됩니다.
사전 준비¶
시작하기 전에 다음을 확인하세요:
- Backend.AI GO가 설치되어 실행 중일 것
- 최소 하나의 모델이 로드되어 있을 것 — 최적의 코드 생성 품질을 위해 7B+ 파라미터 모델 권장
- 에이전트와 작업할 프로젝트 폴더가 준비되어 있을 것
코딩용 내장 도구¶
Cowork 메뉴는 코딩 작업에 필요한 다양한 내장 도구를 제공합니다. 플러그인이나 확장 기능이 필요 없습니다.
| 카테고리 | 도구 | 설명 |
|---|---|---|
| 파일 시스템 | read_file, write_file, list_directory, create_directory, delete_file, move_file | 프로젝트 파일 탐색, 생성, 편집, 정리 |
| 코드 실행 | run_python, run_command | Python 스크립트 및 셸 명령 직접 실행 |
| 검색 | search_files, search_content | 파일 패턴 검색 및 정규식으로 코드 내용 검색 |
| 데이터 | json_query, csv_reader | JSON/CSV 설정 또는 데이터 파일 쿼리 |
| 웹 | web_search, fetch_url | 문서 검색 및 API 레퍼런스 가져오기 |
| 유틸리티 | calculator, get_current_time, get_system_info | 계산, 타임스탬프, 시스템 정보 |
코딩 환경 설정¶
1단계: Cowork 열기¶
사이드바에서 Cowork 아이콘을 클릭하여 Cowork 인터페이스를 엽니다.
2단계: 프로젝트 폴더 추가¶
에이전트가 프로젝트 파일에 접근할 수 있어야 합니다.
-
작업 입력 영역에서 폴더 권한 토글을 클릭합니다.
-
폴더 추가를 클릭하고 프로젝트 폴더를 선택합니다.
-
적절한 권한 수준을 선택합니다:
- 읽기 전용 — 에이전트가 코드를 탐색하고 이해할 수 있지만 수정할 수 없습니다. 코드 리뷰나 설명 작업에 적합합니다.
- 읽기 및 쓰기 — 에이전트가 기존 파일을 읽고 새 파일을 생성하거나 수정할 수 있습니다. 대부분의 코딩 작업에 권장됩니다.
- 전체 접근 — 에이전트가 파일 삭제와 이동도 수행할 수 있습니다. 프로젝트 구조 변경 시 사용하세요.
읽기 전용으로 시작하기
에이전트가 변경 전에 코드베이스를 파악하도록 하려면, 먼저 읽기 전용으로 폴더를 추가하세요. 계획이 만족스러우면 읽기 및 쓰기로 업그레이드하세요.
3단계: 폴더별 지시사항 설정 (선택)¶
개별 폴더에 프로젝트 규칙을 지시사항으로 첨부할 수 있습니다:
- 권한 목록에서 폴더 옆의 톱니바퀴 아이콘을 클릭합니다.
- 지시사항을 입력합니다: "Python 3.12+ 프로젝트입니다. PEP 8을 따르세요. 타입 힌트를 사용하세요. 테스트는
tests/디렉터리에 있습니다."
이 지시사항은 에이전트가 해당 폴더 내에서 작업할 때만 적용됩니다.
4단계: 글로벌 지시사항 설정 (선택)¶
글로벌 지시사항은 모든 Cowork 작업에 적용됩니다.
-
설정 드로어를 엽니다 (헤더의 톱니바퀴 아이콘).
-
지시사항 탭으로 이동합니다.
-
다음과 같은 지시사항을 입력합니다:
-
지시사항을 활성화하고 드로어를 닫습니다.
단계별 예제: Python CLI 도구 만들기¶
이 예제에서는 Cowork 메뉴를 사용한 완전한 코딩 워크플로우를 보여줍니다.
시나리오: 파일을 확장자별로 정리하는 CLI 도구를 만듭니다.
1단계: 코딩 작업 입력¶
Cowork 페이지 하단의 작업 입력란에 목표를 설명합니다:
Create a Python CLI tool called
organizer.pythat sorts files in a given directory by their extension into subdirectories. Include argument parsing with argparse, a--dry-runmode that shows what would happen without moving files, and a test file using pytest. Save everything in my project folder.
Enter를 누르거나 작업 시작을 클릭합니다.
2단계: 에이전트 작업 관찰¶
에이전트가 작업을 단계별로 분해하고 자율적으로 실행합니다:
-
탐색 —
list_directory를 사용하여 프로젝트 구조를 파악하고 기존 파일을 확인합니다. -
계획 — 파일 구조를 결정합니다: 메인 도구용
organizer.py와 테스트용test_organizer.py. -
코드 작성 —
write_file을 사용하여organizer.py를 생성합니다:- 소스 디렉터리,
--dry-run,--verbose플래그를 위한 argparse 설정 - 파일 확장자 감지 및 디렉터리 생성 로직
- 적절한 에러 처리 및 로깅
- 소스 디렉터리,
-
테스트 작성 —
write_file을 사용하여 정상 동작, dry-run 모드, 엣지 케이스를 다루는 pytest 테스트 케이스가 포함된test_organizer.py를 생성합니다. -
검증 —
run_python을 사용하여 테스트를 실행하고 통과를 확인합니다. -
요약 — 생성된 내용과 중요 사항을 제시합니다.
도구 승인
허용된 폴더 내의 쓰기 작업은 처음 사용 시 승인이 필요할 수 있습니다. 한 번 승인 또는 세션 동안 승인을 선택할 수 있습니다. 허용된 폴더 내의 읽기 작업은 기본적으로 자동 승인됩니다.
3단계: 작업 중 스티어링¶
에이전트가 작업하는 동안 방향을 조정하려면 스티어링 입력을 사용하세요:
- "Also add a
--verboseflag that logs each file move" - "Use pathlib instead of os.path"
- "Add a
--extensionsfilter so users can specify which extensions to organize"
에이전트가 처음부터 다시 시작하지 않고 지침을 반영합니다.
4단계: 반복 및 개선¶
초기 작업이 완료된 후 추가 요청을 할 수 있습니다:
Add a
--undofeature that reads a log file from the previous run and reverses the file moves. Update the tests to cover this new feature.
에이전트가 이전 작업의 프로젝트 컨텍스트를 기억하고 이를 바탕으로 작업합니다.
예제: 코드 리뷰 및 리팩토링¶
Cowork은 기존 코드를 리뷰하고 개선하는 데도 활용할 수 있습니다.
-
프로젝트 폴더를 읽기 및 쓰기 권한으로 추가합니다.
-
다음과 같은 작업을 입력합니다:
Review the code in
src/utils.py. Identify any bugs, security issues, or style violations. Refactor the code to follow best practices and add type hints. Run the existing tests afterward to ensure nothing is broken.
에이전트가 read_file로 코드를 검토하고, write_file로 개선을 적용하고, run_python 또는 run_command로 테스트가 여전히 통과하는지 확인합니다.
예제: 기존 코드에 테스트 추가¶
-
프로젝트 폴더를 읽기 및 쓰기 권한으로 추가합니다.
-
다음과 같은 작업을 입력합니다:
Read through
src/auth.pyand write comprehensive pytest tests for all public functions. Save the tests astests/test_auth.py. Run the tests and fix any failures.
에이전트가 소스를 분석하고, 테스트를 생성하고, 실행한 후, 통과할 때까지 반복합니다.
에이전트 프로파일과 서브 에이전트¶
전문적인 코딩 작업을 위해 코딩에 최적화된 에이전트 프로파일을 선택할 수 있습니다:
- Cowork 인터페이스에서 에이전트 프로파일 선택기를 엽니다.
- 코딩에 최적화된 프로파일을 선택합니다 (사용 가능한 경우).
- 프로파일이 에이전트의 시스템 프롬프트, 도구 선호도, 코딩 워크플로우 동작을 조정합니다.
서브 에이전트는 독립적인 작업을 병렬로 처리할 수 있습니다—예를 들어, 한 서브 에이전트가 코드를 작성하는 동안 다른 서브 에이전트가 문서를 작성합니다.
도구 승인과 안전¶
Cowork 시스템은 코드를 안전하게 보호하기 위한 권한 모델을 사용합니다:
| 작업 | 기본 동작 |
|---|---|
| 허용된 폴더 내 파일 읽기 | 자동 승인 |
| 허용된 폴더 내 파일 쓰기/생성 | 승인 필요 (설정 가능) |
| 파일 삭제/이동 | 승인 필요 |
셸 명령 (run_command) | 항상 승인 필요 |
Python 실행 (run_python) | 샌드박스 환경에서 실행 |
샌드박스 Python
run_python 도구는 Python import 훅을 통해 위험한 모듈을 최상위 레벨에서 차단하는 제한된 환경에서 실행됩니다. 차단되는 모듈에는 명령 실행, 네트워크 접근, 파일 시스템 조작 또는 안전하지 않은 역직렬화를 가능하게 하는 os, subprocess, shutil, socket, http, urllib, pickle, ctypes, multiprocessing 등이 포함됩니다. math, statistics, json, csv, collections, itertools, re, datetime, random, hashlib, typing 등의 안전한 모듈은 사용 가능합니다. 이 보호는 애플리케이션 수준의 방어이며 커널 수준 샌드박싱이 아닙니다. 타임아웃은 설정 가능하며, 기본값은 30초입니다.
팁¶
- 읽기 전용으로 시작하여 에이전트가 변경 전에 코드베이스를 탐색하도록 하세요. 더 나은 컨텍스트가 구축됩니다.
- 폴더별 지시사항을 사용하여 프로젝트 규칙(언어 버전, 스타일 가이드, 테스트 프레임워크)을 인코딩하세요.
- 스티어링을 사용하여 작업을 재시작하지 않고 방향을 조정하세요.
- 작업을 체이닝하세요: 먼저 에이전트에게 코드를 분석하도록 요청한 후, 후속 작업에서 변경하세요.
- API 서버와 결합: Cowork으로 코드를 작성한 후, OpenAI 호환 API 엔드포인트를 통해 테스트하세요.
- 큰 모델이 더 나은 코드를 생성합니다. 복잡한 코딩 작업에는 하드웨어에 맞는 가장 큰 모델을 사용하세요.
문제 해결¶
| 문제 | 해결 방법 |
|---|---|
| 에이전트가 코드는 작성하지만 테스트를 실행하지 못함 | run_python 또는 run_command가 승인되었는지 확인하세요. 프로젝트 폴더에 읽기 및 쓰기 권한이 있는지 확인하세요. |
| 생성된 코드에 import 오류 발생 | 더 큰 모델(13B+)을 사용하세요. 폴더별 지시사항에 주요 의존성을 명시하세요. |
| 에이전트가 잘못된 파일을 수정함 | 작업 설명에서 수정할 파일을 구체적으로 지정하세요. 폴더별 지시사항으로 특정 디렉터리를 읽기 전용으로 표시하세요. |
| 에이전트 수정 후 테스트 실패 | 스티어링을 사용하여 에이전트에게 테스트를 다시 실행하고 실패를 수정하도록 요청하세요. 또는 후속 작업을 시작하세요: "Fix the failing tests in tests/." |
관련 페이지¶
- Cowork 개요 — Cowork 에이전트의 작동 방식 (ReAct 추론, 자율 실행)
- 도구 및 권한 — 내장 도구 및 권한 설정 전체 레퍼런스
- AI로 데이터 분석하기 — 데이터 분석에 초점을 맞춘 또 다른 Cowork 활용 사례
- 모델 실행하기 — 로컬 모델 로드 및 관리