[00:00]
안녕하세요 여러분, 이번 영상에서는
[00:02]
제가 매일 앱 개발에 사용하는
[00:05]
MCP들에 대해 이야기하겠습니다. 먼저
[00:08]
말씀드리고 싶은 것은 저는
[00:09]
Sequential Thinking이나 Desktop Commander,
[00:12]
Taskmaster 같은 행동 기반 MCP는 실제로 사용하지 않습니다.
[00:16]
Claude Desktop을 사용한다면 Desktop Commander를
[00:18]
사용하겠지만, 오늘 영상에서는
[00:20]
특별히 Claude Code와
[00:22]
함께 사용하는 MCP들에 대해 말씀드리겠습니다.
[00:25]
첫 번째이자 가장 주요한 것은
[00:27]
사실 Bright Data입니다.
[00:29]
채널의 스폰서이기도 하지만,
[00:31]
매일 사용하는 서비스에서
[00:33]
스폰서를 받는 것이라 저에게는
[00:35]
완벽합니다. 제가 Bright Data를
[00:37]
사용하는 목적은 기본적으로
[00:39]
웹사이트 스크래핑입니다. Claude Code의
[00:42]
내부 스크래핑 도구를 사용할 수 있습니다.
[00:44]
여기서 터미널을 열고 Ubuntu에서
[00:47]
Claude를 실행하면 - Mac에서 하지 않으니
[00:49]
정말 이상합니다. 지난 일주일 반 동안
[00:51]
Mac에서 작업했거든요.
[00:52]
테슬라 주가 같은 것을
[00:54]
조회해달라고 할 수 있습니다.
[00:59]
플러스요.
[01:01]
이런 작업의 경우
[01:03]
내부 웹 앱을 사용하는 것이
[01:05]
매우 쉽고 빠릅니다. 하지만
[01:08]
좀 더 복잡한 작업을 하고 싶다면
[01:09]
Bright Data 같은 것이
[01:12]
훌륭합니다. Bright Data는
[01:14]
링크와 이미지를 포함한
[01:15]
구조화된 정보를 얻을 수 있게 해줍니다.
[01:18]
Claude Desktop으로도 할 수 있지만
[01:21]
모든 HTML을 직접 스크래핑하고
[01:24]
작은 fetch 스크립트를 작성하는 등
[01:26]
여러 작업이 필요합니다. 그래서
[01:28]
Bright Data 같은 것을 사용하는 게
[01:30]
더 쉽죠. 또한 매우 저렴하고
[01:32]
프록시를 사용하기 때문에
[01:35]
더 많은 스크래핑이 가능합니다.
[01:38]
네, Bright Data는 아마 제가
[01:41]
매일 사용하는 주요 MCP일 것입니다.
[01:43]
이 정보들 대부분은 이미
[01:44]
제 스쿨 커뮤니티에 있습니다.
[01:46]
스쿨 커뮤니티에 참여하고 싶으시면
[01:47]
설명란의 첫 번째 링크를
[01:48]
확인해 주세요. 제가 실제로 사용하는
[01:50]
다른 MCP들입니다.
[01:53]
스쿨 커뮤니티는 이런 정보를
[01:54]
좋은 형식으로 얻기에 훌륭합니다.
[01:58]
Supabase는 제가 프로덕션
[02:01]
데이터베이스로 사용합니다. 로컬에서는
[02:04]
ORM으로 SQLite를 사용하는데, 이는
[02:09]
SQLite 코드를 사용해 Supabase와 통신하는 것입니다.
[02:12]
정보를 검증하고 확인하며
[02:14]
Supabase MCP를 갖는 것이 매우 중요합니다.
[02:17]
개발 환경에서 프로덕션으로
[02:20]
SQL 마이그레이션을 하는 등의 작업에 말이죠.
[02:23]
Supabase는 그런 용도로 훌륭합니다.
[02:26]
제가 사용하는 Supabase MCP입니다.
[02:27]
비슷한 이유로 매일 사용하는
[02:30]
또 다른 것은
[02:31]
Digital Ocean MCP입니다.
[02:34]
정말 거의 매일 사용합니다.
[02:38]
마찬가지로 정보를 검증할 수 있고,
[02:40]
개발이나 프로덕션 환경의 로그를 읽을 수 있습니다.
[02:45]
프로덕션에 문제가 생겨도
[02:47]
로그를 읽게 할 수 있고,
[02:49]
환경 변수를 설정할 수도 있습니다.
[02:52]
예를 들어 앱에서 갑자기 API 키를
[02:55]
제거하고 싶다면 코딩한 후
[02:58]
Digital Ocean MCP를 사용해
[03:00]
환경 변수를 설정할 수 있습니다. 웹사이트를 런칭하고,
[03:03]
앱을 런칭하고, 변경 사항을
[03:05]
앱을 변경할 수 있어요. 정말 정말 유용한 MCP입니다.
[03:08]
저는 아마 Digital Ocean을 매일 사용하고 있어요.
[03:10]
이제 Shopify MCP에 대해 살펴보겠습니다.
[03:14]
이건 정말 흥미로운 것 같아요.
[03:17]
제가 이것을 비교하자면
[03:20]
Context 7과 비슷하다고 할 수 있어요. 사실 저는
[03:23]
Context 7을 사용하지 않습니다.
[03:25]
Context 7의 큰 팬이 아니에요. 짜증나거든요.
[03:28]
LLM들이 Context 7에서
[03:30]
잘 학습하지 않는 것 같아요.
[03:31]
왜 그런지 잘 모르겠어요. 문제가 뭔지 모르겠지만,
[03:34]
반면에 Shopify MCP는 Shopify의
[03:37]
GraphQL에 대한 접근을 제공합니다. 정말 정말 정말 좋은
[03:42]
MCP예요. 만약 당신이 뭔가를 구축하고 싶은 문서에
[03:45]
접근할 수 있는 MCP를 찾을 수 있다면,
[03:47]
그것이 바로 당신이 해야 할 방법이에요.
[03:49]
예를 들어, WordPress 앱을 만들고 싶다면
[03:50]
WordPress MCP 같은 것을 찾아보세요.
[03:53]
하지만 실제로 변경하는 것은 원하지 않을 거예요.
[03:56]
맞죠? 실제로 원하는 것은... 이것은
[03:59]
좀 쓸모없는 것 같아요.
[04:01]
이건 당신이 원하는 게 아니에요.
[04:03]
제가 실제로 원하는 것은
[04:04]
문서 같은 것이에요.
[04:06]
그래서 아마 Context 7을 사용할 거예요.
[04:08]
만약 그들이 자체 MCP 서버가 없다면요.
[04:10]
하지만 제가 이런 것들을 부르고 싶은 건
[04:13]
정보 제공형이나 RAG 같은
[04:15]
MCP라고 할 수 있겠네요.
[04:19]
Shopify MCP는 Shopify 앱을 만드는 데
[04:21]
정말 훌륭해요. 왜냐하면
[04:24]
Shopify 문서에 완전히
[04:26]
연결되어 있거든요. 이제 제가 사용하는
[04:29]
또 다른 것은 Upstash MCP입니다.
[04:32]
이것은 캐시 관리를 도와주는 거고
[04:34]
MCP 없이는 정말
[04:36]
복잡하고 귀찮아요.
[04:38]
그래서 Redis나 Celery 같은 것을
[04:41]
앱에서 사용하고 싶다면
[04:43]
Upstash를 사용하는 걸 강력히 추천해요.
[04:45]
이제 Context 7에 대해 특별히 언급하자면,
[04:48]
방금 좋아하지 않는다고 했지만,
[04:50]
그래도 아무것도 없는 것보다는 낫죠.
[04:53]
아무것도 없는 것보다 낫다고 하긴 했지만,
[04:54]
요즘 제가 발견하는 것은
[04:56]
보통 Claude의 자체 리서치 기능을 사용해서
[05:01]
정말 심층적인 연구를 하도록
[05:03]
시키는 거예요. 특정 주제의
[05:05]
공식 문서에 대해서요.
[05:07]
하지만 저는 가끔 Context 7을 사용해요.
[05:10]
좋을 것 같다고 생각하는 것들에 대해서요.
[05:13]
방금 말한 것처럼
[05:14]
WordPress 같은 경우요.
[05:16]
WordPress 문서에는
[05:18]
꽤 좋을 것 같아요. 이제
[05:20]
마지막으로 언급할 것은 사용 사례는 있지만
[05:21]
매일 사용하지는 않는
[05:23]
Puppeteer입니다. 아마 철자를
[05:24]
틀리게 쓸 것 같은데요.
[05:26]
원한다면 Stagehand도 사용할 수 있어요.
[05:30]
여기에 H를 써서 Stagehand라고 하면,
[05:32]
이 둘 다 기본적으로 할 수 있는 것은
[05:34]
그리고 또한 GitHub과 Docker에 대해
[05:36]
두 가지 더 특별히 언급하고 싶어요.
[05:39]
저는 GitHub과 Docker의 MCP는 사용하지 않아요.
[05:41]
이게 GitHub이고, 이게 Docker인데,
[05:44]
저는 CLI를 사용해요.
[05:47]
Claude Code 내에서 명령줄 인터페이스를 사용해서
[05:49]
GitHub과 Docker를 실행하는 거죠. 그러면 할 수 있는 것은
[05:53]
Docker를 통해서 실제로
[05:55]
Puppeteer를 사용해서 localhost에서 프로젝트를 볼 수 있어요.
[05:58]
만약 제가 localhost에 가면 아마
[06:00]
여기에 오래된 이상한 코드가 있을 거예요.
[06:03]
완벽하네요. 할 수 있는 것은
[06:05]
Stagehand를 사용해서
[06:08]
실제로 이것을 살펴보고 수정할 수 있습니다. 맞죠?
[06:09]
이 전체 프로젝트를 살펴보고
[06:11]
모든 페이지를 스크롤하며
[06:13]
찾을 수 있는 CSS 문제들을 수정하라고 할 수 있습니다.
[06:15]
이것은 생명의 은인이 될 수 있고
[06:17]
경우에 따라서는 엄청난 시간 절약이 됩니다.
[06:20]
여기서 비디오를 마무리하겠습니다.
[06:21]
이것이 제가 현재 사용하고 있는 MCP 스택입니다.
[06:25]
정말로 강조하고 싶은 것은
[06:26]
GitHub와 Docker는 MCP가 아니지만
[06:28]
코딩할 때 거의 5분이나 10분마다
[06:31]
이것들을 사용한다는 점입니다.
[06:33]
특히 Docker는 정말 대단합니다.
[06:35]
Docker는 자체 테스트를 실행할 수 있기 때문에
[06:38]
정말 놀랍습니다. 이렇게 말할 수 있죠:
[06:41]
'플로우를 테스트하고 출력을 확인해서
[06:44]
오류가 있는지 확인해달라'
[06:47]
오류가 있으면 자동으로 수정하고
[06:49]
반복된 코드를 전달한 다음
[06:50]
다시 실행합니다.
[06:53]
그리고 나서 예를 들어 '오, 하지만'
[06:55]
작동은 했지만 예를 들어
[06:57]
결정형 AI 프롬프트라고 하면
[07:01]
'키튼 컬렉션과 관련된 제품을 찾아달라'고 하는데
[07:05]
키튼과 관련된 제품이 없다고 하죠.
[07:08]
그러면 실제로는
[07:10]
키튼 제품이 있다는 것을 확인하고
[07:12]
키튼 컬렉션과 관련된 제품이
[07:15]
없다고 말하는 것을 보게 됩니다.
[07:17]
그러면 다시 자동으로 수정하고
[07:19]
최종 반복으로 푸시합니다.
[07:21]
제가 발견한 것은 Claude Code가
[07:25]
Docker 내에서 실행될 때
[07:27]
이것을 자동으로 수행한다는 것입니다.
[07:29]
단순히 어리석은 테스트를
[07:32]
해서는 안 된다는 것을 이해하는 것 같습니다.
[07:34]
하지만 한 가지 언급하고 싶은 것은
[07:37]
어리석은 테스트를 하지 말아야 한다고
[07:38]
말하는 것 외에도
[07:40]
때로는 테스트를 하드코딩한다는 것입니다.
[07:43]
따라서 Claude Code에서 나오는
[07:47]
코드를 읽어야 합니다.
[07:49]
코더가 아니더라도
[07:52]
console log라고 하면서
[07:53]
스페인어로 번역한다고 하고
[07:56]
console log에 스페인어가 있으면
[07:58]
그것이 하드코딩된 테스트이고
[08:00]
전혀 쓸모가 없다는 것을 알 수 있습니다.
[08:02]
여기서 비디오를 마무리하겠습니다.
[08:04]
도움이 되었기를 바랍니다.
[08:04]
이것이 제 MCP 스택입니다.
[08:06]
이 MCP 스택을 정말 좋아합니다.
[08:08]
시청해 주셔서 정말 감사합니다.
[08:09]
비디오 끝까지 보고 계시다면
[08:10]
정말 대단한 분입니다.
[08:11]
더 많은 콘텐츠로 곧 뵙겠습니다.
[08:13]
안녕히 계세요.