본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 25. 11:01

두 개의 AI 도구를 만들었습니다. 두 번째 도구는 제가 AI를 어떻게 학습해야 하는지 알려주었습니다.

요약

실제 프로젝트를 구축하며 겪은 시행착오를 통해 AI 엔지니어링 학습법을 고찰합니다. 이론 중심의 학습보다는 LangGraph나 MCP 같은 기술을 직접 구현하며 발생하는 문제를 해결할 때 진정한 학습이 이루어짐을 강조합니다.

핵심 포인트

  • 이론 중심 학습보다 실제 문제를 해결하는 프로젝트 기반 학습이 효과적임
  • Claude Code와 OpenCode를 활용한 멀티 에이전트 워크플로우 구축 경험
  • 도구의 단순 사용을 넘어 MCP, subagents 등 내부 메커니즘 이해의 필요성
  • 실제 배포 환경에서의 도구 간 상호작용 및 실패 모드 관리의 중요성

문제점

TeachSim은 봇이 실제 대화를 통해 실제로 작동해야 했기 때문에 저에게 LangGraph를 가르쳐 주었습니다. GitHub Digest 역시 제가 왜 그런지 알아내기 위해 파헤칠 때까지 조용히 고장 나는 방식을 통해, 저에게 침묵의 실패 모드 (silent failure modes)에 대해 가르쳐 주었습니다. 두 사례 모두 제가 개념을 먼저 앉아서 공부했기 때문이 아니라, 그 개념이 실제로 작동하기를 필요로 했기 때문에 머릿속에 남았습니다.

저는 이미 한 번 전통적인 경로를 시도해 보았습니다. (이는 아마도 제가 평생 동안 하고 배우는 모든 일에 적용될 것입니다.) 저는 Anthropic의 Claude Code를 위한 공식 입문 과정을 열었지만, 몇 개의 레슨을 마친 후 거의 아무것도 기억하지 못한 채 포기했습니다. 자료는 훌륭했지만, 이해관계가 걸려 있지 않았고, 실제로 무언가를 망가뜨릴 일도 없었기에 아무것도 머릿속에 남지 않았습니다.

이제 저는 단순히 API 주변을 오케스트레이션 (orchestration) 하는 수준을 넘어, AI 엔지니어링 (AI engineering)에 더 깊이 들어가고 싶습니다. 빠르게 말이죠. 기초를 위해서는 Fast.ai를, 그 다음에는 실무자 수준의 자료를 위해 더 무거운 것을 공부하려 했습니다. 그리고 저는 정확히 똑같은 패턴을 반복하려는 자신을 발견했습니다. 강의를 열고, 첫 번째 레슨부터 시작하며, 언젠가 절박함이 생기기를 바라는 패턴 말입니다.

발견

GitHub Digest는 제가 GitHub Trending를 스크롤해서는 찾을 수 없는 도구들을 표면화해 주는 역할을 합니다. 그것은 이미 실제로 해냈습니다: RTK, sst/opencode, playwright-mcp, 그리고 AI Engineering From Scratch라는 강의가 의도적인 검색이 아닌 이 파이프라인을 통해 나왔습니다.

그 강의가 실제로 저에게 다가온 부분이었습니다. 저는 Claude Code와 OpenCode를 사용하여 프로덕션에 가까운 프로젝트를 두 개 출시했지만, 두 도구에 대한 제 지식의 깊이는 전부 "무언가를 실행할 수 있을 정도의 slash commands와 CLAUDE.md 컨벤션(conventions)" 수준입니다. 저는 MCP, skills, subagents, hooks, plugins 또는 checkpoints를 의도적으로 배워본 적이 없습니다. 저는 그저 그날따라 잘 작동하는 도구를 사용할 뿐입니다.

그 위에 실제 ML 기초를 쌓는 것은 좋지 않은 생각처럼 느껴졌습니다. 도구와 학습 내용 모두와 동시에 싸워야 할 것이기 때문입니다.

설정

두 대의 머신, 그리고 제가 번역하며 전환하는 두 개의 네트워크가 있습니다. 파일 시스템 접근 권한을 가진 Claude Desktop은 양쪽 모두에서 지속적인 감독관 (supervisor) 역할을 수행합니다. 이는 실제 파일을 읽고, 주장이 소스(source)와 일치하는지 확인하며, 무언가가 배포되기 전에 범위 확장 (scope creep)을 포착합니다. OpenRouter를 통해 DeepSeek를 실행하는 작은 VPS로 터널링된 OpenCode, 그리고 Claude Code VS Code 확장 프로그램은 타이핑을 수행하는 교체 가능한 작업자들입니다.

저는 이 두 작업자가 내부적으로 무엇이 다른지 이해하지 못한 채, 둘 다 교체 가능한 것으로 취급해 왔습니다. 그것이 실제 격차 (gap)였습니다.

