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

pull/14503/head^2
Jun 2026-02-21 22:01:53 +09:00 committed by GitHub
parent dbf2c45869
commit a41c81dcd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 188 additions and 186 deletions

View File

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

View File

@ -1,35 +1,36 @@
--- ---
title: IDE 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로 현재 선택 또는 탭을 자동으로 공유합니다. - **Quick Launch**: `Cmd+Esc` (Mac) 또는 `Ctrl+Esc` (Windows/Linux)를 사용해 분할 터미널 뷰에서 OpenCode를 열거나, 이미 실행 중인 터미널 세션으로 포커스하세요.
- **New Session**: `Cmd+Shift+Esc` (Mac) 또는 `Ctrl+Shift+Esc` (Windows/Linux)를 사용해 기존 세션이 열려 있어도 새 OpenCode 터미널 세션을 시작하세요. UI의 OpenCode 버튼을 클릭해도 됩니다.
- **파일 참조 단축키** : 파일 참조를 삽입하려면 `Cmd+Option+K` (Mac) 또는 `Alt+Ctrl+K` (Linux / Windows)를 사용하십시오. 예를 들어, `@File#L37-42`. - **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 열기 1. VS Code를 여세요.4
2. 통합 terminal을 여십시오 2. 통합 터미널을 여세요.
3. 실행 `opencode` - 확장 자동으로 설치 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`를 실행하는 것을 보장합니다. - 통합 터미널에서 `opencode`를 실행하고 있는지 확인하세요.
- IDE용 CLI가 설치됩니다. - IDE용 CLI가 설치되어 있는지 확인하세요.
- VS Code : `code` 명령 - VS Code: `code` command
- 커서: `cursor` 명령 - Cursor: `cursor` command
- 윈드 서핑을 위해: `windsurf` 명령 - Windsurf: `windsurf` command
- VSCodium의 경우: `codium` 명령 - VSCodium: `codium` command
- 만약 `Cmd+Shift+P` (Mac) 또는 `Ctrl+Shift+P` (Windows/Linux)를 실행하고 "Shell Command: PATH"에서 'code' 명령을 설치하십시오 (또는 IDE에 해당) - 설치되어 있지 않다면 `Cmd+Shift+P` (Mac) 또는 `Ctrl+Shift+P` (Windows/Linux)를 실행하고 "Shell Command: Install 'code' command in PATH"(또는 IDE에 맞는 동등한 명령)를 검색하세요.
- Ensure VS Code는 확장을 설치하는 권한이 있습니다. - VS Code에 확장 프로그램 설치 권한이 있는지 확인하세요.

View File

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

View File

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