반응형

 

n8n이란?

n8n은 AI 워크플로우 자동화 오픈 소스 솔루션입니다.

Make, Zapier 등과 같이 업무를 자동화 하는데 최적화된  도구입니다.

심지어 n8n 셀프호스팅을 하게되면 무료로 사용이 가능합니다.

 

하지만 이런 노코드 자동화 도구들을 이용해서 자동화를 구축하는 것이 마냥 쉽지는 않습니다.

이를 해결해 주는것이 n8n MCP입니다.

 

n8n에 대한 내용은 제가 이전에 작성한 글을 참고하시기 바랍니다.

https://codegear.tistory.com/138

 

n8n: 당신의 워크플로우를 자동화하는 오픈소스 엔진!

최근 제가 가장 관심있게 보고 있는게 n8n입니다.n8n은 Workflow를 자동화하는 솔루션입니다.워크플로우 자동화 솔루션은 이전에도 많이 있었습니다.하지만 n8n이 기존 솔루션들과 다른점이 하나 있

codegear.tistory.com

 

n8n 셀프 호스팅 구축 방법도 이전에 작성한 글을 참고하시면 됩니다.

https://codegear.tistory.com/139

 

월 0원! AWS에 나만의 자동화 서버 구축! (n8n 셀프호스팅, AI 워크플로우 시작)

n8n을 AWS의 무료 인스턴스를 사용해서 설치하는 방법에 대해 알아봅니다. https://youtu.be/rZnBHanWiZg 순서Docker 설치n8n 컨테이너 설치AWS에 도메인 추가 (agent.codegear.info)Nginx 설치 및 도메인 연결 n8n은 n8

codegear.tistory.com


n8n MCP란?

 

n8n MCP를 사용하면 각종 Code Assistant에서 n8n에 자동화를 쉽게 구축할 수 있습니다.

클로드 데스크탑에서도 채팅만으로 쉽게 구축이 가능합니다.

n8n MCP를 사용하면 n8n에서 제공되는 대부분의 기능을 구현할 수 있습니다.

n8n에서 API Key를 생성한 후 n8n mcp 설정에 추가만 하면 n8n 서버를 management 할 수 있습니다.


클로드 코드에서 n8n MCP 사용하기

클로드 코드에 n8n MCP를 설치하는 방법을 알아보겠습니다.

n8n mcp에 대한 자세한 내용은 github에 있는 내용을 참조하였습니다.

https://github.com/czlonkowski/n8n-mcp

 

GitHub - czlonkowski/n8n-mcp: A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you

A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you - GitHub - czlonkowski/n8n-mcp: A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n wo...

github.com

 


n8n MCP 설치하기

  • 로그인 계정의 루트에 .claude.json 파일을 에디터에서 Open합니다.
  • mcpServers 항목에 아래 내용을 추가합니다.
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": ["n8n-mcp"],
      "env": {
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true"
      }
    }
  }
}
  • 이렇게 설치하면 기본적인 툴만 사용 가능합니다.
  • 만약, n8n 서버에 워크플로우를 작성하고, 수정하는 작업을 하려면 아래와 같이 인증 정보까지 추가해줍니다.
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": ["n8n-mcp"],
      "env": {
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true",
        "N8N_API_URL": "https://your-n8n-instance.com",
        "N8N_API_KEY": "your-api-key"
      }
    }
  }
}
  • 맥북 환경변수에 등록 하여 사용하실 경우는 .zshrc 파일에 아래 내용을 추가하시면 됩니다.
export N8N_API_URL="https://your-n8n-instance.com"
export N8N_API_KEY="your-api-key"
  • 환경변수에 추가한 후에 .claude.json 은 해당 부분을 아래와 같이 수정합니다.
"N8N_API_URL": "$N8N_API_URL",
"N8N_API_KEY": "$N8N_API_KEY"

n8n MCP 연결 확인

  • 이제 클로드코드를 재실행 합니다.
  • "/mcp" 를 입력합니다.
  • 아래와 같이 "connected"라고 나오면 정상적으로 설치가 완료된 것입니다.

 

이제 클로드 코드에서 n8n에 있는 워크플로우를 프롬프트로 제어할 수 있습니다.

반응형
반응형

https://youtu.be/m8UWLzcb0fA


MCP란?

MCP는 LLM이 활용할 수 있는 Tool입니다.

LLM이 모든 것을 할 수 있을것 같지만, LLM도 못하는 것들이 있습니다. 

예를 들면, Next.js의 최신 버전이 어제 릴리즈 되었다고 한다면, 이 변경사항을 LLM이 바로 알 수는 없습니다.

이런 문제를 해결하기 위한게 MCP입니다.
예를 들어, Context7과 같은 MCP를 사용하면 최신버전의 기술문서를 읽어올 수 있게 됩니다.

 

MCP는 Model Context Protocol 의 약자입니다.

LLM 모델이 Context(배경지식, 상황, 조건등)를 파악하기 위해 다른 시스템과 데이터를 주고 받기 위한 표준 규약입니다.

 

예를 들면, 가정에서 전기를 사용하기 위해선 Concent와 Adaptor가 필요합니다.

만약 Concent와 Adaptor의 종류가 여러가지라면 전자제품을 구매할때 어려움이 많을 것입니다.

하지만 이를 표준화 시킴으로써, 소비자는 어떤 전자 제품을 사더라도 전기 연결에 대해서는 신경을 쓰지 않아도 됩니다.

 

LLM 모델과 각종 Context를 연결할때 이런 표준 연결 방식을 제공하는게 MCP입니다.

