Notice
Recent Posts
250x250
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
관리 메뉴

일상 코딩

[윈도우 개발 환경 설정] 3편: Google Antigravity 설치 & 에디터 설정 본문

Windows 개발환경 세팅

[윈도우 개발 환경 설정] 3편: Google Antigravity 설치 & 에디터 설정

polarcompass 2026. 3. 31. 22:23
728x90

Now I have enough information to write a comprehensive 3편. Let me compile it.

3편: Google Antigravity 설치 & 에디터 설정

시리즈: 윈도우 네이티브 개발 환경 구축 A to Z (3/14)
환경: Windows 11, PowerShell 7, Windows Terminal


서론

1편에서 터미널과 패키지 매니저를, 2편에서 Git과 GitHub를 세팅했습니다. 이제 앞으로 13편 내내 코드를 작성할 에디터를 준비할 차례입니다. Google Antigravity는 VS Code를 포크한 에이전트 퍼스트 IDE로, VS Code의 익숙한 편집 경험 위에 AI 에이전트 기능을 얹은 구조입니다. 이 편에서는 설치부터 마켓플레이스 전환, 기술 스택별 확장 프로그램, settings.json, 그리고 에이전트 모드와 Rules 설정까지 한 번에 잡아 줍니다.


1. Antigravity 설치

winget을 사용하면 한 줄로 설치할 수 있습니다.

winget install -e --id Google.Antigravity --accept-package-agreements --accept-source-agreements

설치가 끝나면 시작 메뉴에서 Antigravity를 검색해 실행합니다. 최초 실행 시 셋업 마법사가 나타납니다.

초기 셋업 마법사

셋업 마법사에서 다음과 같이 선택합니다.

  • Choose setup flow: VS Code 설정을 가져올 수 있지만, 이 시리즈에서는 Fresh start를 선택합니다.
  • Editor theme: 원하는 테마를 선택합니다. (이 글에서는 Dark 테마 기준)
  • Agent mode: Review-driven development (recommended) 를 선택합니다. 에이전트가 작업 전에 리뷰를 요청하므로 안전합니다.
  • Configure your Editor: 키바인딩 설정, 추천 확장 프로그램 설치 화면이 나타납니다.
  • Command Line: agy CLI 도구 설치를 반드시 체크합니다. 이후 터미널에서 agy . 명령어로 현재 폴더를 Antigravity에서 열 수 있습니다.
  • Sign in to Google: 개인 Gmail 계정으로 로그인합니다. Gemini 모델 무료 쿼터가 제공됩니다.

CLI 확인

셋업 완료 후 PowerShell을 재시작하고 확인합니다.

agy --version

만약 agy 명령어가 인식되지 않으면, Antigravity 설치 경로의 bin 폴더를 PATH에 추가해야 합니다. 기본 경로는 C:\Users\<사용자>\AppData\Local\Programs\Antigravity\bin 입니다.

2편에서 Git 에디터를 antigravity --wait로 설정했는데, Antigravity의 CLI 명령어는 agy입니다. 아래 명령어로 Git 에디터 설정을 업데이트합니다.

git config --global core.editor "agy --wait"

2. VS Code 공식 마켓플레이스로 변경

Antigravity는 기본적으로 Open VSX Registry에서 확장 프로그램을 검색합니다. Open VSX에는 일부 인기 확장이 누락되어 있거나 버전이 뒤처져 있으므로, VS Code 공식 마켓플레이스로 전환합니다.

Antigravity 에디터에서 Settings(Ctrl + ,) → 검색창에 Marketplace 입력 → Editor 섹션에서 아래 두 값을 변경합니다.

Marketplace Item URL:

https://marketplace.visualstudio.com/items

Marketplace Gallery URL:

https://marketplace.visualstudio.com/_apis/public/gallery

변경 후 Antigravity를 재시작합니다. 이제 확장 프로그램 패널(Ctrl + Shift + X)에서 VS Code 마켓플레이스의 모든 확장을 검색·설치할 수 있습니다.


3. 확장 프로그램 설치

