--- id: wiki-2026-0508-integrated-development-environme title: Integrated Development Environment category: 10_Wiki/Topics status: verified canonical_id: self aliases: [IDE, Code Editor, AI IDE, Agentic IDE] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [ide, vscode, jetbrains, cursor, zed, ai-ide, dev-tools] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: typescript framework: vscode-extension --- # Integrated Development Environment ## 매 한 줄 > **"매 IDE 는 이제 LLM 의 인터페이스다 — 코드 + 컨텍스트 + 에이전트가 같은 창에서 만난다"**. 1980 년대 Turbo Pascal 에서 시작된 IDE 는 2026 현재 VS Code/JetBrains/Cursor/Zed 4 강 + Antigravity/Windsurf 같은 agentic IDE 로 분화하며, 단순 편집기에서 LSP+Copilot+Agent 를 통합한 개발 OS 로 진화했다. ## 매 핵심 ### 매 2026 주요 IDE 지형 - **VS Code** (Microsoft): 최대 점유율, Copilot/Continue/Cline 등 확장. - **JetBrains** (IntelliJ/PyCharm/WebStorm): 강력한 정적 분석 + AI Assistant. - **Cursor** (Anysphere): VS Code fork, agent-first UX. - **Zed**: Rust 네이티브, 협업 + 멀티버퍼. - **Antigravity** (Google): agent-native, multi-pane terminal/browser/editor. - **Windsurf** (Codeium): cascading agent. - **Neovim + LSP**: 키보드 중심 + AI plugin (avante.nvim, copilot.lua). ### 매 핵심 컴포넌트 - **LSP (Language Server Protocol)**: 언어 기능 표준화. - **DAP (Debug Adapter Protocol)**: 디버거 표준화. - **MCP (Model Context Protocol)**: 2024-2025 표준, AI 에이전트의 도구/리소스 접근. - **Tree-sitter**: 증분 파싱 → 신택스 + 코드 네비. - **Extension API**: VS Code 가 사실상 표준. ### 매 AI 통합 레벨 - L1 — autocomplete (Tab completion, Copilot inline). - L2 — chat sidebar (Q&A on selection). - L3 — multi-file edit (Cursor Composer, Copilot Workspace). - L4 — autonomous agent (Antigravity, Windsurf Cascade, Devin-like). ### 매 응용 1. 폴리글랏 개발 (LSP 다중 언어). 2. Remote / Codespaces 개발. 3. Notebook + IDE 통합 (Jupyter, Polyglot Notebooks). 4. Agentic refactoring (수십 파일 동시). ## 💻 패턴 ### 1. VS Code extension 최소 골격 ```typescript // package.json: "main": "./out/extension.js" import * as vscode from 'vscode'; export function activate(ctx: vscode.ExtensionContext) { ctx.subscriptions.push( vscode.commands.registerCommand('hello.run', () => { vscode.window.showInformationMessage('Hello from extension'); }) ); } export function deactivate() {} ``` ### 2. LSP 서버 등록 (Node) ```typescript import { createConnection, TextDocuments, ProposedFeatures } from 'vscode-languageserver/node'; import { TextDocument } from 'vscode-languageserver-textdocument'; const conn = createConnection(ProposedFeatures.all); const docs = new TextDocuments(TextDocument); conn.onInitialize(() => ({ capabilities: { textDocumentSync: 1, hoverProvider: true } })); conn.onHover(({ textDocument, position }) => ({ contents: 'hello' })); docs.listen(conn); conn.listen(); ``` ### 3. .vscode/settings.json (project local) ```json { "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit" }, "files.exclude": { "**/.git": true, "**/node_modules": true }, "typescript.preferences.importModuleSpecifier": "relative", "github.copilot.editor.enableAutoCompletions": true } ``` ### 4. .vscode/launch.json (DAP) ```json { "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug", "program": "${workspaceFolder}/src/index.ts", "preLaunchTask": "tsc: build" }] } ``` ### 5. JetBrains plugin (Kotlin) action ```kotlin class HelloAction : AnAction() { override fun actionPerformed(e: AnActionEvent) { Messages.showMessageDialog(e.project, "Hello", "Plugin", null) } } // plugin.xml: ``` ### 6. MCP server 등록 (VS Code / Cursor) ```json // ~/.cursor/mcp.json or .vscode/mcp.json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/proj"] }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "..." } } } } ``` ### 7. .editorconfig (cross-IDE) ```ini root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.go] indent_style = tab ``` ### 8. Devcontainer (VS Code Remote / Codespaces) ```json { "name": "node-20", "image": "mcr.microsoft.com/devcontainers/typescript-node:20", "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, "postCreateCommand": "npm install", "customizations": { "vscode": { "extensions": ["dbaeumer.vscode-eslint"] } } } ``` ### 9. Neovim + LSP + Copilot ```lua require'lspconfig'.tsserver.setup{} require'copilot'.setup{ suggestion = { auto_trigger = true } } vim.keymap.set('n', 'gd', vim.lsp.buf.definition) ``` ### 10. AI agent rules (Cursor / Antigravity .rules) ```markdown # rules.md - Always read the file before editing - Run `pnpm test` after non-trivial edits - Prefer absolute imports; ban `any` in TS - Commit messages: conventional commits ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | 폴리글랏 / 일반 | VS Code | | 강 typed (Java/Kotlin/Scala) | JetBrains IntelliJ | | Python ML 무거움 | PyCharm Pro 또는 VS Code + Pyright | | Agent 중심 | Cursor / Antigravity / Windsurf | | 협업 라이브 + 가벼움 | Zed | | 키보드 vim | Neovim + LSP + AI plugin | **기본값**: 신규 프로젝트는 VS Code + Copilot/Cursor 가 최저 마찰. JVM 헤비는 IntelliJ. ## 🔗 Graph - 부모: [[Code-Editor]] - 변형: [[Cursor]] - 응용: [[Devcontainer]] - Adjacent: [[MCP]] ## 🤖 LLM 활용 **언제**: extension scaffolding, .vscode 설정 생성, MCP server 설정, devcontainer 작성, plugin.xml/manifest 변환. **언제 X**: IDE 내부 인덱싱 동작 자체 디버깅 — 벤더 telemetry/log 직접 확인. ## ❌ 안티패턴 - **모든 IDE 에 동일 설정 강요**: .editorconfig 로만 합의, IDE 별 settings 는 .gitignore. - **확장 폭주**: 50+ extension → cold start 30s+. 분기별 정리. - **AI 자동 적용 무검토**: Copilot/Cursor 의 multi-file edit 무리뷰 commit 금지. - **MCP token leak**: env 에 GITHUB_TOKEN 평문 — secret manager 또는 keychain 사용. - **devcontainer 미사용 onboarding**: 신입 setup 1주일 — devcontainer 로 5분. ## 🧪 검증 / 중복 - Verified (VS Code docs, JetBrains Platform docs, MCP spec 2025-06, Cursor docs 2026). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — 2026 IDE 지형 + LSP/DAP/MCP 통합 패턴 |