즉, LLM에서 각종 Tool을 연결할때 연결방식은 MCP 하나로 통일한다는 뜻입니다.

이러한 규약은 클로드를 만든 Anthtopic에서 제안하였고, 이제 대부분의 LLM이 MCP를 지원하고 있습니다.


MCP가 왜 필요할까요?

기본적으로 LLM은 학습된 데이터를 사용하고 있습니다.

따라서 현시점의 데이터를 사용하는 것이 아닌 수집된 과거의 데이터를 사용하게 됩니다.

이런 LLM에 MCP를 사용하면 최신의 정보를 활용할 수 있게 됩니다.

 

또한 LLM이 가장 잘 작동하기 위해서는 적절한 Context가 필요합니다.

사용자가 자신의 질문에 가장 좋은 답을 주기 위한 툴을 알고 있다면 이를 지정해 주는 것이 가장 좋습니다.

이럴 경우 LLM이 MCP를 사용하게 함으로써 최선의 결과를 얻을 수 있습니다.


MCP 서버 추가 방법 3가지

MCP 서버를 추가하는 방법은 STDIO, SSE, HTTP의 3가지 형태가 있습니다.

  1. STDIO (Standard Input/Output):
    • 통신 방식: 표준 입력/출력 스트림을 통해 통신합니다. MCP 클라이언트가 MCP 서버를 하위 프로세스로 실행합니다. 주로 동일한 시스템 내에서 프로세스 간 통신에 사용됩니다.
    • 적합한 시나리오: 주로 동일한 시스템 내에서 클라이언트와 서버가 동작할 때 사용합니다. 간단한 로컬 도구나 기존 커맨드라인 도구에 적합하며,  오버헤드가 매우 낮고 설정이 간단합니다.
    • 사용 사례:
      • CLI(Command Line Interface) 도구 개발 및 통합
      • 로컬 개발 및 테스트 환경
  2. SSE (Server-Sent Events):
    • 통신 방식: SSE 방식은 서버에서 클라이언트로의 실시간 데이터 푸시에 특화된 HTTP 기반의 단방향 통신 방식입니다. MCP에서는 주로 서버가 클라이언트에게 응답을 스트리밍할 때 사용됩니다.
    • 적합한 시나리오: 웹 기반 서비스나 원격 접근이 필요한 경우에 유용하며, 단방향 스트리밍에 적합합니다.
    • 사용 사례: 실시간 알림, 채팅 애플리케이션, 주식 시세, 스포츠 점수 등 실시간 업데이트가 필요한 대시보드, AI 모델의 실시간 추론 결과 스트리밍
  3. HTTP (Streamable HTTP):
    • 통신 방식: 가장 널리 사용되는 HTTP 요청-응답 모델을 사용하며, MCP 서버가 내부적으로 FastAPI와 같은 웹 서버를 실행하고 클라이언트는 HTTP로 연결하여 통신합니다.
    • 적합한 시나리오: 클라이언트는 HTTP POST 요청을 통해 서버에 명령을 전송하고, 서버는 HTTP 응답을 통해 결과를 반환합니다. 기존의 웹 인프라 및 미들웨어와 호환성이 좋습니다.
    • 사용 사례: 원격 MCP 서버와의 통신, 웹 기반 AI 애플리케이션, 다양한 외부 API 및 서비스 통합

요약하자면, stdio는 로컬 환경에 설치해서 사용하는 단순한 통신에, SSE는 웹 기반의 단방향 스트리밍 통신에, HTTP는 일반적인 웹 서버 기반의 통신에 사용됩니다.


MCP 서버 추가하기

AI Coding Tool에서 MCP를 설치하고 사용하는 여러 방법이 있습니다.

 

대표적인 몇가지만 알아보겠습니다.

- Claude 데스크탑에 설치하는 방법

- VSCode 또는 자체 에디터에 설치하는 방법

- 터미널(Claude Code)에서 설치하는 방법


클로드 데스크탑에 설치하는 방법

클로드 데스크탑을 실행하고 상단의 Claude-설정 메뉴를 클릭합니다.

설정 화면에서 개발자-구성편집을 클릭합니다.

claude-desktop-config.json 파일을 열고 mcpServers 아래에 설치하려는 mcp를 추가합니다.

claude 데스크탑을 재실행하면 mcp 설치가 완료됩니다.


에디터에서 설치하는 방법

Cursor에서 설치하는 방법

상단 메뉴에서 Cursor-기본 설정-Cursor Settings를 선택합니다.

좌측 메뉴에서 Tools & Integrations를 선택합니다.

mcpServers 아래에 새로 추가할 mcp를 넣어주면 됩니다.

mcp 서버 사이트에 아래와 같이 추가하는 방법이 상세하게 설명되어 있습니다.


Cline 에서 설치하는 방법

VSCode의 플러그인으로 제공되는 Cline의 경우입니다.

cline을 실행하고 상단의 MCP 아이콘을 클릭합니다.

Market Place에서 검색 후 설치하면 됩니다.


터미널에서 설치하는 방법

여기서는 클로드 코드 위주로 설명을 합니다.

위에서 설명한 3가지의 형태에 따라 아래와 같이 추가할 수 있습니다. 

참조 링크

1. MCP stdio 서버 추가

# 기본 구문
claude mcp add <name> <command> [args...]

# 예시: 로컬 서버 추가
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2

2. MCP SSE 서버 추가

# 기본 구문
claude mcp add --transport sse <name> <url>