이 시리즈의 기술 스택(React/TypeScript, Go, Python, Docker, Tailwind CSS)에 필요한 확장 프로그램을 설치합니다. Antigravity 에디터의 터미널(Ctrl + `)에서 아래 명령어를 실행하면 한 번에 설치됩니다.

3-1. 언어 & 프레임워크

# TypeScript / React
agy --install-extension dbaeumer.vscode-eslint
agy --install-extension esbenp.prettier-vscode
agy --install-extension bradlc.vscode-tailwindcss
agy --install-extension dsznajder.es7-react-js-snippets

# Go
agy --install-extension golang.go

# Python
agy --install-extension ms-python.python
agy --install-extension ms-python.vscode-pylance

3-2. Docker & 인프라

agy --install-extension ms-azuretools.vscode-docker
agy --install-extension ms-vscode-remote.remote-containers

3-3. Git & 협업

agy --install-extension eamodio.gitlens
agy --install-extension mhutchie.git-graph

3-4. 편의 & 테마

agy --install-extension vscode-icons-team.vscode-icons
agy --install-extension formulahendry.auto-rename-tag
agy --install-extension christian-kohler.path-intellisense
agy --install-extension usernamehw.errorlens
agy --install-extension PKief.material-icon-theme

마켓플레이스 전환이 제대로 되었다면 위 명령어가 모두 정상적으로 동작합니다. 만약 특정 확장이 설치되지 않으면, 확장 패널에서 직접 검색하여 설치하세요.


4. settings.json 설정

Antigravity의 에디터 설정은 VS Code와 동일하게 settings.json으로 관리합니다. Settings → 우측 상단의 Open Settings (JSON) 아이콘을 클릭하거나, Command Palette(Ctrl + Shift + P) → Preferences: Open User Settings (JSON)을 실행합니다.

아래 설정을 복사하여 붙여넣습니다.

{
  // ── 에디터 기본 ──
  "editor.fontSize": 14,
  "editor.fontFamily": "'FiraCode Nerd Font', Consolas, monospace",
  "editor.fontLigatures": true,
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.wordWrap": "on",
  "editor.minimap.enabled": false,
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": "active",
  "editor.linkedEditing": true,
  "editor.smoothScrolling": true,
  "editor.cursorSmoothCaretAnimation": "on",
  "editor.stickyScroll.enabled": true,

  // ── 저장 시 포맷 ──
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.organizeImports": "explicit"
  },

  // ── 파일 ──
  "files.autoSave": "onFocusChange",
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "files.eol": "\n",
  "files.exclude": {
    "**/.git": true,
    "**/node_modules": true,
    "**/__pycache__": true
  },

  // ── 터미널 ──
  "terminal.integrated.defaultProfile.windows": "PowerShell",
  "terminal.integrated.fontFamily": "'FiraCode Nerd Font'",
  "terminal.integrated.fontSize": 13,

  // ── TypeScript / JavaScript ──
  "typescript.preferences.importModuleSpecifier": "relative",
  "typescript.updateImportsOnFileMove.enabled": "always",
  "javascript.updateImportsOnFileMove.enabled": "always",

  // ── Tailwind CSS ──
  "tailwindCSS.emmetCompletions": true,
  "editor.quickSuggestions": {
    "strings": "on"
  },

  // ── Go ──
  "go.useLanguageServer": true,
  "go.formatTool": "goimports",
  "go.lintTool": "golangci-lint",
  "go.testFlags": ["-v"],
  "[go]": {
    "editor.defaultFormatter": "golang.go",
    "editor.tabSize": 4,
    "editor.insertSpaces": false,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  },

  // ── Python ──
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.autoImportCompletions": true,
  "[python]": {
    "editor.tabSize": 4,
    "editor.defaultFormatter": "ms-python.python"
  },

  // ── Prettier ──
  "prettier.semi": true,
  "prettier.singleQuote": true,
  "prettier.trailingComma": "all",
  "prettier.printWidth": 100,

  // ── Git ──
  "git.autofetch": true,
  "git.confirmSync": false,
  "gitlens.currentLine.enabled": true,

  // ── 아이콘 테마 ──
  "workbench.iconTheme": "material-icon-theme",

  // ── 검색 제외 ──
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true,
    "**/.next": true
  }
}

Go 언어 블록에서 insertSpacesfalse로, tabSize4로 설정한 이유는 Go의 공식 포맷터(gofmt)가 탭 문자를 사용하기 때문입니다. 나머지 언어는 2칸 스페이스를 기본으로 합니다.


5. 에이전트 모드 & Rules 설정

Antigravity의 핵심 차별점은 AI 에이전트입니다. 에디터 위에서 에이전트가 코드를 계획·작성·검증까지 수행합니다. 이 기능을 효과적으로 사용하려면 에이전트 설정과 Rules를 미리 잡아 두는 것이 좋습니다.

5-1. 에이전트 모드

Antigravity는 두 가지 대화 모드를 제공합니다.

  • Planning: 에이전트가 작업 전에 계획을 세우고, 아티팩트(작업 목록, 구현 계획 등)를 생성합니다. 복잡한 작업에 적합합니다.
  • Fast: 에이전트가 즉시 실행합니다. 변수 이름 변경, 간단한 명령어 실행 등 빠른 작업에 적합합니다.

에이전트 사이드 패널(Ctrl + L)을 열면 상단에서 모드와 모델을 선택할 수 있습니다. 기본값은 Planning이며, 상황에 따라 전환하면 됩니다.

5-2. 에이전트 설정 조정

Settings(Ctrl + ,) → Agent 탭에서 핵심 설정을 확인합니다.

  • Artifact Review Policy: Request Review로 두면 에이전트가 구현 계획을 만든 뒤 항상 사용자 승인을 기다립니다. 처음에는 이 설정을 권장합니다.
  • Terminal Command Auto Execution: Request Review로 두고, 자주 사용하는 안전한 명령어(예: ls, dir, npm run, go run, python)만 Allow List에 추가하면 편리합니다.

5-3. Global Rules 설정

Rules는 에이전트가 코드를 생성할 때 항상 따라야 할 가이드라인입니다. 전역(Global) 규칙은 모든 워크스페이스에 적용됩니다.

글로벌 Rules 파일은 ~/.gemini/GEMINI.md 경로에 생성합니다. PowerShell에서 아래 명령어로 파일을 만듭니다.

$geminiDir = "$env:USERPROFILE\.gemini"
if (-not (Test-Path $geminiDir)) { New-Item -ItemType Directory -Path $geminiDir -Force }

$env:USERPROFILE\.gemini\GEMINI.md 파일을 열고 아래 내용을 작성합니다.

# Global Rules

## Language & Style
- Write all code comments in English.
- Write all commit messages in English using conventional commit format.
- Prefer explicit over implicit; avoid magic numbers.

## TypeScript / React
- Use functional components with arrow functions.
- Use TypeScript strict mode.
- Use named exports, not default exports.
- Use React Router for routing.
- Use Tailwind CSS for styling; do not use inline styles or CSS modules.

## Go
- Follow effective Go conventions (https://go.dev/doc/effective_go).
- Use Gin for HTTP routing.
- Always handle errors explicitly; do not use _ to discard errors.

## Python
- Follow PEP 8 style guide.
- Use FastAPI for HTTP endpoints.
- Use type hints for all function signatures.
- Use Pydantic models for request/response schemas.

## General
- Never commit secrets, API keys, or .env files.
- Prefer composition over inheritance.
- Write unit tests for all public functions.

5-4. Workspace Rules 예시

프로젝트별로 추가 규칙이 필요하면 워크스페이스 루트에 .agents/rules/ 디렉토리를 만들고 마크다운 파일을 추가합니다.

my-project/
├── .agents/
│   └── rules/
│       ├── frontend-conventions.md
│       └── api-conventions.md

예를 들어 frontend-conventions.md에 아래와 같이 작성할 수 있습니다.

---
description: Frontend coding conventions for React SPA
activation: always
---

# Frontend Conventions

- Use npm as the package manager. Do not use pnpm or yarn.
- Use Vite as the build tool.
- Place reusable components in src/components/.
- Place page components in src/pages/.
- Use React Router v7 for routing.

Rules는 에디터의 에이전트 패널에서 ...CustomizationsRules에서도 UI로 생성·관리할 수 있습니다.

5-5. Workflows 예시

반복 작업을 자동화하려면 Workflows를 활용합니다. 워크스페이스에 .agents/workflows/ 디렉토리를 만들고 마크다운 파일을 추가합니다.

---
name: create-component
description: Scaffold a new React component with TypeScript and Tailwind CSS
---

# Create React Component

## Steps

1. Ask the user for the component name.
2. Create `src/components/{ComponentName}/{ComponentName}.tsx`.
3. Use functional component with arrow function syntax.
4. Add Tailwind CSS classes for basic layout.
5. Create `src/components/{ComponentName}/{ComponentName}.test.tsx` with a basic render test.

에이전트 채팅에서 /create-component를 입력하면 이 워크플로우가 실행됩니다.


최종 확인 체크리스트

# 1. Antigravity CLI
agy --version
# → 버전 번호 출력

# 2. Git 에디터
git config --global core.editor
# → "agy --wait"

# 3. 마켓플레이스 — Antigravity에서 Ctrl+Shift+X, "ESLint" 검색
# → dbaeumer.vscode-eslint가 검색되면 성공

# 4. 확장 프로그램 — 설치 확인
agy --list-extensions
# → 위에서 설치한 확장들이 목록에 표시

# 5. settings.json — Antigravity에서 Ctrl+Shift+P → "Open User Settings (JSON)"
# → 설정 내용이 정상적으로 반영되어 있는지 확인

# 6. Global Rules
Test-Path "$env:USERPROFILE\.gemini\GEMINI.md"
# → True

# 7. 에이전트 테스트 — Antigravity에서 Ctrl+L로 에이전트 패널을 열고
# → "현재 워크스페이스 구조를 설명해줘" 입력 → 에이전트가 응답하면 성공

자동 세팅 스크립트

아래 내용을 setup-antigravity.ps1로 저장하고 관리자 권한 PowerShell에서 실행하면, Antigravity 설치부터 확장 프로그램, settings.json, Global Rules까지 자동으로 처리합니다.

초기 셋업 마법사(Google 로그인, 테마 선택 등)는 GUI에서 직접 진행해야 합니다. 스크립트는 그 이후의 설정을 자동화합니다.

#Requires -RunAsAdministrator
<#
.SYNOPSIS
    Google Antigravity 설치 & 에디터 설정 스크립트 (시리즈 3편)
.NOTES
    관리자 권한 PowerShell 7에서 실행하세요.
    Antigravity 설치 후 최초 실행(Google 로그인)은 수동으로 한 번 해야 합니다.
#>

$ErrorActionPreference = "Stop"

function Write-Step {
    param([string]$Message)
    Write-Host ""
    Write-Host "========================================" -ForegroundColor Cyan
    Write-Host "  $Message" -ForegroundColor Cyan
    Write-Host "========================================" -ForegroundColor Cyan
}

function Test-CommandExists {
    param([string]$Command)
    return [bool](Get-Command $Command -ErrorAction SilentlyContinue)
}

function Refresh-Path {
    $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" +
                [System.Environment]::GetEnvironmentVariable("Path", "User")
}

# ──────────────────────────────────────────────
# 1. Antigravity 설치
# ──────────────────────────────────────────────
Write-Step "1/7 — Google Antigravity 설치"

if (Test-CommandExists agy) {
    Write-Host "  이미 설치됨: agy $(agy --version 2>$null)" -ForegroundColor Green
}
else {
    Write-Host "  winget으로 Antigravity 설치 중..."
    winget install -e --id Google.Antigravity --accept-package-agreements --accept-source-agreements
    Refresh-Path

    # agy가 PATH에 없으면 기본 경로를 추가
    if (-not (Test-CommandExists agy)) {
        $agyBin = "$env:LOCALAPPDATA\Programs\Antigravity\bin"
        if (Test-Path $agyBin) {
            $currentPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
            if ($currentPath -notlike "*$agyBin*") {
                [System.Environment]::SetEnvironmentVariable("Path", "$currentPath;$agyBin", "User")
                $env:Path += ";$agyBin"
                Write-Host "  agy PATH에 추가 완료" -ForegroundColor Green
            }
        }
    }
    Write-Host "  설치 완료" -ForegroundColor Green
}

# ──────────────────────────────────────────────
# 2. Git 에디터 설정 업데이트
# ──────────────────────────────────────────────
Write-Step "2/7 — Git 에디터를 Antigravity로 설정"

git config --global core.editor "agy --wait"
Write-Host "  core.editor = $(git config --global core.editor)" -ForegroundColor Green

# ──────────────────────────────────────────────
# 3. 확장 프로그램 설치
# ──────────────────────────────────────────────
Write-Step "3/7 — 확장 프로그램 설치"

$extensions = @(
    # TypeScript / React
    "dbaeumer.vscode-eslint"
    "esbenp.prettier-vscode"
    "bradlc.vscode-tailwindcss"
    "dsznajder.es7-react-js-snippets"
    # Go
    "golang.go"
    # Python
    "ms-python.python"
    "ms-python.vscode-pylance"
    # Docker
    "ms-azuretools.vscode-docker"
    "ms-vscode-remote.remote-containers"
    # Git
    "eamodio.gitlens"
    "mhutchie.git-graph"
    # 편의
    "vscode-icons-team.vscode-icons"
    "formulahendry.auto-rename-tag"
    "christian-kohler.path-intellisense"
    "usernamehw.errorlens"
    "PKief.material-icon-theme"
)

# 이미 설치된 확장 목록 가져오기
$installed = @()
try {
    $installed = (agy --list-extensions 2>$null) -split "`n" | ForEach-Object { $_.Trim().ToLower() }
}
catch {}

