더 나은 프롬프트를 쓰는 것을 멈췄습니다. 대신 더 나은 AI 스킬을 설계하기 시작했습니다.
요약
단순한 프롬프트 엔지니어링을 넘어 재사용 가능한 AI 역량인 '스킬(Skills)'을 설계하는 패러다임의 전환을 다룹니다. 소프트웨어 엔지니어링 원칙을 AI 워크플로우에 적용하여 효율적이고 유지보수 가능한 시스템을 구축하는 방법을 제시합니다.
핵심 포인트
- 프롬프트 대신 재사용 가능한 소프트웨어 컴포넌트로서의 '스킬' 설계 필요
- 단일 책임 원칙을 적용하여 하나의 스킬은 하나의 작업에 집중
- 관심사 분리를 통해 필요한 컨텍스트만 로드하는 지연 로딩 방식 활용
- AI의 추론과 코드의 계산 능력을 분리하여 결정론적 결과 도출
- 점진적 공개(Progressive Disclosure)를 통한 효율적인 컨텍스트 관리
지난 2년 동안 우리는 한 가지에 집착해 왔습니다:
프롬프트 엔지니어링 (Prompt Engineering).
모든 튜토리얼은 동일한 결과를 약속했습니다:
- 더 나은 프롬프트
- 더 나은 AI 응답
하지만 현대적인 AI 코딩 에이전트 (AI coding agents)와 작업하면서, 저는 놀라운 사실을 깨달았습니다.
미래는 더 나은 프롬프트를 작성하는 것이 아닙니다.
재사용 가능한 AI 역량 (AI capabilities)을 설계하는 것입니다.
그것이 바로 Claude Skills가 나타내는 바입니다.
프롬프트 엔지니어링의 문제점
우리 모두 이런 경험이 있습니다.
당신은 완벽한 프롬프트를 작성합니다.
시니어 소프트웨어 아키텍트 (senior software architect)로서 행동하세요...
클린 아키텍처 (clean architecture)를 따르세요...
...
그것은 아름답게 작동합니다.
내일이 오기 전까지는 말이죠.
그러면 당신은 그 전체 내용을 다시 붙여넣습니다.
또다시.
그리고 또다시.
결국 당신의 "완벽한 프롬프트"는 아무도 유지보수하고 싶어 하지 않는 700줄짜리 문서가 되어버립니다.
익숙한 상황인가요?
스킬은 대화의 흐름을 바꿉니다
AI에게 어떻게 일해야 하는지 반복해서 말하는 대신...
그 지식을 한 번만 패키징하세요.
스킬 (Skill)을 프롬프트보다는 재사용 가능한 소프트웨어 컴포넌트 (software component)에 더 가까운 것으로 생각하십시오.
Prompt
↓
...
차이는 미묘합니다.
하지만 그 영향은 엄청납니다.
훌륭한 스킬은 좋은 소프트웨어처럼 느껴집니다
커뮤니티에서 생성된 수십 개의 스킬을 연구한 후, 저는 흥미로운 점을 발견했습니다.
가장 뛰어난 스킬들은 좋은 소프트웨어 엔지니어링 (software engineering)과 동일한 원칙을 따릅니다.
단일 책임 원칙 (Single Responsibility)
나쁜 스킬
"개발을 도와줌."
좋은 스킬
"PDF 양식에서 구조화된 데이터를 추출함."
한 가지 작업.
그것을 매우 뛰어나게 수행합니다.
관심사의 분리 (Separation of Concerns)
하나의 거대한 지시 파일 대신:
Everything.md
좋은 스킬은 책임을 나눕니다.
SKILL.md
↓
...
AI는 실제로 필요할 때만 추가적인 컨텍스트 (context)를 로드합니다.
이것은 AI 버전의 지연 로딩 (lazy loading)입니다.
생성형보다는 결정론적 (Deterministic Over Generative)
사람들이 저지르는 가장 큰 실수 중 하나는 코드가 더 잘할 수 있는 일을 AI에게 시키는 것입니다.
다음과 같이 말하는 대신:
"이 PDF를 주의 깊게 파싱(parse)해 주세요."
더 나은 스킬은 단순히 파서 (parser)를 실행합니다.
AI에게 값을 계산하도록 요청하는 대신...
Python을 실행하세요.
AI에게 복잡한 데이터를 정렬하도록 요청하는 대신...
스크립트 (script)를 실행하세요.
AI는 추론 (reasoning)합니다.
코드는 계산 (compute)합니다.
최고의 스킬 (Skills)은 이 차이를 이해합니다.
점진적 공개 (Progressive Disclosure)가 핵심 비결입니다
한 가지 개념이 AI 워크플로우 (workflows)에 대한 제 생각을 완전히 바꾸어 놓았습니다.
점진적 공개 (Progressive Disclosure).
인턴에게 첫 출근 날 500페이지짜리 매뉴얼을 주는 상황을 상상해 보세요.
그들은 그것을 읽지 않을 것입니다.
이제 그들에게 단 한 페이지를 주는 상황을 상상해 보세요.
필요할 때만, 그다음 페이지를 건네주는 것입니다.
이것이 바로 현대적인 스킬 (Skills)이 작동하는 방식입니다.
처음에는 최소한의 정보만 로드됩니다.
추가적인 문서 (documentation)는 필요할 때만 가져옵니다 (fetched).
결과는 어떨까요?
- 더 빠른 응답
- 더 낮은 토큰 (token) 사용량
- 더 나은 집중도
- 더 적은 환각 (hallucination)
이것은 AI 엔지니어링 (AI engineering)에서 가장 중요한 디자인 패턴 (design patterns) 중 하나가 될 수도 있습니다.
AI에게 모든 것을 가르치려 하지 마세요
개발자들은 종종 하나의 "슈퍼 프롬프트 (super prompt)"를 만들려고 시도합니다.
보통 다음과 같은 모습입니다:
웹사이트 구축
백엔드 작성
...
이는 모든 것을 수행하는 하나의 클래스 (class)를 작성하는 것과 같습니다.
우리는 그것이 나쁜 소프트웨어 설계 (software design)라는 것을 이미 알고 있습니다.
AI에도 동일하게 적용됩니다.
더 작고 집중된 스킬 (Skills)이 거대한 지시 세트 (instruction sets)보다 일관되게 더 나은 성능을 보여줍니다.
API 설계자처럼 생각하세요
스킬 (Skill)을 설계할 때 스스로에게 물어보세요:
다른 개발자가 그것의 목적을 한 문장으로 이해할 수 있는가?
만약 그렇지 않다면...
아마도 너무 많은 일을 하려고 하는 것일 겁니다.
훌륭한 API는 하나의 책임 (responsibility)을 명확하게 노출합니다.
훌륭한 스킬 (Skills) 또한 그래야 합니다.
AI 엔지니어링은 소프트웨어 엔지니어링이 되어가고 있습니다
이것은 제가 얻은 가장 큰 깨달음입니다.
AI 시스템이 성숙해짐에 따라, 이를 구축하는 데 필요한 기술들은 점점 더 익숙한 모습으로 변하고 있습니다.
우리는 다음과 같은 것들을 이야기하고 있습니다:
- 모듈성 (Modularity)
- 재사용성 (Reusability)
- 합성 (Composition)
- 관심사의 분리 (Separation of concerns)
- 추상화 (Abstraction)
- 유지보수성 (Maintainability)
익숙하게 들리시나요?
그것이 바로 소프트웨어 엔지니어링 (software engineering)입니다.
다만 이제 우리는 클래스 (classes) 대신 동작 (behavior)을 설계하고 있을 뿐입니다.
새로운 개발 스택 (Development Stack)
몇 년 전 우리의 스택 (stack)은 다음과 같았습니다.
프론트엔드 (Frontend)
↓
...
이제 또 다른 레이어 (layer)가 나타나고 있습니다.
프론트엔드 (Frontend)
↓
...
우리는 더 이상 소프트웨어를 구축하는 것이 아닙니다.
우리는 다른 소프트웨어가 작동하는 방식을 가르치는 소프트웨어를 구축하고 있습니다.
그것은 매우 다른 도전 과제입니다.
스킬(Skills)은 개발자를 대체하지 않습니다
한 가지 오해는 스킬(Skills)이 AI를 자율적으로 만든다는 것입니다.
그렇지 않습니다.
스킬(Skills)은 전문 지식(expertise)을 포착합니다.
개발자는 여전히 다음을 결정합니다:
- 아키텍처 (architecture)
- 보안 (security)
- 워크플로 (workflows)
- 제약 조건 (constraints)
- 품질 (quality)
스킬(Skills)은 단순히 이러한 결정들을 재사용 가능한 능력(capabilities)으로 패키징하는 것입니다.
그것들을 엔지니어링 플레이북(engineering playbooks)이라고 생각하십시오.
나의 가장 큰 깨달음
프롬프트 엔지니어링 (Prompt engineering)은 우리에게 어떻게 더 나은 질문을 하는지 가르쳐 주었습니다.
스킬 엔지니어링 (Skill engineering)은 AI에게 문제를 일관되게 해결하는 방법을 가르칩니다.
그것은 훨씬 더 큰 변화입니다.
AI로 승리하는 기업들이 반드시 가장 똑똑한 모델을 보유한 것은 아닐 것입니다.
그들은 재사용 가능한 지식의 가장 훌륭한 컬렉션을 보유하게 될 것입니다.
그리고 저는 그것이 업계가 나아가는 방향이라고 생각합니다.
마치며
소프트웨어 개발의 모든 주요 변화는 새로운 추상화 (abstraction)를 도입해 왔습니다.
- 함수 (Functions)가 반복적인 코드를 대체했습니다.
- 라이브러리 (Libraries)가 복사-붙여넣기 유틸리티를 대체했습니다.
- 프레임워크 (Frameworks)가 보일러플레이트 (boilerplate)를 대체했습니다.
- 컨테이너 (Containers)가 배포를 표준화했습니다.
이제 AI가 또 다른 추상화를 도입하고 있습니다:
스킬 (Skills).
그것들은 단순한 재사용 가능한 프롬프트가 아닙니다.
그것들은 재사용 가능한 전문 지식 (expertise)입니다.
만약 향후 몇 년 동안 AI 에이전트 (AI agents)가 소프트웨어를 구축하는 기본 방식이 된다면, 훌륭한 스킬 (Skills)을 설계하는 법을 배우는 것은 훌륭한 API를 설계하는 법을 배우는 것만큼이나 가치 있는 일이 될지도 모릅니다.
당신은 어떻게 생각하시나요?
AI 스킬 (AI Skills)은 단순히 프롬프트 엔지니어링의 다음 진화 단계일까요, 아니면 소프트웨어 아키텍처의 새로운 레이어가 되고 있는 것일까요?
댓글을 통해 여러분의 생각을 듣고 싶습니다.
#ai #claude #claudecode #llm #softwareengineering #developers #productivity #agenticai #mcp #programming
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기