감독관 역할 또한 이론적인 것이 아닙니다. 어제의 작업은 평소와 같은 사전 점검 (pre-flight check)으로 시작되었습니다: 터널을 시작하고, 연결되었는지 확인한 다음, 시작하는 것입니다. 작업 도중, DeepSeek에서 실행 중이던 OpenCode가 터널 자체를 종료해 버렸고, 작업 중간에 전체 파이프라인을 함께 다운시켜 버렸습니다. Claude Code는 지금까지 그런 행동을 한 적이 없습니다. 이제 저는 OpenCode에만 적용되는 "터널 프로세스를 건드리지 마시오"라는 규칙을 갖게 되었습니다. 이는 4단계 (Phase 4)를 미리 읽어서 만든 가드레일이 아니라, 직접 데여가며 만든 것입니다.

계획 (The Plan)

8단계 (Eight phases)는 claude-howto, Anthropic Academy의 공식 코스 카탈로그, 그리고 opencode.school이라는 세 가지 리소스를 활용하여 설계되었습니다. 이들의 순서를 그대로 따르는 것은 의미가 없었기에, 커리큘럼은 자체적인 순서로 진행됩니다:

단계 (Phase)테마 (Theme)
0기초 (Foundations) (레슨이 아닌 자기 점검 — 이미 알고 있는 내용)
...

각 단계에서 저는 다음 중 하나를 선택할 수 있습니다: 진행 중인 실제 프로젝트 중 하나에서 실제 문제를 해결하거나, 단순한 데모용이 아닌 강력한 프로덕션 사례로 선정된 주목할 만한 오픈 소스 프로젝트를 대상으로 구축하는 것입니다. 1단계 (Phase 1)의 경우, 실제 프로젝트 버전은 REST API를 직접 호출하는 대신 GitHub의 MCP 서버를 GitHub Digest에 연결하는 것입니다. 오픈 소스 버전은 Microsoft의 자체 브라우저 자동화 서버인 playwright-mcp를 설치하고 이를 실제 무언가에 연결하는 것입니다.

저는 아직 둘 다 해보지 않았습니다. 이것은 제가 천천히 진행할 코스에 대한 설계 개요 (design brief)입니다. 제가 스스로에게 부여한 규칙은, 어떤 단계가 단순히 그것에 대해 읽었다고 해서 끝나는 것이 아니라, 실제 진행 중인 프로젝트 중 하나에서 실질적인 해결책 (real fix)을 만들어냈을 때 비로소 완료된다는 것입니다.

왜 MCP가 우선인가

MCP는 이후의 모든 단계가 사용하거나 이미 사용했다고 가정하는 유일한 개념입니다. 기술 (Skills)은 종종 MCP 호출을 감싸는 형태로 구현됩니다. 하위 에이전트 (Subagents)는 MCP를 갖춘 에이전트에게 작업을 위임합니다. 후크 (Hooks)는 MCP 서버가 무엇을 건드릴 수 있는지 제어합니다. 거기서부터 시작하면, 이후의 모든 것들은 되돌아갈 수 있는 구체적인 지점을 갖게 됩니다.

또한 MCP는 가장 입증하기 쉽습니다. 에이전트가 실제 브라우저를 처음으로 구동하는 것을 보는 것은 눈으로 직접 '확인할 수 있는' 일입니다. 반면 단계 0 (Phase 0)에서의 권한 설정은 올바르지만 완전히 보이지 않습니다. 만약 제가 이 작업이 제 주의력 결핍을 극복하고 지속되기를 원한다면, 눈에 보이는 보상이 먼저 와야 합니다.

다음에 올 것들

기술 (Skills), 하위 에이전트 (Subagents), 후크 (Hooks), 플러그인 (Plugins), 체크포인트 (Checkpoints) 순서로, 가능한 한 실제 프로젝트를 대상으로 진행할 것입니다. 그 이후가 진짜 목적입니다: Fast.ai, 그 다음은 더 무거운 학습 내용들입니다. 이때 도구들은 이미 준비되어 있을 것이며, 어려운 내용을 공부하는 동안 주의력을 분산시키는 경쟁 상대가 되지 않을 것입니다.

마무리 생각

저의 베팅은 이미 사용 중인 도구들을 학습하는 것이, 나중에 더 빨라지기 전에 당장은 속도를 늦춘다는 것입니다. 저는 지금 당장 OpenCode를 열어서 사용 가능한 기능의 절반도 이해하지 못한 채 무언가를 출시할 수도 있습니다. 이 작업에 먼저 실제 시간을 투자하는 것은 일종의 거래입니다. 나중에 더 어려운 것을 생각해야 할 시점에 동일한 도구의 마찰 (tool friction)을 다시 학습하지 않기 위해, 이번 달의 추진력을 조금 희생하는 것입니다. 이것이 옳은 결정이었는지는 실제로 시작한 후에 알게 될 것입니다.

이 글은 진행 중인 시리즈의 일부입니다: TeachSim, GitHub Digest, 그리고 이제 AI 엔지니어링을 제대로 배우는 다음 단계의 밑바탕이 될 도구 숙달 (tool-mastery) 작업 계획입니다.

GitHub에서 저를 찾아보세요: github.com/mediblacksand

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0