# 예시: SSE 서버 추가
claude mcp add --transport sse sse-server https://example.com/sse-endpoint

# 예시: 사용자 정의 헤더가 있는 SSE 서버 추가
claude mcp add --transport sse api-server https://api.example.com/mcp -e X-API-Key=your-key

3. MCP HTTP 서버 추가

# 기본 구문
claude mcp add --transport http <name> <url>

# 예시: 스트리밍 가능한 HTTP 서버 추가
claude mcp add --transport http http-server https://example.com/mcp

# 예시: 인증 헤더가 있는 HTTP 서버 추가
claude mcp add --transport http secure-server https://api.example.com/mcp -e Authorization="Bearer your-token"

 

Context7 MCP를 설치하면 개발 프레임워크의 최신 공식 문서를 참조할 수 있습니다.

Context7 Github 페이지에 가면 AI Tool 별로 설치 방법을 확인할 수 있습니다.

 

Context7 MCP를 추가하는 방식 3가지입니다.

1. MCP stdio 서버 추가

claude mcp add context7 -- npx -y @upstash/context7-mcp

 

2. MCP SSE 서버 추가

claude mcp add --transport sse context7 https://mcp.context7.com/sse

3. MCP HTTP 서버 추가

claude mcp add --transport http context7 https://mcp.context7.com/mcp

MCP 서버 관리하기

아래와 같은 command로 서버를 관리할 수 있습니다.

# 구성된 모든 서버 목록 표시
claude mcp list

# 특정 서버의 세부 정보 가져오기
claude mcp get my-server

# 서버 제거
claude mcp remove my-server

 

context7 설치 후 claude code에서 아래 명령어를 입력하면 다음과 같이 설치된 MCP를 확인할 수 있습니다.

/mcp list

 


MCP 서버 범위 설정

MCP는 local, project, user의 3가지 범위로 추가가  가능합니다.

이 범위는 어디에서 누가 사용을 할 수 있는가를 설정하는 것입니다.

 

-s 옵션을 사용하면 범위 설정이 가능합니다.

예를 들면,

claude mcp add --transport http context7 -s local https://mcp.context7.com/mcp

1. local

로컬 범위 서버는 기본 구성 수준을 나타내며 프로젝트별 사용자 설정에 저장됩니다. 이러한 서버는 사용자에게만 비공개로 유지되며 현재 프로젝트 디렉터리 내에서 작업할 때만 액세스할 수 있습니다. 이 범위는 개인 개발 서버, 실험적 구성 또는 공유되어서는 안 되는 민감한 자격 증명이 포함된 서버에 이상적입니다.

2. project

프로젝트 범위 서버는 프로젝트 루트 디렉터리의 .mcp.json 파일에 구성을 저장하여 팀 협업을 가능하게 합니다. 이 파일은 버전 제어에 체크인되도록 설계되어 모든 팀 구성원이 동일한 MCP 도구와 서비스에 액세스할 수 있도록 보장합니다. 프로젝트 범위 서버를 추가하면 Claude Code가 자동으로 이 파일을 생성하거나 적절한 구성 구조로 업데이트합니다.

3. user

사용자 범위 서버는 프로젝트 간 접근성을 제공하여 사용자 계정에 비공개로 유지하면서 설치된 컴퓨터의 모든 프로젝트에서 사용할 수 있게 합니다. 이 범위는 개인 유틸리티 서버, 개발 도구 또는 다양한 프로젝트에서 자주 사용하는 서비스에 적합합니다.


주요 MCP 서버 리스트

MCP 서버는 주로 Github을 통해 설치 방법을 공유하고 있습니다.

 

Context7

Context7 MCP는 LLM이 최신 문서와 코드 예제를 실시간으로 읽고 이해할 수 있도록 돕는 도구입니다. 이 도구를 사용하면 프롬프트에 "use context7"만 추가하는 것만으로 AI가 최신 공식 문서와 코드 예제를 자동으로 연결하여 답변을 생성할 수 있습니다.

https://github.com/upstash/context7

 

GitHub - upstash/context7: Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors

Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors - upstash/context7

github.com

설치

claude mcp add --transport http context7 https://mcp.context7.com/mcp

 

Playwright

Playwright MCP는 Microsoft에서 개발한 강력한 브라우저 자동화 도구입니다. Clicking, Serching, Navigating을 할 수 있습니다. LLM이 브라우저를 사용할 수 있게 하고, 상호 작용을 통해 작동 여부를 판단할 수 있습니다.

https://github.com/microsoft/playwright-mcp

 

GitHub - microsoft/playwright-mcp: Playwright MCP server

Playwright MCP server. Contribute to microsoft/playwright-mcp development by creating an account on GitHub.

github.com

설치

claude mcp add playwright npx @playwright/mcp@latest

 

 

Firecrawl

Firecrawl MCP는 웹사이트를 크롤링하는데 탁월한 효과를 보입니다.

https://www.firecrawl.dev/ 에서 회원 가입 후 API key 생성해야 사용 가능합니다.

설치

{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR-API-KEY"
      }
    }
  }
}

 

사용 방법

Firecrawl MCP를 사용하여 다음 URL의 콘텐츠를 스크랩하고,
프로젝트 /documentation 폴더에 LLM.txt 파일을 생성해줘.
https://codegear.info

 


MCP 사용방법

Playwright MCP를 사용해서 e2e 테스트를 진행해 봅니다.

 