foreach ($ext in $extensions) {
    if ($installed -contains $ext.ToLower()) {
        Write-Host "  [skip] $ext (이미 설치됨)" -ForegroundColor DarkGray
    }
    else {
        Write-Host "  [설치] $ext" -ForegroundColor Yellow
        agy --install-extension $ext --force 2>$null
    }
}

Write-Host "  확장 프로그램 설치 완료" -ForegroundColor Green

# ──────────────────────────────────────────────
# 4. settings.json 생성
# ──────────────────────────────────────────────
Write-Step "4/7 — settings.json 설정"

# Antigravity의 User Settings 경로 (VS Code 포크이므로 구조 유사)
$settingsDir = "$env:APPDATA\Antigravity\User"
if (-not (Test-Path $settingsDir)) {
    New-Item -ItemType Directory -Path $settingsDir -Force | Out-Null
}

$settingsPath = "$settingsDir\settings.json"

$settingsContent = @'
{
  "editor.fontSize": 14,
  "editor.fontFamily": "'FiraCode Nerd Font', Consolas, monospace",
  "editor.fontLigatures": true,
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.wordWrap": "on",
  "editor.minimap.enabled": false,
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": "active",
  "editor.linkedEditing": true,
  "editor.smoothScrolling": true,
  "editor.cursorSmoothCaretAnimation": "on",
  "editor.stickyScroll.enabled": true,
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.organizeImports": "explicit"
  },
  "files.autoSave": "onFocusChange",
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "files.eol": "\n",
  "files.exclude": {
    "**/.git": true,
    "**/node_modules": true,
    "**/__pycache__": true
  },
  "terminal.integrated.defaultProfile.windows": "PowerShell",
  "terminal.integrated.fontFamily": "'FiraCode Nerd Font'",
  "terminal.integrated.fontSize": 13,
  "typescript.preferences.importModuleSpecifier": "relative",
  "typescript.updateImportsOnFileMove.enabled": "always",
  "javascript.updateImportsOnFileMove.enabled": "always",
  "tailwindCSS.emmetCompletions": true,
  "editor.quickSuggestions": {
    "strings": "on"
  },
  "go.useLanguageServer": true,
  "go.formatTool": "goimports",
  "go.lintTool": "golangci-lint",
  "go.testFlags": ["-v"],
  "[go]": {
    "editor.defaultFormatter": "golang.go",
    "editor.tabSize": 4,
    "editor.insertSpaces": false,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit"
    }
  },
  "python.analysis.typeCheckingMode": "basic",
  "python.analysis.autoImportCompletions": true,
  "[python]": {
    "editor.tabSize": 4,
    "editor.defaultFormatter": "ms-python.python"
  },
  "prettier.semi": true,
  "prettier.singleQuote": true,
  "prettier.trailingComma": "all",
  "prettier.printWidth": 100,
  "git.autofetch": true,
  "git.confirmSync": false,
  "gitlens.currentLine.enabled": true,
  "workbench.iconTheme": "material-icon-theme",
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true,
    "**/.next": true
  }
}
'@

