# 코드

> 컴퓨터의 프로젝트에서 Dvina가 코드를 작성하게 하고, 모든 변경 사항을 검토한 다음 채팅에서 커밋하고 풀 리퀘스트를 여세요.

Dvina는 메모, 대화 스레드, 작업의 배경을 참고하며 컴퓨터의 프로젝트에서 코드를 작성합니다. 다른 모든 작업에 사용하는 바로 그 앱에서 원하는 내용을 설명하고, 변경 사항을 검토하고, 결과물을 배포할 수 있습니다.

## 시작하기 전에

코드 기능은 Mac, Windows, Linux용 Dvina 데스크톱 앱에 포함되어 있습니다. 별도로 설치할 것은 없습니다. 적어도 한 대의 컴퓨터에 Dvina가 있어야 하며, 다른 모든 기기에서도 작업을 시작하고 진행 상황을 확인할 수 있습니다.

데스크톱 앱을 받으려면 [Dvina 다운로드 및 설치](/docs/use-dvina/get-started/install)를 참조하세요.

## 프로젝트 열기

프로젝트는 컴퓨터에 있는 폴더로, 코드 저장소 또는 일반 폴더일 수 있습니다.

1. 데스크톱 앱에서 Dock을 열고 프로젝트 행(**프로젝트**)을 선택하세요.
2. **열기…**를 선택해 폴더나 코드 저장소를 고르거나, **새 프로젝트…**를 선택해 이 컴퓨터에 새 폴더를 만드세요.

새 프로젝트를 만들 때 **Git 저장소 만들기**를 켜면 모든 변경 사항의 이력이 저장되어 Dvina의 수정 사항을 되돌릴 수 있습니다.

채팅에서는 선택한 프로젝트에서 작업합니다. 코드 프로젝트의 경우 Dock에 브랜치도 표시됩니다.

## 작업 요청하기

"CSV 내보내기에 올바른 날짜를 사용하도록 수정해 줘"처럼 원하는 내용을 설명하세요. Dvina가 컴퓨터에서 이를 작업으로 실행하는 동안 대화를 계속하거나 다른 작업을 시작할 수 있습니다. 여러 작업이 하나의 저장소에서 진행되면서 어떤 작업이 먼저 커밋할지 서로 결정할 수 있습니다.

Dvina는 코드를 작성하기 전에 프로젝트와 관련 맥락을 함께 읽습니다. 이전 채팅과 파일을 검색해 작업의 배경도 함께 파악합니다. 또한 프로젝트의 AGENTS.md 또는 CLAUDE.md를 따릅니다.

## 변경 사항 검토하기

각 작업의 응답은 변경 사항과 함께, 작업 이름이 붙고 **검토 준비 완료**라고 표시된 카드로 돌아옵니다.

- **변경 사항 확인하기:** **변경 사항**을 선택하면 측면 패널에서 각 파일의 변경 사항을 볼 수 있습니다. **파일**에서는 프로젝트를 둘러볼 수 있습니다.
- **한 턴 되돌리기:** 파일을 변경한 응답 아래에서 변경된 파일 수가 표시된 줄을 선택한 다음 **되돌리기**를 선택하고 **이 턴을 되돌릴까요?**에서 확인하세요. 파일은 해당 턴 이전 상태로 돌아가며, 그 이후에 이루어진 변경 사항은 유지됩니다.

## 커밋하고 풀 리퀘스트 열기

1. 작업 카드에서 **커밋**을 선택하세요.
2. **변경 사항 커밋**에는 현재 브랜치에 커밋될 파일과 함께 추천 **제목** 및 **메시지**가 표시됩니다. **커밋**을 선택하세요. 이 단계에서는 아무것도 푸시되지 않습니다.
3. 풀 리퀘스트를 열려면 **푸시 및 PR 만들기**를 선택하세요. Dvina가 먼저 현재 브랜치를 푸시한 다음 풀 리퀘스트를 엽니다. 커밋하지 않은 파일은 포함되지 않습니다.