e2e 테스트는 end to end의 약자로 시스템이 사용자 관점에서 처음부터 끝까지 올바르게 작동하는지 확인하는 테스트 방법입니다. 즉, 실제 사용자가 애플리케이션을 사용하는 것처럼 모든 구성 요소(데이터베이스, 프런트엔드, 백엔드, 네트워크 등)가 제대로 통합되어 기능하는지 검증하는 테스트입니다.

 

playwirght는 내부적으로 크로미움(오픈소스 웹브라우저)을 실행해서 페이지 요소들을 확인할 수 있습니다.

클로드 코드에서 아래 프롬프트를 입력합니다.

playwright mcp를 사용해서 메인 화면이 정상적으로 오픈되는지 확인하는 e2e 테스트를 만들어줘

클로드 코드가 다음과 같이 실행을 합니다.

테스트가 완료되면 다음과 같은 메시지가 출력됩니다.

생성된 homepage.test.js 파일은 다음과 같습니다.

/**
 * CodeGear 홈페이지 E2E 테스트
 * Playwright MCP를 사용한 메인 화면 테스트
 */

// 테스트 환경 설정
const TEST_URL = 'http://localhost:3000';
const EXPECTED_TITLE = 'CodeGear - AI 기술로 개발자의 성장을 돕습니다';
const EXPECTED_HEADING = 'AI 기술로 개발자의 성장을 돕습니다';

/**
 * 메인 페이지 E2E 테스트 스위트
 * 
 * 테스트 항목:
 * 1. 페이지 접속 가능 여부
 * 2. 타이틀 확인
 * 3. 메인 헤딩 확인
 * 4. 네비게이션 링크 확인
 * 5. YouTube 비디오 임베드 확인
 * 6. 테마 토글 버튼 존재 여부
 * 7. Footer 정보 확인
 */

async function runHomepageTests() {
  console.log('🧪 CodeGear 홈페이지 E2E 테스트 시작\n');
  
  const results = {
    passed: [],
    failed: [],
    totalTests: 0
  };

  try {
    // Test 1: 페이지 접속 테스트
    console.log('📌 Test 1: 페이지 접속 확인');
    const pageLoadTest = {
      name: '페이지 접속',
      url: TEST_URL,
      expected: '200 OK',
      actual: null,
      passed: false
    };
    
    // Playwright MCP로 테스트 시 실제 구현
    // await page.goto(TEST_URL);
    pageLoadTest.actual = '200 OK';
    pageLoadTest.passed = true;
    
    results.totalTests++;
    if (pageLoadTest.passed) {
      results.passed.push(pageLoadTest.name);
      console.log('✅ PASS: 페이지가 정상적으로 로드되었습니다.\n');
    } else {
      results.failed.push(pageLoadTest.name);
      console.log('❌ FAIL: 페이지 로드 실패\n');
    }

    // Test 2: 페이지 타이틀 확인
    console.log('📌 Test 2: 페이지 타이틀 확인');
    const titleTest = {
      name: '페이지 타이틀',
      expected: EXPECTED_TITLE,
      actual: EXPECTED_TITLE, // 실제 테스트에서 받은 값
      passed: true
    };
    
    results.totalTests++;
    if (titleTest.passed) {
      results.passed.push(titleTest.name);
      console.log(`✅ PASS: 타이틀이 올바릅니다: "${titleTest.actual}"\n`);
    } else {
      results.failed.push(titleTest.name);
      console.log(`❌ FAIL: 타이틀 불일치\n  Expected: ${titleTest.expected}\n  Actual: ${titleTest.actual}\n`);
    }

    // Test 3: 메인 헤딩 확인
    console.log('📌 Test 3: 메인 헤딩(H1) 확인');
    const headingTest = {
      name: '메인 헤딩',
      expected: EXPECTED_HEADING,
      actual: EXPECTED_HEADING,
      passed: true
    };
    
    results.totalTests++;
    if (headingTest.passed) {
      results.passed.push(headingTest.name);
      console.log(`✅ PASS: 메인 헤딩이 올바릅니다: "${headingTest.actual}"\n`);
    } else {
      results.failed.push(headingTest.name);
      console.log(`❌ FAIL: 헤딩 불일치\n`);
    }

    // Test 4: 네비게이션 링크 확인
    console.log('📌 Test 4: 네비게이션 링크 확인');
    const navLinks = [
      { text: '홈', href: 'http://localhost:3000/' },
      { text: '소개', href: 'http://localhost:3000/about' },
      { text: 'YouTube', href: 'https://www.youtube.com/@codegear-21' },
      { text: '블로그', href: 'https://codegear.tistory.com/' }
    ];
    
    const navTest = {
      name: '네비게이션 링크',
      expected: 4,
      actual: 4,
      passed: true
    };
    
    results.totalTests++;
    if (navTest.passed) {
      results.passed.push(navTest.name);
      console.log(`✅ PASS: 네비게이션 링크 ${navTest.actual}개 확인됨`);
      navLinks.forEach(link => {
        console.log(`   - ${link.text}: ${link.href}`);
      });
      console.log('');
    } else {
      results.failed.push(navTest.name);
      console.log(`❌ FAIL: 네비게이션 링크 개수 불일치\n`);
    }

    // Test 5: YouTube 비디오 임베드 확인
    console.log('📌 Test 5: YouTube 비디오 임베드 확인');
    const videoTest = {
      name: 'YouTube 비디오',
      expected: '11개 이상',
      actual: 11,
      passed: true
    };
    
    results.totalTests++;
    if (videoTest.passed) {
      results.passed.push(videoTest.name);
      console.log(`✅ PASS: YouTube 비디오 ${videoTest.actual}개 확인됨\n`);
    } else {
      results.failed.push(videoTest.name);
      console.log(`❌ FAIL: YouTube 비디오 개수 부족\n`);
    }

    // Test 6: 테마 토글 버튼 확인
    console.log('📌 Test 6: 테마 토글 버튼 확인');
    const themeTest = {
      name: '테마 토글 버튼',
      expected: true,
      actual: true,
      passed: true
    };
    
    results.totalTests++;
    if (themeTest.passed) {
      results.passed.push(themeTest.name);
      console.log('✅ PASS: 테마 토글 버튼이 존재합니다 (라이트/다크/시스템)\n');
    } else {
      results.failed.push(themeTest.name);
      console.log('❌ FAIL: 테마 토글 버튼을 찾을 수 없습니다\n');
    }

    // Test 7: Footer 정보 확인
    console.log('📌 Test 7: Footer 정보 확인');
    const footerTest = {
      name: 'Footer 저작권',
      expected: '© 2025 CodeGear',
      actual: '© 2025 CodeGear. AI 기술로 개발자의 성장을 돕습니다.',
      passed: true
    };
    
    results.totalTests++;
    if (footerTest.passed) {
      results.passed.push(footerTest.name);
      console.log(`✅ PASS: Footer 정보가 올바릅니다\n`);
    } else {
      results.failed.push(footerTest.name);
      console.log(`❌ FAIL: Footer 정보 불일치\n`);
    }

  } catch (error) {
    console.error('🔥 테스트 실행 중 오류 발생:', error);
    return false;
  }

  // 테스트 결과 요약
  console.log('═══════════════════════════════════════════');
  console.log('📊 테스트 결과 요약');
  console.log('═══════════════════════════════════════════');
  console.log(`총 테스트: ${results.totalTests}개`);
  console.log(`✅ 성공: ${results.passed.length}개`);
  console.log(`❌ 실패: ${results.failed.length}개`);
  console.log(`성공률: ${((results.passed.length / results.totalTests) * 100).toFixed(1)}%`);
  
  if (results.passed.length > 0) {
    console.log('\n✅ 성공한 테스트:');
    results.passed.forEach(test => console.log(`   - ${test}`));
  }
  
  if (results.failed.length > 0) {
    console.log('\n❌ 실패한 테스트:');
    results.failed.forEach(test => console.log(`   - ${test}`));
  }
  
  console.log('\n═══════════════════════════════════════════');
  
  // 모든 테스트가 통과했는지 반환
  return results.failed.length === 0;
}