if (Test-Path $settingsPath) {
    Write-Host "  settings.json이 이미 존재합니다." -ForegroundColor Yellow
    $overwrite = Read-Host "  덮어쓰시겠습니까? (y/N)"
    if ($overwrite -eq "y") {
        Set-Content -Path $settingsPath -Value $settingsContent -Encoding UTF8
        Write-Host "  settings.json 덮어쓰기 완료" -ForegroundColor Green
    }
    else {
        Write-Host "  기존 파일 유지" -ForegroundColor Green
    }
}
else {
    Set-Content -Path $settingsPath -Value $settingsContent -Encoding UTF8
    Write-Host "  settings.json 생성 완료: $settingsPath" -ForegroundColor Green
}

# ──────────────────────────────────────────────
# 5. Global Rules (GEMINI.md)
# ──────────────────────────────────────────────
Write-Step "5/7 — Global Rules 생성"

$geminiDir = "$env:USERPROFILE\.gemini"
if (-not (Test-Path $geminiDir)) {
    New-Item -ItemType Directory -Path $geminiDir -Force | Out-Null
}

$geminiMdPath = "$geminiDir\GEMINI.md"

$rulesContent = @'
# Global Rules

## Language & Style
- Write all code comments in English.
- Write all commit messages in English using conventional commit format.
- Prefer explicit over implicit; avoid magic numbers.

