docs(ko): improve wording in gitlab, ide, index, keybinds, and lsp docs (#14517)

This commit is contained in:
Jun
2026-02-21 22:01:53 +09:00
committed by GitHub
parent dbf2c45869
commit a41c81dcd2
5 changed files with 188 additions and 186 deletions

View File

@@ -1,34 +1,34 @@
---
title: GitLab
description: GitLab 이슈 및 머지 리퀘스트에서 opencode를 사용하세요.
description: GitLab 이슈와 merge request에서 OpenCode를 사용하세요.
---
opencode는 GitLab CI/CD 파이프라인 또는 GitLab Duo를 통해 GitLab 워크플로우와 통합됩니다.
OpenCode는 GitLab CI/CD 파이프라인 또는 GitLab Duo를 통해 GitLab 워크플로 통합됩니다.
두 경우, opencode는 GitLab runners에서 실행됩니다.
두 경우 모두 OpenCode는 GitLab runner에서 실행됩니다.
---
# GitLab CI 소개
## GitLab CI
opencode는 일반 GitLab 파이프라인에서 작동합니다. [CI 컴포넌트](https://docs.gitlab.com/ee/ci/components/)로 파이프라인에 구축할 수 있습니다.
OpenCode는 일반 GitLab 파이프라인에서 작동합니다. [CI component](https://docs.gitlab.com/ee/ci/components/)로 파이프라인에 통합할 수 있습니다.
여기에서 우리opencode에 대한 커뮤니티 생성 CI / CD 구성품을 사용하고 있습니다. [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode).
여기OpenCode 커뮤니티 제작 CI/CD component인 [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode)를 사용합니다.
---
### 기능
- **실행별 사용자 지정 구성 사용**: 사용자 정의 구성 디렉토리와 opencode 구성, 예를 들어 `./config/#custom-directory`는 opencode 실행마다 활성화하거나 비활성화 할 수 있습니다.
- ** 최소 설정**: CI 구성 요소는 opencode를 배경으로 설정하면 opencode 구성과 초기 프롬프트를 만들 필요가 있습니다.
- **Flexible**: CI 구성 요소는 여러 입력을 지원합니다.
- **job별 custom config 사용**: custom config 디렉터리(예: `./config/#custom-directory`)를 사용해 OpenCode를 각 실행 단위로 설정하고 기능을 켜거나 끌 수 있습니다.
- **최소 설정**: CI component가 백그라운드에서 OpenCode를 설정하므로 OpenCode config와 초기 prompt만 만들면 됩니다.
- **유연함**: CI component는 동작을 사용자화할 수 있도록 여러 입력을 지원합니다.
---
## 설정
### Setup
1. opencode 인증 JSON을 **Settings** > **CI/CD** > **Variables**에서 파일 유형 CI 환경 변수로 저장하십시오. "Masked and hidden"로 표시하십시오.
2. `.gitlab-ci.yml` 파일에 뒤에 추가하십시오.
1. OpenCode 인증 JSON을 **Settings** > **CI/CD** > **Variables** 아래의 File 타입 CI 환경 변수로 저장하세요. 반드시 "Masked and hidden"로 표시하세요.
2. 아래 내용을 `.gitlab-ci.yml` 파일에 추가하세요.
```yaml title=".gitlab-ci.yml"
include:
@@ -40,40 +40,40 @@ opencode는 일반 GitLab 파이프라인에서 작동합니다. [CI 컴포넌
message: "Your prompt here"
```
더 많은 입력 사용 사례 [docs를 체크 아웃](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) 이 구성 요소에 대한.
더 많은 입력값과 사용 사례는 이 component의 [docs](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode)에서 확인하세요.
---
## GitLab Duo
opencode는 GitLab 워크플로우와 통합됩니다.
코멘트에 Mention `@opencode`, opencode GitLab CI 파이프라인 에서 작업을 실행합니다.
OpenCode는 GitLab 워크플로 통합됩니다.
댓글에서 `@opencode`를 멘션하면 OpenCode GitLab CI 파이프라인 에서 작업을 실행합니다.
---
### 기능
- **이슈**: opencode가 문제점을 보고 당신을 설명합니다.
- **수정 및 구현**: 이슈를 수정하거나 기능을 구현하려면 opencode에 문의하십시오.
새로운 지점을 만들고 변화를 병합 요청을 제기합니다.
- **보안**: opencode는 GitLab runners에서 실행됩니다.
- **이슈 분류**: OpenCode에 이슈를 살펴보고 설명해 달라고 요청할 수 있습니다.
- **수정 및 구현**: OpenCode에 이슈를 수정하거나 기능을 구현해 달라고 요청할 수 있습니다.
OpenCode는 새 브랜치를 만들고 변경 사항이 담긴 merge request를 생성합니다.
- **보안**: OpenCode는 GitLab runner에서 실행됩니다.
---
## 설정
### Setup
opencode는 GitLab CI/CD 파이프라인에서 실행되며, 여기서 설정해야 할 일은 다음과 같습니다.
OpenCode는 GitLab CI/CD 파이프라인에서 실행되며, 설정에 필요한 항목은 다음과 같습니다.
:::tip
[**GitLab docs**](https://docs.gitlab.com/user/duo agent platform/agent assistant/) 체크 아웃하십시오.
[최신 안내는 **GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)를 확인하세요.
:::
1. GitLab 환경 설정
2. CI/CD 설
3. AI 모형 공급자 API 열쇠를 얻으십시오
4. 서비스 계정 만들기
5. CI/CD 변수 구성
6. Flow config 파일을 만들려면 다음과 같습니다.
1. GitLab 환경 설정합니다.
2. CI/CD정합니다.
3. AI model provider API 키를 준비합니다.
4. 서비스 계정을 생성합니다.
5. CI/CD 변수를 설정합니다.
6. flow config 파일을 생성합니다. 예시는 다음과 같습니다.
<details>
@@ -152,44 +152,44 @@ opencode는 GitLab CI/CD 파이프라인에서 실행되며, 여기서 설정해
</details>
자세한 지침에 대한 [GitLab CLI Agent docs](https://docs.gitlab.com/user/duo agent platform/agent assistant/)를 참조할 수 있습니다.
[GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)에서 자세한 안내를 확인할 수 있습니다.
---
### 예제
다음은 GitLab에서 opencode를 사용할 수있는 몇 가지 예입니다.
다음은 GitLab에서 OpenCode를 사용는 몇 가지 예입니다.
:::tip
`@opencode`보다 다른 트리거 구문을 사용할 수 있습니다.
`@opencode` 대신 다른 trigger phrase를 사용하도록 설정할 수 있습니다.
:::
- **이슈 설명**
GitLab 문제에서이 코멘트를 추가하십시오.
GitLab 이슈에 아래 댓글을 남기세요.
```
@opencode explain this issue
```
opencode는 문제와 대답을 명확하게 설명합니다.
OpenCode가 이슈를 읽고 명확 설명으로 답변합니다.
- **이슈 해결**
GitLab 문제에서, 말한다:
GitLab 이슈에서 다음과 같이 요청하세요.
```
@opencode fix this
```
opencode로운 지점을 만들 것이며 변경 사항을 구현하고 변경 사항을 병합 요청을 엽니다.
OpenCode 브랜치를 만들고 변경 사항을 구현한 뒤, 해당 변경 사항으로 merge request를 엽니다.
- **머지 리퀘스트 검토**
GitLab 병합 요청에 대한 다음 의견을 남겨주세요.
GitLab merge request에 아래 댓글을 남세요.
```
@opencode review this merge request
```
opencode는 병합 요청을 검토하고 피드백을 제공합니다.
OpenCode가 merge request를 검토하고 피드백을 제공합니다.

View File

@@ -1,35 +1,36 @@
---
title: IDE
description: VS Code, Cursor 및 기타 IDE용 opencode 확장 프로그램.
description: VS Code, Cursor 및 기타 IDE용 OpenCode 확장 프로그램
---
opencode는 VS Code, Cursor, 또는 터미널을 지원하는 IDE와 통합됩니다. 시작하려면 terminal에서 `opencode`를 실행하십시오.
OpenCode는 VS Code, Cursor, 또는 터미널을 지원하는 모든 IDE와 통합됩니다. 시작하려면 터미널에서 `opencode`를 실행하세요.
---
## 사용법
-**Quick Launch**: `Cmd+Esc` (Mac) 또는 `Ctrl+Esc` (Windows/Linux)를 사용하여 통합 터미널 뷰에 opencode를 열거나 기존 terminal 세션을 이미 실행하면 됩니다. -**New Session**: `Cmd+Shift+Esc` (Mac) 또는 `Ctrl+Shift+Esc` (Windows/Linux)를 사용하여 새로운 opencode terminal 세션을 시작하려면 이미 열리면 됩니다. UI에서 opencode 버튼을 클릭합니다. -**Context Awareness**: opencode로 현재 선택 또는 탭을 자동으로 공유합니다.
- **파일 참조 단축키** : 파일 참조를 삽입하려면 `Cmd+Option+K` (Mac) 또는 `Alt+Ctrl+K` (Linux / Windows)를 사용하십시오. 예를 들어, `@File#L37-42`.
- **Quick Launch**: `Cmd+Esc` (Mac) 또는 `Ctrl+Esc` (Windows/Linux)를 사용해 분할 터미널 뷰에서 OpenCode를 열거나, 이미 실행 중인 터미널 세션으로 포커스하세요.
- **New Session**: `Cmd+Shift+Esc` (Mac) 또는 `Ctrl+Shift+Esc` (Windows/Linux)를 사용해 기존 세션이 열려 있어도 새 OpenCode 터미널 세션을 시작하세요. UI의 OpenCode 버튼을 클릭해도 됩니다.
- **Context Awareness**: 현재 선택 영역이나 탭을 OpenCode와 자동으로 공유합니다.
- **File Reference Shortcuts**: `Cmd+Option+K` (Mac) 또는 `Alt+Ctrl+K` (Linux/Windows)를 사용해 파일 참조를 삽입하세요. 예: `@File#L37-42`.
---
## 설치
VS Code에 opencode를 설치하고 Cursor, Windsurf, VSCodium 같은 인기있는 포크 :
VS Code Cursor, Windsurf, VSCodium 같은 인기 포크에 OpenCode를 설치하려면:
1. VS Code 열기
2. 통합 terminal을 여십시오
3. 실행 `opencode` - 확장 자동으로 설치
1. VS Code를 여세요.4
2. 통합 터미널을 여세요.
3. `opencode`를 실행하세요. 확장 프로그램이 자동으로 설치됩니다.
반면 TUI에서 `/editor` 또는 `/export`를 실행할 때, 당신은 `export EDITOR="code --wait"`를 설정할 필요가 있을 것입니다. [Learn more](/docs/tui/#editor-setup).
반면 TUI에서 `/editor` 또는 `/export`를 실행할 때 자체 IDE를 사용하려면 `export EDITOR="code --wait"`를 설정해야 합니다. [자세히 알아보기](/docs/tui/#editor-setup).
---
## 수동 설치
### 수동 설치
확장 마켓 플레이스에서 **opencode**를 검색하고 **Install** 클릭합니다.
Extension Marketplace에서 **OpenCode**를 검색한 다음 **Install** 클릭하세요.
---
@@ -37,11 +38,11 @@ VS Code에 opencode를 설치하고 Cursor, Windsurf, VSCodium과 같은 인기
확장이 자동으로 설치되지 않는 경우:
- 통합 terminal에서 `opencode`를 실행하는 것을 보장합니다.
- IDE용 CLI가 설치됩니다.
- VS Code : `code` 명령
- 커서: `cursor` 명령
- 윈드 서핑을 위해: `windsurf` 명령
- VSCodium의 경우: `codium` 명령
- 만약 `Cmd+Shift+P` (Mac) 또는 `Ctrl+Shift+P` (Windows/Linux)를 실행하고 "Shell Command: PATH"에서 'code' 명령을 설치하십시오 (또는 IDE에 해당)
- Ensure VS Code 확장 설치하는 권한이 있습니다.
- 통합 터미널에서 `opencode`를 실행하고 있는지 확인하세요.
- IDE용 CLI가 설치되어 있는지 확인하세요.
- VS Code: `code` command
- Cursor: `cursor` command
- Windsurf: `windsurf` command
- VSCodium: `codium` command
- 설치되어 있지 않다면 `Cmd+Shift+P` (Mac) 또는 `Ctrl+Shift+P` (Windows/Linux)를 실행하고 "Shell Command: Install 'code' command in PATH"(또는 IDE에 맞는 동등한 명령)를 검색하세요.
- VS Code 확장 프로그램 설치 권한이 있는지 확인하세요.

View File

@@ -7,19 +7,19 @@ import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console
[**OpenCode**](/)는 터미널 기반 인터페이스, 데스크톱 앱, IDE 확장 형태로 사용할 수 있는 오픈 소스 AI 코딩 에이전트입니다.
[**OpenCode**](/)는 오픈 소스 AI coding agent입니다. 터미널 기반 인터페이스, 데스크톱 앱, IDE 확장로 사용할 수 있니다.
![opencode TUI with the opencode theme](../../../assets/lander/screenshot.png)
바로 시작해 봅시다.
바로 시작해 보겠습니다.
---
## 사전 준비
#### 사전 준비
터미널에서 OpenCode를 사용하려면 다음이 필요합니다.
1. 최신 터미널 에뮬레이터 (예:)
1. 다음과 같은 최신 터미널 에뮬레이터
- [WezTerm](https://wezterm.org), 크로스 플랫폼
- [Alacritty](https://alacritty.org), 크로스 플랫폼
- [Ghostty](https://ghostty.org), Linux 및 macOS
@@ -31,13 +31,13 @@ export const console = config.console
## 설치
가장 쉬운 설치 방법은 설치 스크립트를 사용하는 것입니다.
OpenCode를 설치하는 가장 쉬운 방법은 설치 스크립트를 사용하는 것입니다.
```bash
curl -fsSL https://opencode.ai/install | bash
```
아래 명령으로도 설치할 수 있습니다.
다음 명령으로도 설치할 수 있습니다.
- **Node.js 사용**
@@ -79,9 +79,9 @@ curl -fsSL https://opencode.ai/install | bash
brew install anomalyco/tap/opencode
```
> 최신 릴리스 OpenCode tap 사용을 권장합니다. 공식 `brew install opencode` 포뮬러는 Homebrew 팀이 관리하므로 업데이트 주기가 더 긴 편입니다.
> 최신 릴리스를 사용하려면 OpenCode tap 사용을 권장합니다. 공식 `brew install opencode` formula는 Homebrew 팀이 관리하 업데이트 주기가 더 니다.
- **Arch Linux에서 Paru 사용**
- **Arch Linux에 설치**
```bash
sudo pacman -S opencode # Arch Linux (Stable)
@@ -91,7 +91,7 @@ curl -fsSL https://opencode.ai/install | bash
#### Windows
:::tip[권장: WSL 사용]
Windows에서는 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl) 사용하는 것이 가장 좋습니다. OpenCode 기능과의 호환성이 높고 성능도 더 좋습니다.
Windows에서는 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl) 사용을 권장합니다. 성능이 더 좋고 OpenCode 기능과의 완전한 호환성을 제공합니다.
:::
- **Chocolatey 사용**
@@ -124,7 +124,7 @@ Windows에서는 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)을 사
docker run -it --rm ghcr.io/anomalyco/opencode
```
Windows에서 Bun을 한 OpenCode 설치는 아직 지원되지 않으며, 현재 지원을 준비 중입니다.
현재 Windows에서 Bun을 사용한 OpenCode 설치 지원은 준비 중입니다.
[Releases](https://github.com/anomalyco/opencode/releases)에서 바이너리를 직접 받아 설치할 수도 있습니다.
@@ -134,16 +134,16 @@ Windows에서 Bun을 통한 OpenCode 설치는 아직 지원되지 않으며,
OpenCode는 API 키를 설정하면 원하는 LLM 제공자를 사용할 수 있습니다.
LLM 제공자(LLM Provider)를 처음 사용한다면 [OpenCode Zen](/docs/zen)을 추천합니다.
LLM 제공자를 처음 사용한다면 [OpenCode Zen](/docs/zen) 사용을 권장합니다.
OpenCode 팀이 테스트하고 검증한 모델 목록입니다.
1. TUI에서 `/connect` 명령을 실행한 뒤 `opencode`를 선택하고 [opencode.ai/auth](https://opencode.ai/auth)로 이동합니다.
1. TUI에서 `/connect` 명령을 실행하고 `opencode`를 선택한 다음 [opencode.ai/auth](https://opencode.ai/auth)로 이동합니다.
```txt
/connect
```
2. 로그인 결제 정보를 입력하고 API 키를 복사합니다.
2. 로그인하고 결제 정보를 추가한 뒤 API 키를 복사합니다.
3. API 키를 붙여 넣습니다.
@@ -154,13 +154,13 @@ OpenCode 팀이 테스트하고 검증한 모델 목록입니다.
└ enter
```
다른 제공자를 선택해도 됩니다. [더 알아보기](/docs/providers#directory).
또는 다른 제공자 중 하나를 선택할 수도 있습니다. [더 알아보기](/docs/providers#directory).
---
## 초기화
이제 제공자 구성이 끝났으니, 작업 프로젝트 디렉터리로 이동합니다.
이제 제공자 구성을 마쳤으니 작업하려는 프로젝트로 이동합니다.
```bash
cd /path/to/project
@@ -172,19 +172,19 @@ cd /path/to/project
opencode
```
다음 명령으로 프로젝트 OpenCode 초기화를 진행합니다.
다음 명령을 실행해 프로젝트에서 OpenCode 초기화합니다.
```bash frame="none"
/init
```
이 명령 프로젝트를 분석하고 루트에 `AGENTS.md` 파일을 생성합니다.
이 명령을 실행하면 OpenCode가 프로젝트를 분석하고 프로젝트 루트에 `AGENTS.md` 파일을 생성합니다.
:::tip
프로젝트의 `AGENTS.md` Git에 커밋해 두는 것을 권장합니다.
프로젝트의 `AGENTS.md` 파일은 Git에 커밋는 것을 권장합니다.
:::
그러면 OpenCode가 프로젝트 구조와 코딩 패턴을 더 잘 이해할 수 있습니다.
이렇게 하면 OpenCode가 프로젝트 구조와 사용 중인 코딩 패턴을 더 잘 이해할 수 있습니다.
---
@@ -192,7 +192,7 @@ opencode
이제 OpenCode로 프로젝트 작업을 시작할 준비가 되었습니다. 무엇이든 물어보세요.
AI 코딩 에이전트를 처음 쓰는 경우 도움이 되는 예시를 소개합니다.
AI coding agent를 처음 사용한다면 도움이 될 수 있는 예시를 소개합니다.
---
@@ -208,25 +208,25 @@ OpenCode에 코드베이스 설명을 요청할 수 있습니다.
How is authentication handled in @packages/functions/src/api/index.ts
```
직접 작업하지 않은 코드 영역을 이해할 때 특히 유용합니다.
이 방법은 직접 작업하지 않은 코드 영역을 이해할 때 유용합니다.
---
### 기능 추가
프로젝트 새 기능 추가해 달라고 요청할 수 있습니다. 다만 먼저 계획을 만들하는 것을 권장합니다.
OpenCode에 프로젝트 새 기능 추가 요청할 수 있습니다. 다만 먼저 계획을 만들도록 요청하는 것을 권장합니다.
1. **계획 만들기**
OpenCode에는 변경 작업을 비활성화하고 구현 방법 제안하는 *Plan mode*가 있습니다.
OpenCode에는 변경 작업 기능을 비활성화하고 기능을 구현 방법 제안하는 *Plan mode*가 있습니다.
**Tab** 키로 전환하면 오른쪽 아래에 모드 표시가 나타납니다.
**Tab** 키를 눌러 전환하세요. 화면 오른쪽 아래에 모드 표시를 확인할 수 있습니다.
```bash frame="none" title="Switch to Plan mode"
<TAB>
```
이제 원하는 작업을 구체적으로 설명합니다.
이제 수행하길 원하는 작업을 설명해 보겠습니다.
```txt frame="none"
When a user deletes a note, we'd like to flag it as deleted in the database.
@@ -234,15 +234,15 @@ How is authentication handled in @packages/functions/src/api/index.ts
From this screen, the user can undelete a note or permanently delete it.
```
OpenCode가 정확히 이해할 만큼 충분한 맥락을 주는 것이 중요합니다. 팀의 주니어 개발자에게 설명하듯 요청하면 도움이 됩니다.
OpenCode가 원하는 작업을 이해할 수 있도록 충분한 세부 정보를 제공해야 합니다. 팀의 주니어 개발자에게 말하듯이 설명하면 도움이 됩니다.
:::tip
맥락과 예시를 충분히 제공하면 원하는 결과를 얻기 쉽습니다.
OpenCode가 원하는 작업을 이해하도록 충분한 맥락과 예시를 제공하세요.
:::
2. **계획 다듬기**
계획이 나오면 피드백을 주거나 추가 요구사항을 붙일 수 있습니다.
계획이 나오면 피드백을 주거나 세부 사항을 더 추가할 수 있습니다.
```txt frame="none"
We'd like to design this new screen using a design I've used before.
@@ -250,20 +250,20 @@ How is authentication handled in @packages/functions/src/api/index.ts
```
:::tip
이미지를 터미널에 드래그 앤 드롭하면 프롬프트에 첨부할 수 있습니다.
이미지를 터미널에 드래그 앤 드롭해 prompt에 추가하세요.
:::
OpenCode는 첨부한 이미지를 분석해 프롬프트에 포함합니다.
OpenCode는 제공한 이미지를 스캔해 prompt에 추가할 수 있습니다. 이미지를 터미널에 드래그 앤 드롭하면 됩니다.
3. **기능 구현**
계획이 충분히 만족스러우면 **Tab** 키를 다시 눌러 *Build mode*로 돌아갑니다.
계획이 충분히 마음에 들면 **Tab** 키를 다시 눌러 *Build mode*로 전환하세요.
```bash frame="none"
<TAB>
```
그리고 실제 변경을 요청합니다.
그리고 변경을 적용해 달라고 요청하세요.
```bash frame="none"
Sounds good! Go ahead and make the changes.
@@ -273,7 +273,7 @@ How is authentication handled in @packages/functions/src/api/index.ts
### 바로 변경하기
비교적 단한 변경은 계획 검토 없이 바로 구현하도록 요청해도 됩니다.
비교적 단한 변경은 계획을 먼저 검토하지 않고 바로 구현하도록 요청할 수 있습니다.
```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
We need to add authentication to the /settings route. Take a look at how this is
@@ -281,37 +281,37 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts
```
원하는 변경이 정확히 반영되도록, 필요한 맥락을 충분히 제공하세요.
OpenCode가 올바른 변경을 하도록 충분한 세부 정보를 제공해야 합니다.
---
### 변경 되돌리기
예를 들어 OpenCode에 변경을 요청했다고 가정해 보겠습니다.
예를 들어 OpenCode에 변경을 요청했다고 보겠습니다.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
결과가 기대와 다르면 `/undo` 명령으로 **되돌릴 수** 있습니다.
그런데 원하는 결과가 아니었다면 `/undo` 명령으로 변경을 **되돌릴 수** 있습니다.
```bash frame="none"
/undo
```
OpenCode 방금 적용한 변경을 되돌리고 원래 메시지를 다시 보여줍니다.
OpenCode 방금 적용한 변경을 되돌리고 원래 메시지를 다시 보여줍니다.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
이 상태에서 프롬프트를 다듬어 다시 시도하면 됩니다.
여기에서 prompt를 수정해 다시 요청할 수 있습니다.
:::tip
`/undo`는 여러 번 연속으로 실행할 수 있습니다.
:::
반대로 `/redo` 명령으로 **다시 적용**할 수 있습니다.
또는 `/redo` 명령으로 변경을 **다시 적용**할 수 있습니다.
```bash frame="none"
/redo
@@ -327,18 +327,18 @@ OpenCode와의 대화는 [팀과 공유](/docs/share)할 수 있습니다.
/share
```
현재 대화 링크를 생성하고 클립보드에 복사합니다.
이 명령을 실행하면 현재 대화 링크를 생성하고 클립보드에 복사합니다.
:::note
대화는 기본값으로 공유되지 않습니다.
:::
아래는 OpenCode [대화 예시](https://opencode.ai/s/4XP1fce5)입니다.
다음은 OpenCode [대화 예시](https://opencode.ai/s/4XP1fce5)입니다.
---
## 사용자 지정
이제 OpenCode 사용의 기본은 끝났습니다.
이제 OpenCode 사용법을 익혔습니다.
자신의 워크플로우에 맞추려면 [테마 선택](/docs/themes), [키바인드 사용자 지정](/docs/keybinds), [코드 포매터 설정](/docs/formatters), [커스텀 명령 작성](/docs/commands), [OpenCode 구성 조정](/docs/config)을 추천합니다.
원하는 방식에 맞추려면 [테마 선택](/docs/themes), [키바인드 사용자 지정](/docs/keybinds), [코드 formatter 설정](/docs/formatters), [custom command 만들기](/docs/commands), [OpenCode config 설정](/docs/config)을 권장합니다.

View File

@@ -1,9 +1,9 @@
---
title: 키바인드
description: 키바인드를 사용자 지정하세요.
description: 키바인드를 커스터마이즈하세요.
---
opencode는 opencode config를 통해 사용자 정의 할 수있는 keybinds 목록을 가지고 있습니다.
OpenCodeOpenCode config를 통해 커스터마이즈할 수 있는 keybinds 목록 있습니다.
```json title="opencode.json"
{
@@ -107,17 +107,17 @@ opencode는 opencode config를 통해 사용자 정의 할 수있는 keybinds
## 리더 키
opencode는 대부분의 keybinds에 대한 `leader` 키를 사용합니다. 이것은 당신의 terminal에 있는 충돌을 피니다.
OpenCode는 대부분의 keybinds에 `leader` 키를 사용합니다. 이렇게 하면 terminal에 충돌을 피할 수 있습니다.
기본으로 `ctrl+x` 리더 키이며 대부분의 작업은 리더 키를 먼저 누르고 단축키를 누릅니다. 예를 들어, 새 세션을 시작하려면 먼저 `ctrl+x`를 누르고 `n` 누릅니다.
기본으로 `ctrl+x` 리더 키이며, 대부분의 작업은 먼저 리더 키를 누른 뒤 단축키를 누릅니다. 예를 들어 새 세션을 시작하려면 먼저 `ctrl+x`를 누르고 `n` 누릅니다.
키바인드에 리더 키를 사용할 필요는 없지만, 사용하는 것을 권장합니다.
keybinds에 리더 키를 사용할 필요는 없지만, 사용하는 것을 권장합니다.
---
## 키바인드 비활성화
"none"의 값으로 구성에 키를 추가하 keybind를 비활성화 할 수 있습니다.
config에 해당 키를 값 `"none"`으로 추가하 keybind를 비활성화할 수 있습니다.
```json title="opencode.json"
{
@@ -132,39 +132,39 @@ opencode는 대부분의 keybinds에 대한 `leader` 키를 사용합니다. 이
## 데스크탑 프롬프트 단축키
opencode 데스크톱 앱 프롬프트 입력은 텍스트 편집을 위한 일반적인 Readline/Emacs-style 단축키를 지원합니다. 이들은 내장되어 있으며 현재 `opencode.json`를 통해 구성할 수 없습니다.
OpenCode 데스크톱 앱 프롬프트 입력은 텍스트 편집을 위한 일반적인 Readline/Emacs-style 단축키를 지원합니다. 이 단축키는 내장되어 있으며 현재 `opencode.json`으로는 설정할 수 없습니다.
| 단축키 | 동작 |
| -------- | -------------------------- |
| `ctrl+a` | 현재 시작으로 이동 |
| `ctrl+e` | 현재 끝으로 이동 |
| `ctrl+b` | 커서를 다시 한 문자로 이동 |
| `ctrl+f` | 한자 앞의 커서 |
| `alt+b` | 한 단어로 커서 이동 |
| `alt+f` | 한 단어를 넘겨 주세요 |
| `ctrl+d` | 커서의 캐릭터 삭제 |
| `ctrl+k` | 노선의 종료 |
| `ctrl+u` | 노선 시작 |
| `ctrl+w` | 이전 단어 |
| `alt+d` | 다음 단어를 죽이기 |
| `ctrl+t` | 자가용 캐릭터 |
| `ctrl+g` | 팝오버 취소 / 응답 취소 |
| 단축키 | 동작 |
| -------- | --------------------------------- |
| `ctrl+a` | 현재 시작으로 이동 |
| `ctrl+e` | 현재 끝으로 이동 |
| `ctrl+b` | 커서를 문자 하나 뒤로 이동 |
| `ctrl+f` | 커서를 문자 하나 앞으로 이동 |
| `alt+b` | 커서를 단어 하나 뒤로 이동 |
| `alt+f` | 커서를 단어 하나 앞으로 이동 |
| `ctrl+d` | 커서 아래 문자 삭제 |
| `ctrl+k` | 줄 끝까지 삭제 |
| `ctrl+u` | 시작까지 삭제 |
| `ctrl+w` | 이전 단어 삭제 |
| `alt+d` | 다음 단어 삭제 |
| `ctrl+t` | 문자 순서 바꾸기 |
| `ctrl+g` | 팝오버 취소 / 실행 중인 응답 중단 |
---
## Shift+Enter
몇몇 terminal은 기본적으로 입력한 보조 키를 보내지 않습니다. `Shift+Enter`를 이스케이프 시퀀스로 보낼 terminal을 구성해야 할 수 있습니다.
일부 terminal은 기본적으로 Enter와 modifier 키 조합을 전송하지 않습니다. `Shift+Enter`를 이스케이프 시퀀스로 전송하도록 terminal을 설정해야 할 수 있습니다.
### Windows Terminal
`settings.json`를 엽니다:
다음 경로의 `settings.json`을 여세요:
```
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
```
루트 레벨 `actions` 배열에 이것을 추가하십시오:
루트 레벨 `actions` 배열에 다음을 추가하세요:
```json
"actions": [
@@ -178,7 +178,7 @@ opencode 데스크톱 앱 프롬프트 입력은 텍스트 편집을 위한 일
]
```
루트 레벨 `keybindings` 배열에 이것을 추가하십시오:
루트 레벨 `keybindings` 배열에 다음을 추가하세요:
```json
"keybindings": [
@@ -189,4 +189,4 @@ opencode 데스크톱 앱 프롬프트 입력은 텍스트 편집을 위한 일
]
```
파일을 저장하고 Windows Terminal을 다시 시작하거나 새 탭을 엽니 다.
파일을 저장한 뒤 Windows Terminal을 다시 시작하거나 새 탭을 여세요.

View File

@@ -1,62 +1,63 @@
---
title: LSP 서버
description: OpenCode는 LSP 서버와 통합되어 작동합니다.
description: OpenCode는 LSP 서버와 통합니다.
---
OpenCode는 언어 서버 프로토콜(LSP)과 통합되어 LLM이 코드베이스와 상호 작용할 수 있게 돕습니다. 이를 통해 진단 정보를 사용하여 LLM에 피드백을 제공합니다.
OpenCode는 Language Server Protocol(LSP)과 통합되어 LLM이 코드베이스와 상호작용하도록 돕습니다. 진단 정보를 활용해 LLM에 피드백을 제공합니다.
---
## 기본 제공 (Built-in)
OpenCode는 인기 있는 언어들에 대해 여러 내장 LSP 서버를 제공합니다.
OpenCode는 널리 사용되는 언어를 위해 여러 built-in LSP 서버를 제공합니다.
| LSP 서버 | 확장자 | 요구사항 |
| ------------------ | ------------------------------------------------------------------ | ----------------------------------------------------- |
| astro | .astro | Astro 프로젝트 자동 설치 |
| bash | .sh, .bash, .zsh, .ksh | bash-language-server 자동 설치 |
| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ 프로젝트 자동 설치 |
| csharp | .cs | `.NET SDK` 설치 |
| clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` 명령 사용 가능 |
| dart | .dart | `dart` 명령 사용 가능 |
| deno | .ts, .tsx, .js, .jsx, .mjs | `deno` 명령 사용 가능(deno.json/deno.jsonc 자동 감지) |
| elixir-ls | .ex, .exs | `elixir` 명령 사용 가능 |
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | 프로젝트 `eslint` 의존성 |
| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` 설치 |
| gleam | .gleam | `gleam` 명령 사용 가능 |
| gopls | .go | `go` 명령 사용 가능 |
| hls | .hs, .lhs | `haskell-language-server-wrapper` 명령 사용 가능 |
| jdtls | .java | `Java SDK (version 21+)` 설치 |
| kotlin-ls | .kt, .kts | Kotlin 프로젝트용 자동 설치 |
| lua-ls | .lua | Lua 프로젝트 자동 설치 |
| nixd | .nix | `nixd` 명령 사용 가능 |
| ocaml-lsp | .ml, .mli | `ocamllsp` 명령 사용 가능 |
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .ct, .vue, .astro, .svelte | 프로젝트의 `oxlint` 의존성 |
| PHP intelephense | .php | PHP 프로젝트 자동 설치 |
| prisma | .prisma | `prisma` 명령 사용 가능 |
| pyright | .py, .pyi | `pyright` 의존성 설치 |
| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` 및 `gem` 명령 사용 가능 |
| rust | .rs | `rust-analyzer` 명령 사용 가능 |
| sourcekit-lsp | .swift, .objc, .objcpp | `swift` 설치 (macOS의 `xcode`) |
| svelte | .svelte | Svelte 프로젝트 자동 설치 |
| terraform | .tf, .tfvars | GitHub 릴리스에서 자동 설치 |
| typst | .typ, .typc | GitHub 릴리스에서 자동 설치 |
| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | 프로젝트의 `typescript` 의존성 |
| vue | .vue | Vue 프로젝트 자동 설치 |
| yaml-ls | .yaml, .yml | Red Hat yaml-language-server 자동 설치 |
| zls | .zig, .zon | `zig` 명령 사용 가능 |
| LSP 서버 | 확장자 | 요구 사항 |
| ------------------ | ------------------------------------------------------------------- | ---------------------------------------------------------- |
| astro | .astro | Astro 프로젝트에서 자동 설치 |
| bash | .sh, .bash, .zsh, .ksh | `bash-language-server` 자동 설치 |
| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ 프로젝트에서 자동 설치 |
| csharp | .cs | `.NET SDK` 설치 |
| clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` 명령 사용 가능 |
| dart | .dart | `dart` 명령 사용 가능 |
| deno | .ts, .tsx, .js, .jsx, .mjs | `deno` 명령 사용 가능 (`deno.json`/`deno.jsonc` 자동 감지) |
| elixir-ls | .ex, .exs | `elixir` 명령 사용 가능 |
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | 프로젝트 `eslint` dependency 존재 |
| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` 설치 |
| gleam | .gleam | `gleam` 명령 사용 가능 |
| gopls | .go | `go` 명령 사용 가능 |
| hls | .hs, .lhs | `haskell-language-server-wrapper` 명령 사용 가능 |
| jdtls | .java | `Java SDK (version 21+)` 설치 |
| julials | .jl | `julia` 및 `LanguageServer.jl` 설치됨 |
| kotlin-ls | .kt, .kts | Kotlin 프로젝트에서 자동 설치 |
| lua-ls | .lua | Lua 프로젝트에서 자동 설치 |
| nixd | .nix | `nixd` 명령 사용 가능 |
| ocaml-lsp | .ml, .mli | `ocamllsp` 명령 사용 가능 |
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | 프로젝트에 `oxlint` dependency 존재 |
| php intelephense | .php | PHP 프로젝트에서 자동 설치 |
| prisma | .prisma | `prisma` 명령 사용 가능 |
| pyright | .py, .pyi | `pyright` dependency 설치됨 |
| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` 및 `gem` 명령 사용 가능 |
| rust | .rs | `rust-analyzer` 명령 사용 가능 |
| sourcekit-lsp | .swift, .objc, .objcpp | `swift` 설치됨 (macOS에서는 `xcode`) |
| svelte | .svelte | Svelte 프로젝트에서 자동 설치 |
| terraform | .tf, .tfvars | GitHub releases에서 자동 설치 |
| tinymist | .typ, .typc | GitHub releases에서 자동 설치 |
| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | 프로젝트에 `typescript` dependency 존재 |
| vue | .vue | Vue 프로젝트에서 자동 설치 |
| yaml-ls | .yaml, .yml | Red Hat `yaml-language-server` 자동 설치 |
| zls | .zig, .zon | `zig` 명령 사용 가능 |
LSP 서버는 위 파일 확장자 중 하나가 감지되고 요구 사항이 충족되면 자동으로 활성화됩니다.
확장자 중 하나가 감지되고 요구 사항이 충족되면 LSP 서버가 자동으로 활성화됩니다.
:::note
`OPENCODE_DISABLE_LSP_DOWNLOAD` 환경 변수를 `true`로 설정하여 자동 LSP 서버 다운로드를 비활성화 할 수 있습니다.
`OPENCODE_DISABLE_LSP_DOWNLOAD` 환경 변수를 `true`로 설정하 LSP 서버 자동 다운로드를 비활성화할 수 있습니다.
:::
---
## 작동 방식
OpenCode가 파일을 열 때, 다음과 같이 동합니다:
OpenCode가 파일을 열 다음과 같이 동합니다.
1. 활성화된 모든 LSP 서버에 대해 파일 확장자를 확인합니다.
2. 적절한 LSP 서버가 아직 실행 중이지 않다면 시작합니다.
@@ -65,7 +66,7 @@ OpenCode가 파일을 열 때, 다음과 같이 작동합니다:
## 구성
OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수 있습니다.
OpenCode config의 `lsp` 섹션에서 LSP 서버를 사용자 정의할 수 있습니다.
```json title="opencode.json"
{
@@ -74,23 +75,23 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
}
```
각 LSP 서버는 다음을 지원합니다:
각 LSP 서버는 다음 속성을 지원합니다.
| 속성 | 유형 | 설명 |
| ---------------- | -------- | --------------------------------------- |
| `disabled` | boolean | LSP 서버를 비활성화하려면 `true`로 설정 |
| `command` | string[] | LSP 서버를 시작하는 명령 |
| `extensions` | string[] | 이 LSP 서버의 확장자 |
| `env` | object | 서버 시작 시 설정할 환경 변수 |
| `initialization` | object | LSP 서버에 보내는 초기화 옵션 |
| 속성 | 타입 | 설명 |
| ---------------- | -------- | --------------------------------------------- |
| `disabled` | boolean | LSP 서버를 비활성화하려면 `true`로 설정하세요 |
| `command` | string[] | LSP 서버를 시작하는 명령입니다 |
| `extensions` | string[] | 이 LSP 서버가 처리할 파일 확장자입니다 |
| `env` | object | 서버 시작 시 설정할 환경 변수입니다 |
| `initialization` | object | LSP 서버로 전송할 초기화 옵션입니다 |
몇 가지 예제를 살펴봅시다.
예시를 살펴보겠습니다.
---
## 환경 변수
### 환경 변수
`env` 속성을 사용하 LSP 서버 시작할 때 환경 변수를 설정니다.
`env` 속성을 사용하 LSP 서버 시작 환경 변수를 설정할 수 있습니다.
```json title="opencode.json" {5-7}
{
@@ -109,7 +110,7 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
### 초기화 옵션
`initialization` 속성을 사용하여 초기화 옵션을 LSP 서버에 전달합니다. 이은 LSP `initialize` 요청에 보내진 서버 별 설정입니다.
`initialization` 속성을 사용해 LSP 서버에 초기화 옵션을 전달하세요. 이은 LSP `initialize` 요청 중에 전송되는 서버별 설정입니다.
```json title="opencode.json" {5-9}
{
@@ -127,14 +128,14 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
```
:::note
초기화 옵션은 LSP 서버 다릅니다. LSP 서버의 사용 가능한 옵션 확인하세요.
초기화 옵션은 LSP 서버마다 다릅니다. 사용 가능한 옵션은 해당 LSP 서버 문서를 확인하세요.
:::
---
### LSP 서버 비활성화
전역적으로 **모든** LSP 서버를 비활성화하려면 `lsp`를 `false`로 설정하십시오.
전역에서 **모든** LSP 서버를 비활성화하려면 `lsp`를 `false`로 설정하세요.
```json title="opencode.json" {3}
{
@@ -143,7 +144,7 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
}
```
**특정** LSP 서버를 비활성화하려면 `disabled`를 `true`로 설정하십시오.
**특정** LSP 서버를 비활성화하려면 `disabled`를 `true`로 설정하세요.
```json title="opencode.json" {5}
{
@@ -160,7 +161,7 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
## 사용자 정의 LSP 서버
명령어와 파일 확장자를 지정하여 사용자 정의 LSP 서버를 추가할 수 있습니다.
명령 파일 확장자를 지정 사용자 정의 LSP 서버를 추가할 수 있습니다.
```json title="opencode.json" {4-7}
{
@@ -180,9 +181,9 @@ OpenCode 설정의 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 수
### PHP Intelephense
PHP Intelephense는 라이선스 키를 통해 프리미엄 기능을 제공합니다. 텍스트 파일에 키(만)를 저장하여 라이선스 키를 제공할 수 있습니다.
PHP Intelephense는 라이선스 키를 통해 프리미엄 기능을 제공합니다. 텍스트 파일에 키 저장 라이선스 키를 제공할 수 있습니다.
- macOS/Linux: `$HOME/intelephense/license.txt`
- Windows: `%USERPROFILE%/intelephense/license.txt`
파일에는 다른 내용이 없어야 합니다.
파일에는 추가 내용 없이 라이선스 키만 포함하는 것이 좋습니다.