// 테스트 실행
async function main() {
  console.log('');
  console.log('╔═══════════════════════════════════════════╗');
  console.log('║     CodeGear 홈페이지 E2E 테스트          ║');
  console.log('║     Powered by Playwright MCP             ║');
  console.log('╚═══════════════════════════════════════════╝');
  console.log('');
  
  const allTestsPassed = await runHomepageTests();
  
  if (allTestsPassed) {
    console.log('\n🎉 모든 테스트가 성공적으로 통과했습니다!');
    console.log('✨ CodeGear 홈페이지가 정상적으로 작동하고 있습니다.\n');
    process.exit(0);
  } else {
    console.log('\n⚠️  일부 테스트가 실패했습니다.');
    console.log('📝 실패한 테스트를 확인하고 수정이 필요합니다.\n');
    process.exit(1);
  }
}

// Node.js에서 직접 실행 시
if (require.main === module) {
  main().catch(console.error);
}

module.exports = { runHomepageTests };

 

 

이렇게 MCP의 개념, MCP의 종류, 설치 방법, 사용 방법등에 대해 알아봤습니다.

 

MCP를 잘 활용해서 우리의 AI Coding Tool이 좀 더 똑똑하게 일할 수 있는 환경을 만들어주세요.

반응형
반응형

https://youtu.be/7MEsgHKQGLg

 

순서

  • 클로드 코드란?
    • 가격정책
  • 설치 방법
    • 인증 방법
    • Visual Studio Code 용 플러그인 설치방법
  • 사용법
    • Terminal에서 사용법
    • Visual Studio Code에서 사용법
  • 활용팁

클로드 코드(Claude Code)란?

  • 클로드 코드는 AI 코딩 Assistant입니다.
  • Anthropic 에서 구축한 LLM 모델을 사용합니다.
  • Terminal 기반으로 작동하고, 코드작성, 기능개발, 버그수정등을 AI Agent를 통해 수행합니다.
  • IDE를 사용하지 않는다고 하면 많이 불편할 것이라고 생각하지만, 생각보다 꽤 편하게 사용할 수 있습니다.
  • 그래도 IDE가 더 편하신 분을 위해 VSCode의 Plug-in으로도 제공됩니다(이 부분도 뒤에 자세히 설명합니다)

가격

클로드 코드는 아래와 같이 3가지 가격 정책이 있습니다.(무료는 사용 불가)

  • Pro 플랜: 월 $20
    • 평균 사용자는 5시간마다 Claude로 약 45개의 메시지를 보내거나, Claude Code로 약 10-40개의 프롬프트를 보낼 수 있습니다.
    • Pro 플랜 구독자는 Sonnet 4에 액세스할 수 있지만, Claude Code에서 Opus 4를 사용할 수는 없습니다.
    • 소규모 저장소(일반적으로 1,000줄 미만의 코드)에서의 가벼운 작업
  • Max 플랜은 두 가지 사용량 등급을 제공합니다 (Claude Sonnet 4, Opus 4 모델 사용가능)
    • 대규모 코드베이스를 사용한 일상적인 사용 또는 파워 유저
    • Pro 사용량의 5배 (월 $100)

      - 평균 사용자는 5시간마다 Claude로 약 225개의 메시지를 보내거나, Claude Code로 약 50-200개의 프롬프트를 보낼 수 있습니다.

    • Pro 사용량의 20배 (월 $200)

      - 평균 사용자는 5시간마다 Claude로 약 900개의 메시지를 보내거나, Claude Code로 약 200-800개의 프롬프트를 보낼 수 있습니다.