## TypeScript / React
- Use functional components with arrow functions.
- Use TypeScript strict mode.
- Use named exports, not default exports.
- Use React Router for routing.
- Use Tailwind CSS for styling; do not use inline styles or CSS modules.

## Go
- Follow effective Go conventions (https://go.dev/doc/effective_go).
- Use Gin for HTTP routing.
- Always handle errors explicitly; do not use _ to discard errors.

## Python
- Follow PEP 8 style guide.
- Use FastAPI for HTTP endpoints.
- Use type hints for all function signatures.
- Use Pydantic models for request/response schemas.

## General
- Never commit secrets, API keys, or .env files.
- Prefer composition over inheritance.
- Write unit tests for all public functions.
'@

if (Test-Path $geminiMdPath) {
    Write-Host "  GEMINI.md가 이미 존재합니다." -ForegroundColor Yellow
    $overwrite = Read-Host "  덮어쓰시겠습니까? (y/N)"
    if ($overwrite -eq "y") {
        Set-Content -Path $geminiMdPath -Value $rulesContent -Encoding UTF8
        Write-Host "  GEMINI.md 덮어쓰기 완료" -ForegroundColor Green
    }
    else {
        Write-Host "  기존 파일 유지" -ForegroundColor Green
    }
}
else {
    Set-Content -Path $geminiMdPath -Value $rulesContent -Encoding UTF8
    Write-Host "  Global Rules 생성 완료: $geminiMdPath" -ForegroundColor Green
}

# ──────────────────────────────────────────────
# 6. 마켓플레이스 전환 안내
# ──────────────────────────────────────────────
Write-Step "6/7 — 마켓플레이스 전환 (수동)"

Write-Host ""
Write-Host "  Antigravity를 실행한 뒤 아래 설정을 변경하세요:" -ForegroundColor Yellow
Write-Host ""
Write-Host "  1. Settings (Ctrl+,) 열기" -ForegroundColor White
Write-Host "  2. 검색창에 'Marketplace' 입력" -ForegroundColor White
Write-Host "  3. Marketplace Item URL:" -ForegroundColor White
Write-Host "     https://marketplace.visualstudio.com/items" -ForegroundColor Magenta
Write-Host "  4. Marketplace Gallery URL:" -ForegroundColor White
Write-Host "     https://marketplace.visualstudio.com/_apis/public/gallery" -ForegroundColor Magenta
Write-Host "  5. Antigravity 재시작" -ForegroundColor White
Write-Host ""

# ──────────────────────────────────────────────
# 7. 초기 셋업 마법사 안내
# ──────────────────────────────────────────────
Write-Step "7/7 — 초기 셋업 (수동)"

Write-Host ""
Write-Host "  Antigravity 첫 실행 시 셋업 마법사가 나타납니다:" -ForegroundColor Yellow
Write-Host ""
Write-Host "  - Setup flow:    Fresh start" -ForegroundColor White
Write-Host "  - Theme:         원하는 테마 선택" -ForegroundColor White
Write-Host "  - Agent mode:    Review-driven development (recommended)" -ForegroundColor White
Write-Host "  - Command Line:  agy CLI 도구 설치 체크" -ForegroundColor White
Write-Host "  - Sign in:       개인 Gmail 계정으로 로그인" -ForegroundColor White
Write-Host ""

# ──────────────────────────────────────────────
# 결과 요약
# ──────────────────────────────────────────────
Write-Host ""
Write-Host "========================================" -ForegroundColor Magenta
Write-Host "  Antigravity 세팅 완료!" -ForegroundColor Magenta
Write-Host "========================================" -ForegroundColor Magenta
Write-Host ""
Write-Host "[설치 결과 요약]" -ForegroundColor Cyan
Write-Host "  Antigravity    : $(if (Test-CommandExists agy) { 'OK' } else { 'MISSING — 설치 후 터미널 재시작 필요' })"
Write-Host "  Git editor     : $(git config --global core.editor)"
Write-Host "  settings.json  : $(if (Test-Path $settingsPath) { 'OK' } else { 'MISSING' })"
Write-Host "  Global Rules   : $(if (Test-Path $geminiMdPath) { 'OK' } else { 'MISSING' })"
Write-Host ""

# 확장 프로그램 수 확인
try {
    $extCount = (agy --list-extensions 2>$null | Measure-Object -Line).Lines
    Write-Host "  확장 프로그램   : ${extCount}개 설치됨" -ForegroundColor Cyan
}
catch {
    Write-Host "  확장 프로그램   : agy CLI 확인 필요" -ForegroundColor Yellow
}

Write-Host ""
Write-Host "[수동 설정 필요]" -ForegroundColor Yellow
Write-Host "  1. Antigravity 첫 실행 → 셋업 마법사 (Google 로그인)"
Write-Host "  2. 마켓플레이스 URL을 VS Code 공식으로 변경 후 재시작"
Write-Host ""

사용법

.\setup-antigravity.ps1

스크립트는 Antigravity 설치, 확장 프로그램 일괄 설치, settings.json 생성, Global Rules 파일 생성을 자동으로 처리합니다. 마켓플레이스 URL 변경과 초기 셋업 마법사(Google 로그인)는 GUI에서만 가능하므로, 스크립트 마지막에 안내 메시지로 정리했습니다.


다음 편 예고

4편: Node.js & React SPA 환경 구축에서는 Node.js와 npm 설치, Vite로 React + TypeScript + Tailwind CSS 프로젝트를 생성하고, 개발 서버를 띄우는 것까지 다룹니다. 프론트엔드 개발의 시작점을 만들어 봅시다.

728x90