풀 리퀘스트는 본인의 Git 로그인으로 진행됩니다. GitHub나 GitLab에서는 Dvina가 풀 리퀘스트를 열고, 다른 호스트에서는 해당 호스트의 새 풀 리퀘스트 페이지가 브라우저에 열립니다. 완료되면 **PR 보기**를 선택하세요.

## 승인

빌드와 테스트는 바로 실행됩니다. 파일 삭제, 푸시, 데이터베이스 변경, 배포, 비밀 정보에 접근하는 작업은 승인을 기다립니다. 카드에는 승인이 필요한 이유가 표시됩니다. 예를 들어 **이 명령을 실행할까요?**와 함께 **파일을 삭제합니다** 또는 **데이터베이스를 변경합니다**가 표시되면 **허용** 또는 **거부**를 선택하세요. 관리자는 어떤 작업에 항상 승인이 필요한지 설정할 수 있습니다.

> [!IMPORTANT]
> 승인하기 전에는 아무것도 푸시되지 않습니다. 프로젝트는 컴퓨터에 있는 폴더이며, Git을 사용하면 Dvina가 수정한 모든 내용을 되돌릴 수 있습니다.

## 시뮬레이터 또는 에뮬레이터에서 테스트하기

데스크톱 앱에서 Dvina는 사용자가 앱을 사용하는 것과 같은 방식으로 이 컴퓨터에서 앱을 테스트할 수 있습니다. 브라우저, Mac의 iOS 시뮬레이터, 또는 Mac, Windows, Linux의 Android 에뮬레이터를 사용할 수 있습니다.

1. Dock을 열고 **기기**라고 표시된 행을 선택하세요.
2. **이 기기**에서 **브라우저**, **iOS 시뮬레이터** 또는 **Android 에뮬레이터**를 선택하세요.

측면 패널에 기기 화면이 열립니다. 꺼져 있는 시뮬레이터는 화면을 열면 시작됩니다. 다른 기기를 사용하려면 화면 상단에서 **기기 선택**을 선택하세요. 각 기기에는 운영체제와 **실행 중** 또는 **꺼짐** 상태가 표시됩니다.

브라우저를 표시하거나 숨기려면 Mac에서는 <kbd>⌘</kbd> <kbd>⇧</kbd> <kbd>B</kbd>를, Windows와 Linux에서는 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>B</kbd>를 누르세요. 보고 있지 않은 기기 화면에서 Dvina가 작업하는 동안에는 **기기** 행에 점이 표시됩니다.

### Dvina의 기기 사용 허용하기

Dvina가 시뮬레이터나 에뮬레이터를 처음 사용할 때는 **Dvina가 iPhone 17 Pro를 사용하도록 허용할까요?**와 같은 메시지로 권한을 요청합니다. Dvina가 해당 기기의 화면을 볼 수 있으므로 실제 계정으로 로그인하지 마세요. **허용** 또는 **거부**를 선택하세요. 선택한 내용은 기기에 저장되므로 다른 채팅에서는 다시 묻지 않습니다. 허용하기 전까지는 기기 화면에 **Dvina의 사용 허용**이 표시됩니다.

Dvina가 작업하는 동안 기기 화면에 **Dvina가 이 기기를 사용 중입니다**가 표시되고, 채팅에서 기기 화면을 실시간으로 볼 수 있습니다. 더 크게 보려면 **크게 보기**를 선택하세요. 기기에서 전송, 결제, 삭제 작업을 할 때는 매번 승인을 기다립니다.

기기를 직접 사용하려면 **직접 제어**를 선택하세요. 터치와 키 입력이 기기에 전달되며, **홈** 버튼과 Android의 **뒤로**, **최근 앱** 버튼을 누를 수 있습니다. 사용을 마치면 **제어권 돌려주기**를 선택하세요. Dvina가 작업을 이어갑니다.

### iOS 시뮬레이터 설정하기