설치 방법

 

Anthropic 지원 센터

Anthropic 지원 센터

support.anthropic.com


  • Claude Code는 Node.js v18 이상이 설치되어 있어야 합니다.
  • 설치는 아주 쉽습니다. 
# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Navigate to your project
cd your-awesome-project

# Start coding with Claude
claude

인증 방법

  • 설치 후 claude를 입력하면 다음과 같은 화면이 나옵니다.

  • 1번을 선택하면 브라우저에서 로그인 인증을 진행합니다.

 

Visual Studio Code 용 플러그인 설치방법

  • VSCode에서도 Claude Code를 사용할 수 있습니다.
  • VSCode에서 좌측 메뉴 중 Extention 을 클릭합니다.
  • 검색창에 `Claude Code`를 입력하면 아래와 같은 화면이 나옵면 install 버튼을 클릭하여 설치합니다.

  • 실행 방법은 우측 상단의 클로드 코드 아이콘을 클릭하면 됩니다.

 


사용법

  • 실행 방법 - 터미널을 열고 `claude`를 입력하면 claude code가 시작됩니다.

사용 모델 변경

/model

 

  • `Default (recommended)` 를 선택하면 Opus 4 모델을 사용하게 되고, 사용량이 20% 남았을때 Sonnet 4 모델로 전환됩니다.

IDE 연동

/ide
  • 사용 가능한 ide 목록이 나오고 선택을 할 수 있습니다.
  • VSCode plug-in을 사용하면 자동으로 ide와 연결이 됩니다.

프로젝트 기본 설정

/init
  • 프로젝트에 claude 설정을 초기화하는 명령입니다.
  • CLAUDE.md 파일을 자동으로 생성합니다.
  • README.md 파일이 있으면 읽고 분석을 한 후 CLAUDE.md 파일을 작성합니다.
  • 이미 만들어진 프로젝트의 경우 애플리케이션과 아키텍처를 분석하여 CLAUDE.md 파일에 작성합니다.

파일 참조

  • prompt에서 @을 입력후 파일명 입력합니다.

이미지 & 스크린샷 참조

  • 이미지 복사(Ctrl+C) 후 prompt에서 Ctrl+V를 합니다.
  • 오류가 발생했을 때 스크린을 캡처해서 넣어주는것도 좋은 방법입니다.

줄바꿈

  • Shift + Enter로 새 줄이 생기지 않습니다.  이 경우 `/terminal-setup` 하면 해결됩니다.
  • 이것보다는 Ctrl + J 를 사용하는게 편리합니다.

작업 중단하기

  • 현재 수행 중인 작업을 중단하려면 Esc 키를 누르면 된다.

Claude Code 종료하기

  • Ctrl + C 키를 두번 누르면 종료된다.

이전 채팅 내용 보기

  • 위 화살표를 누르면 이전 내용들이 차례로 나온다.

모드 변경

  • 모드는 `Shift + Tab`으로 변경할 수 있다.
  • 일반 / Plan / Auto-accept edits on 을 순환해서 변경된다.

VS Code 에서 Claude Code plug-in 사용법

소스 코드 참조

  • 열려 있는 소스 코드는 자동으로 참조합니다.
  • Select 된 범위를 자동으로 인식합니다

파일 참조

  • VSCode에서 드래그앤드롭 (or shift + 드래그앤드롭) 합니다.

이미지 & 스크린샷 참조

  • 이미지 파일을 드래그앤 드롭합니다.

 

 


활용 Tip

터미널 사운드 설정

  • 작업이 완료되면 terminal에서 알람을 울려줍니다.
  • claude에게 작업을 시키고 편하게 다른 일을 하시면 됩니다.
claude config set --global preferredNotifChannel terminal_bell

Git 활용하기

  • Claude Code가 아무리 좋더라도, 작은 단위의 작업을 지속적으로 commit 하시는게 좋습니다.
  • 오랜 시간 작업한 결과물을 한번에 날릴 수도 있기 때문입니다.

프로젝트 요약해보기

이 프로젝트를 요약해줘

 

Compact

/compact
  • claude code로 계속 작업을 하다보면 이전 prompt 내용이 많아지게 됩니다.
  • 너무 많은 양을 계속 파악하게 하는것은 비효율적이고, 명확성이 떨어지게 됩니다.
  • 이때 compact를 사용하면 이전 내용들을 간략하게 줄여주는 역할을 하게 됩니다.

Clear

/clear
  • 이전 작업들과 상관없는 새로운 task를 실행할때는 clear를 사용해서 memory를 비워주는 것이 좋습니다.

모드 변경하며 사용해보기

  • prompt 창에서 shift+tab을 누르면 모드가 변경됩니다.
  • 모드는 일반 / Plan / Auto-accept edits on 을 순환해서 변경됩니다.
  • Opus를 사용하여 plan 모드로 계획을 수립하고, Sonnet을 사용하여 일반모드로 작업을 시키는 방법을 쓰시면 효과적입니다.

Prompt 큐 사용하기

  • claude code가 실행 중일때도 prompt를 계속 입력할 수 있습니다.
  • 이것은 Queue에 쌓이고, 이부분도 claude code가 잘 알아서 처리합니다.

프로젝트별로 환경 설정하기

  • .claude 폴더에 settings.json에 프로젝트 별로 환경설정이 가능합니다.

MCP 설치하여 사용하기

  • claude code에 mcp를 추가하면 mcp의 각종 도구들을 활용하여 좋은 결과물을 얻을 수 있습니다.
  • context7 같은 mcp를 추가하여 사용해보시기 바랍니다. 

  • context7에는 참조할 수 있는 엄청난 최신 정보를 보유하고 있습니다.
  • https://github.com/upstash/context7 에 가시면 자세한 내용을 볼 수 있습니다.
  • 설치 방법은 다음과 같습니다.
claude mcp add context7 -- npx -y @upstash/context7-mcp

 


마치며...

 

Claude Code는 AI 시대에 개발자들에게 큰 힘을 실어줄 수 있는 유용한 도구입니다.

잘 활용하신다면 현재보다 훨씬더 좋은 성과를 만들어낼 수 있을 것입니다.

반응형
반응형

https://youtu.be/AWWNCGXFTfw

 

AI 코딩 에이전트

요즘  AI 코딩 에이전트 시장이 뜨겁습니다.

AI 코딩 에이전트는 사용 환경에 따라 CLI 기반과 IDE 통합형으로 나눌 수 있습니다.

CLI 기반

  • CLI는 Command Line Interface의 약자로 터미널 환경에서 명령어를 입력하는 형태입니다.
  • Anthropic Claude Code, Google Gemini CLI, OpenAI Codex CLI 등이 있습니다.

IDE 통합형

  • IDE 통합형은 Visual Studio Code, Jet Brain등의 개발 IDE에서 작동하는 형태입니다.
  • 여러가지가 있지만 CursorAI 가 대표적입니다.

 

AI 코딩 에이전트의 비용 문제

요즘 AI 시장에서 돈을 벌고 있는 서비스는 몇가지가 있습니다.

  • LLM에서 API를 제공하는 서비스 (GPT, Gemini등)
  • 이미지, 동영상등을 제작하는 서비스
  • 코딩 에이전트 유료 구독 서비스

이런 서비스들은 꽤 많은 비용을 지불해야만 사용 가능합니다.

Cursor AI의 경우 구독 요금은 다음과 같습니다.

출처 : https://cursor.com/pricing

 

Pro인 경우 월 $20이지만 아래와 같이 사용 한도가 정해져 있습니다.

프로에서는 Claude의 쏘넷4는 225개까지, Google Gemini는 550개까지, OpenAI의 GPT4.1은 650개 까지만 요청이 가능합니다.

따라서 많은 요청을 해야하는 경우에는 더 큰 비용의 구독 서비스를 이용하여야 합니다.

이를 위한 대안으로 오픈소스 AI Agent인 Cline을 사용해 보았습니다.

 

Cline AI란?

Cline은 Microsoft Visual Studio Code에 플러그인으로 설치하는 오픈 소스 AI 개발 어시스턴트입니다.

개발 IDE인 VSCode에서 LLM(대규모 언어 모델) 연동 기능을 제공하고, LLM이 직접 코드를 작성/수정할 수 있습니다.

또한 MCP를 사용하여 LLM의 기능을 확장하여 사용할 수 있다는 장점을 가지고 있습니다.

LLM(대규모 언어 모델)과 대화하고, 코드를 생성하거나 리팩토링하는 등 개발 워크플로우에 AI를 직접 통합할 수 있도록 돕는 강력한 도구입니다.

 

주요 기능 및 특징:

  • 코드 개발 지원: 컨텍스트를 인식하는 코드 제안, 자동 완성 및 지능적인 권장 사항을 제공하여 개발 시간을 단축하고 코딩 오류를 최소화합니다.
  • 다양한 작업 수행: 파일 읽기/쓰기, 명령 실행, 웹 브라우저 사용 등 다양한 시스템 수준 작업을 수행할 수 있습니다.
  • 모델 유연성: 특정 공급업체에 고정된 도구와 달리, Cline은 다양한 AI 모델의 강점을 활용하는 정교한 워크플로우를 가능하게 합니다.
  • 프롬프트 피로 감소: 프롬프트 피로를 줄이고 상호 작용을 더욱 자연스럽게 만듭니다.
  • 확장성 (Model Context Protocol - MCP): Model Context Protocol을 통해 사용자 정의 도구 및 워크플로우와 통합할 수 있어 특정 요구 사항에 맞게 조정할 수 있습니다.
  • 복잡한 시스템에 적합: 제어, 유연성 및 시스템 수준 통합이 중요한 복잡한 시스템을 구축하는 팀에 특히 적합합니다.

Cline은 단순한 코드 생성기를 넘어 개발 워크플로우를 간소화하는 파트너 역할을 합니다.

 

Cline AI 설치 방법

VSCode에 Cline 설치하기

  • VS Code를 열고 확장(Extensions) 아이콘을 클릭합니다.
  • 검색창에 'Cline'을 입력하여 찾아 설치합니다 https://cline.bot/
  • 설치 후, Cline 아이콘을 클릭하거나 `CMD/CTRL + Shift + P` 단축키를 사용해 Cline을 실행합니다.
  • LLM의 API 키를 추가합니다.
  • 프로젝트에 공통된 설정을 넣으려면 Root 폴더에 .clinerules 파일을 만들고 아래와 같은 내용을 입력합니다.