iOS 시뮬레이터가 설정되어 있지 않으면 해당 행을 선택할 때 **iOS 시뮬레이터 설정** 체크리스트가 열립니다. 다른 곳에서 완료한 단계도 자동으로 완료 표시됩니다.

1. **Xcode 설치:** **App Store 열기**를 선택하세요. Xcode는 무료이며 용량은 약 7 GB입니다. 설치가 끝나면 한 번 실행하세요.
2. **Xcode 선택:** **명령 복사**를 선택하고 터미널에서 실행하세요. 암호를 입력해야 하므로 Dvina가 대신 실행하지 않습니다.
3. **iOS 시뮬레이터 추가:** Xcode에서 Settings › Components로 이동해 iOS를 다운로드하거나, 터미널에서 명령을 실행하세요.
4. **기기 생성:** **iPhone 생성**을 선택하세요. 다운로드되는 항목은 없습니다.

### Android 에뮬레이터 설정하기

Android 에뮬레이터가 설정되어 있지 않으면 해당 행을 선택할 때 **Android 에뮬레이터 설정** 체크리스트가 열립니다.

1. **Android Studio 설치:** **Android Studio 다운로드**를 선택하세요. 에뮬레이터 실행에 필요한 환경이 설치됩니다. 설치가 끝나면 한 번 실행하세요.
2. **에뮬레이터 및 플랫폼 도구 추가:** 터미널에서 명령을 실행하거나, Android Studio › SDK Manager에서 추가하세요.
3. **하드웨어 가속 켜기:** Windows와 Linux에서는 암호 또는 관리자 권한이 필요하므로 직접 명령을 실행하세요. 그런 다음 Linux에서는 로그아웃했다가 다시 로그인하고, Windows에서는 다시 시작하세요. Mac에서는 이 단계에서 할 일이 없습니다.
4. **시스템 이미지 추가:** 터미널에서 명령을 실행하거나, Android Studio › SDK Manager에서 추가하세요. 다운로드 용량이 큽니다.
5. **에뮬레이터 생성:** **에뮬레이터 생성**을 선택하세요. 다운로드되는 항목은 없습니다.

관리자가 시뮬레이터를 비활성화한 경우 해당 행에 **관리자가 비활성화함**이 표시됩니다.

## 어디서나 작업하기

휴대폰이나 웹에서 채팅으로 작업을 요청하세요. Dvina가 컴퓨터의 프로젝트에서 작업을 수행하고, 변경 사항은 검토할 수 있도록 준비해 둡니다. 컴퓨터가 켜져 있고 Dvina가 열려 있어야 합니다.

## 이런 때 사용하세요

- 실제 소프트웨어를 개발하면서 메모, 결정 사항, 지난달 대화까지 모든 맥락을 바탕으로 작업하고 싶을 때.
- 자리를 비운 동안 수정을 완료하고 싶을 때.
- 여러 변경 작업을 동시에 진행하고 각각 검토할 수 있도록 준비하고 싶을 때.

## 팁

- **작업 규칙을 적어 두세요.** AGENTS.md 또는 CLAUDE.md에 작업 방식을 작성하면 Dvina가 이를 따릅니다.
- **휴대폰에서 테스트하세요.** 앱을 개발하고 있나요? Dvina는 iPhone 시뮬레이터나 Android 에뮬레이터에서 사용자가 하듯이 화면을 탭하며 앱을 테스트할 수 있습니다. [시뮬레이터 또는 에뮬레이터에서 테스트하기](#test-on-a-simulator-or-emulator)를 참고하세요.
- **개발자가 아닌가요?** 실제로 작동하는 앱과 페이지를 만들려면 대신 [만들기](/docs/use-dvina/features/create)를 사용하세요.

## 관련 문서

- [프로젝트](/docs/use-dvina/features/projects)
- [작업](/docs/use-dvina/features/tasks)
- [컴퓨터 사용](/docs/use-dvina/features/computer-use)
- [설치](/docs/use-dvina/get-started/install)