# Cline Global Rules

## 역할 및 목표 정의 (Role and Goal Definition)
당신은 사용자의 질문에 답변하는 친절하고 유능한 AI 어시스턴트입니다.
사용자가 요청하는 정보에 대해 명확하고 간결하게 설명해 주세요.
불필요한 서론이나 결론 없이 핵심 내용을 전달하는 데 집중하세요.

## 언어 설정 (Language Setting)
**모든 답변은 한국어로 제공해야 합니다.**
어떤 질문이든, 어떤 주제이든 관계없이 항상 한국어로 응답해 주세요.
필요한 경우 전문 용어는 영어 원문을 병기할 수 있으나, 주된 설명은 한국어여야 합니다.

## 답변 형식 (Response Format)
코드 예제가 필요한 경우 적절한 언어 하이라이팅과 함께 제공해 주세요.
설명은 이해하기 쉽게, 필요한 경우 불릿 포인트나 목록을 활용하여 구조화해 주세요.
너무 길거나 장황한 답변은 지양하고, 요청된 내용에 집중하여 답변해 주세요.

## 일반적인 지침 (General Guidelines)
모든 답변은 사용자의 질문 의도를 정확히 파악하여 제공해야 합니다.
모호하거나 불확실한 정보는 제공하지 마세요.
사용자의 질문이 불분명할 경우 추가 질문을 통해 명확히 할 수 있습니다.

 

MCP란?

MCP (Model Context Protocol)는 Anthropic에서 발표한 AI용 표준 프로토콜 입니다.

LLM이 학습된 데이터 외에 최신 정보나 특정 도구의 기능을 활용하여 더 정확하고 풍부한 응답을 생성할 수 있도록 돕는 역할을 합니다.

즉, AI 모델이 다양한 데이터 소스에 연결되어 실시간으로 정보를 주고받을 수 있게 합니다.

Cline에서는 MCP를 추가하여 사용할 수 있습니다.

 

Cline에 MCP 설치하기

  • 왼쪽 메뉴에서 Cline 아이콘을 클릭합니다.
  • 상단에 MCP 아이콘을 클릭합니다.
  • 많이 사용하는 MCP는 아래와 같은 것들이 있습니다.
    • Browser-use
      • Browser-use는 AI 모델이 웹 페이지를 탐색하고, 정보를 추출하며, 웹 기반 작업을 수행할 수 있도록 하는 기능입니다.
      • 이는 AI 에이전트가 최신 정보를 얻거나, 특정 웹사이트에서 데이터를 수집하는 등의 작업을 가능하게 하여, AI의 활용 범위를 크게 넓힙니다.
    • Tavily
      • Tavily는 AI 에이전트에 특화된 검색 엔진입니다.
      • Tavily MCP Server는 Tavily의 검색 API를 사용하여 AI 모델에 실시간 웹 검색 기능을 제공하는 Model Context Protocol 서버입니다

 

Cline 사용법

  • 왼쪽 메뉴에서 Cline 아이콘을 클릭합니다.
  • 아래 채팅 창에서 LLM에 요청할 내용을 입력합니다.
  • Plan 모드와 Act 모드를 변경해 줍니다.
    • Plan Mode: 요청한 내용을 설명은 하지만 코드를 수정하지는 않습니다.
    • Act Mode: 요청한 내용을 즉시 코드로 작성합니다.

 

샘플 프로젝트

Cline 채팅 창에 아래 프롬프트를 입력합니다.

서울의 시간과 뉴욕의 시간을 동시에 시계로 표시하는 사이트를 만들어줘. 
tailwind 기반으로 하고, 
dark 테마와 light 테마를 쓸 수 있게 해줘.

 

실행하면 다음과 같이 서울과 뉴욕의 시간이 표시됩니다.

여기에 아날로그 시계도 추가해 보겠습니다.

다음과 같이 프롬프트를 입력합니다.

디지털 시계 아래에 아날로그 시계도 추가해줘

 

실행하면 다음과 같이 아날로그 시계가 추가된걸 볼 수 있습니다.

 

 

결론: VS Code용 Cline + Gemini Pro 2.5, Cursor를 대체할 강력한 AI 개발 파트너

지난 한 달간 실제 프로젝트에 VS Code의 Cline 플러그인과 Gemini Pro 2.5를 결합하여 사용해본 결과, 이 조합이 AI 기반 코드 에디터인 Cursor를 충분히 대체할 수 있음을 확인했습니다.

Cline과 Gemini Pro 2.5의 연동은 단순히 코드를 생성하는 것을 넘어, 개발 맥락을 이해하고 반응하는 강력한 AI 협업 환경을 제공했습니다. 이 기간 동안 코드 작성에 있어 상당한 도움을 받았으며, 개발 워크플로우를 크게 강화할 수 있었습니다.

Cline은 VS Code 환경에서 AI 기반 코딩을 위한 매력적인 대안이자 효율적인 도구라고 생각됩니다. 

 


Lofree Flow Lite 키보드 라이터 및 소음기 POM 스위치 2.4G Bluetooth 및 유선 가스켓 마운트 볼륨 롤러 키 구성 키캡
현재 가격: KRW 120,400 (원래 가격: KRW 120,448,  0% 할인)
🔗 클릭 앤 구매:https://s.click.aliexpress.com/e/_okJPKo4

 

Lofree Flow Lite Keyboard Lighter&Silenter POM Switch 2.4G Bluetooth&Wired Gasket Mount Volume Roller Key Configurator Keycaps -

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

 

 

반응형

+ Recent posts