소프트웨어 개발자를 위한 AEO 가이드
요약
개발자의 검색 방식이 검색 엔진에서 AI 답변 엔진으로 변화함에 따라, LLM이 기술 문서를 정확히 이해하도록 만드는 AEO(답변 엔진 최적화)의 중요성을 다룹니다. API 문서, 튜토리얼 등 개발자 콘텐츠가 AI 모델에 의해 인용되도록 하는 전략적 접근을 제안합니다.
핵심 포인트
- AEO는 LLM이 웹사이트의 기능과 사용법을 이해하게 만드는 최적화 과정임
- 전통적인 SEO와 달리 AI 요약 및 추천에 노출되는 것이 핵심 목표임
- API 문서, 튜토리얼, README 등 기술 문서의 구조적 이해가 필수적임
- 개발자의 복잡한 맥락을 AI가 파악할 수 있도록 콘텐츠를 구성해야 함
5년 전 제가 전업으로 코드를 작성하던 시절에는, 에러 메시지를 구글링하고 5개의 탭을 열어 Stack Overflow, 문서(docs), GitHub 이슈, 그리고 블로그 포스트들을 훑으며 근본 원인을 찾아내곤 했습니다.
세상이 정말 많이 변했습니다.
이제는 에러 메시지를 ChatGPT, Claude, Cursor 또는 Perplexity에 붙여넣고 직접적인 답변을 요구하거나... 훨씬 더 나아가, 코딩 에이전트(coding agent)에게 문제를 해결해 달라고 요청하기만 하면 됩니다!
이러한 행동 양식의 변화는 개발자 도구(developer tools)를 구축, 문서화 또는 마케팅하는 경우 분명히 중요하며, 이것이 바로 AEO에 대한 관심이 높아지고 있는 이유입니다.
저는 CTO 및 소프트웨어 엔지니어로 약 10년을 보낸 후 콘텐츠 분야로 전환하여 Draft.dev를 시작했습니다. 그 이후로 저희 팀은 Docker, Cloudflare, Okta, JetBrains, vCluster를 포함한 수백 개의 기술 기업들과 협력해 왔습니다.
지난 18개월 동안 저희는 이러한 고객사들과 함께 AEO 작업을 진행해 왔으며, 답변 엔진(answer engines)에 의해 인용되는 것과 무시되는 것 사이의 패턴을 발견하기 시작했습니다.
이 가이드는 AEO를 소프트웨어 개발자들이 실무에 적용할 수 있도록 만들기 위한 저의 시도입니다. 함께 살펴봅시다!
소프트웨어 개발자에게 AEO가 의미하는 것
AEO는 답변 엔진 최적화(Answer Engine Optimization)를 의미합니다. GEO는 생성형 엔진 최적화(Generative Engine Optimization)를 의미합니다.
이 용어들은 아직 다소 모호하지만, 실질적인 질문은 간단합니다:
대규모 언어 모델(Large Language Model, LLM)이 당신의 웹사이트가 무엇을 하는지, 어떻게 사용하는지, 그리고 언제 적합한지를 이해할 수 있는가.
이는 다음과 같은 요소를 가진 모든 도구에 중요합니다:
- API 문서 (API docs)
- 튜토리얼 (Tutorials)
- 아키텍처 가이드 (Architecture guides)
- 제품 비교 (Product comparisons)
- 마이그레이션 가이드 (Migration guides)
- 에러 처리 문서 (Error handling docs)
- 통합 예시 (Integration examples)
- README 파일
당신은 LLM이 이 모든 것을 이해하기를 원할 것입니다.
잠시 덧붙이자면, AEO가 전통적인 SEO(검색 엔진 최적화)를 실제로 대체하는 것은 아닙니다. Google은 여전히 많은 트래픽을 보내며, 여전히 많은 개발자가 직접 검색을 수행합니다. 순위(Ranking)를 높이고 인덱싱(indexed)되는 것은 여전히 중요합니다.
차이점은 검색 결과가 '열 개의 파란색 링크 (ten blue links)'일 가능성이 낮아졌다는 것입니다. 대신 AI가 생성한 요약, Perplexity의 답변, ChatGPT의 추천, 또는 구현 경로를 제안하는 코드 어시스턴트(code assistant)가 나타날 수 있습니다. LLM (Large Language Models)에 지속적으로 노출되기 위해 필요한 구현 방식과 전략은 약간 다르며, 이것이 제가 오늘 이 글을 쓰는 이유입니다.
개발자 콘텐츠가 다른 이유
이 글을 읽고 계시다면, 여러분은 개발자를 대상으로 하는 콘텐츠를 작성하고 있다고 가정하겠습니다. Dev.to의 목적이 바로 그것이니까요, 그렇지 않나요?
이것이 중요한 이유는 개발자의 검색 방식이 다르기 때문입니다. 개발자의 검색은 매우 미묘하고 복잡한 맥락(context)으로 가득 차 있습니다.
일반적인 검색자는 다음과 같이 물을 수 있습니다:
가장 좋은 분석 도구는 무엇인가요?
하지만 개발자는 다음과 같이 물을 가능성이 더 높습니다:
이벤트 배치(event batching)와 웨어하우스 내보내기(warehouse export) 기능이 있는 셀프 호스팅(self-hosted) Next.js 앱에 가장 적합한 오픈 소스 프로덕트 분석(product analytics) 도구는 무엇인가요?
두 번째 쿼리에는 제약 조건이 있습니다: 특정 프레임워크, 호스팅 모델, 성능 요구 사항, 데이터 흐름, 그리고 아마도 가격 및 컴플라이언스(compliance)에 대한 몇 가지 숨겨진 우려 사항까지 포함되어 있습니다.
이것이 바로 얕은 수준의 콘텐츠가 기술적 청중에게 도달하지 못하는 이유입니다. "피처 플래깅(feature flagging)이란 무엇인가요?"와 같은 일반적인 포스트는 여전히 인덱싱(indexed)될 수 있지만, AI 도구는 사용자를 여러분의 사이트로 보내지 않고도 그 질문에 직접 답할 수 있습니다.
더 유용한 기사는 다음과 같을 것입니다:
Redis를 사용하여 Node.js API에 퍼센트 기반 피처 플래그(percentage-based feature flags)를 추가하는 방법
이 주제는 더 구체적입니다. 구현 세부 사항, 트레이드오프(tradeoffs), 실패 모드(failure modes), 그리고 특정 버전에 특화된 조언을 보여줄 수 있는 여지를 제공합니다.
AI 시스템은 일반적인 콘텐츠를 요약할 수 있습니다. 하지만 개발자들은 구현 결정을 내릴 때 일반적인 콘텐츠를 신뢰하는 경우가 거의 없습니다.
기술 콘텐츠를 위한 AEO 체크리스트
1. 모든 페이지에 명확한 기술적 역할 부여하기
각 기사나 문서(docs) 페이지는 개발자의 특정 질문에 답할 수 있어야 합니다.
예시:
- 이 SDK를 Next.js 앱에 어떻게 연결하나요?
- 제품 분석(product analytics)을 위한 PostHog와 비교하면 어떤가요?
- SOC 2 요구 사항을 준수하나요?
- API 속도 제한(rate limit)을 초과하면 어떻게 되나요?
- 버전 2에서 버전 3로 어떻게 마이그레이션하나요?
페이지에 명확한 역할이 없다면, 답변 엔진(answer engines)은 그 목적을 추론해야 합니다. 이는 기계와 사람 모두에게 해당 페이지의 유용성을 떨어뜨립니다.
간단한 테스트 방법: 만약 해당 페이지를 "이 페이지는 개발자가 X를 하는 데 도움을 줍니다"라고 설명할 수 없다면, 그 페이지는 너무 모호한 것입니다.
2. 실제 질문과 일치하는 헤딩(headings) 사용하기
많은 기술 콘텐츠가 여전히 다음과 같은 헤딩을 사용합니다:
## 설치 (Installation)
## 인증 (Authentication)
## 에러 처리 (Error Handling)
...
이런 방식도 괜찮지만, 질문 기반의 헤딩이 종종 더 명확합니다:
## SDK를 어떻게 설치하나요?
## 요청을 어떻게 인증하나요?
## 어떤 에러를 처리해야 하나요?
...
이는 독자가 페이지를 훑어보는 데 도움을 주며, 답변 엔진에게도 콘텐츠에 대한 더 깔끔한 지도(map)를 제공합니다.
3. 헤딩 근처에 직접적인 답변 배치하기
독자가 답변을 찾아 헤매게 만들지 마세요.
좋은 패턴은 다음과 같습니다:
## 요청을 어떻게 인증하나요?
`Authorization` 헤더에 베어러 토큰(bearer token)을 전송하여 요청을 인증합니다. 토큰은 환경 변수(environment variable)에 저장하고 소스 제어(source control)에 커밋하지 않도록 주의하세요.
그다음 코드, 예외 케이스(edge cases), 그리고 더 심층적인 문서로 연결되는 링크를 배치합니다.
첫 번째 문장이 중요합니다. 답변 엔진이 간결한 응답을 추출하려고 할 때, 응답을 찾기 쉽게 만들어 주세요.
4. 작동하는 코드 스니펫(code snippets) 포함하기
이 지점이 개발자 대상 콘텐츠가 일반적인 마케팅 콘텐츠보다 우위를 점하는 부분입니다.
취약한 예시:
저희 SDK를 설치하고 API를 호출하세요.
더 나은 예시:
const response = await fetch("https://api.example.com/v1/events", {
method: "POST",
headers: {
...
이 예시는 다음과 같은 내용을 포함하고 있기 때문에 더 유용합니다:
- 엔드포인트(endpoint) 형태
- HTTP 메서드 (HTTP method)
- 인증 패턴 (auth pattern)
- 콘텐츠 타입 (content type)
- 요청 본문 (request body)
- 기본적인 에러 처리 (basic error handling)
개발자는 이를 조정할 수 있고, 답변 엔진 (answer engine)은 이를 이해할 수 있습니다. 두 결과 모두 모호한 문단보다 훨씬 낫습니다.
5. 적절한 곳에 구조화된 데이터 (structured data) 추가하기
스키마 (Schema)가 부실한 콘텐츠를 구원할 수는 없지만, 기계가 읽고 있는 페이지의 유형을 이해하는 데 도움을 줄 수는 있습니다.
Google의 구조화된 데이터 문서가 시작하기에 가장 좋은 자료이지만, 간단한 TechArticle 예시는 다음과 같을 수 있습니다:
<script type="application/ld+json">
{
"@context": "https://schema.org",
...
사이트에 적합한 곳에 이를 사용하세요. 이를 순위 조작을 위한 해킹 (ranking hack)으로 취급해서는 안 됩니다.
6. 예시를 최신 상태로 유지하기
시대에 뒤떨어진 개발자 콘텐츠는 모호한 콘텐츠보다 더 나쁩니다. 누군가의 시간을 낭비하게 만들기 때문입니다.
만약 당신의 튜토리얼이 더 이상 사용되지 않는 (deprecated) API, 오래된 패키지 이름, 또는 구식 설정 명령어를 사용한다면, 개발자들은 이를 빠르게 알아차릴 것입니다. AI 시스템 또한 이러한 오래된 지침을 반복할 수 있습니다.
기술 튜토리얼에 짧은 테스트 블록을 추가하세요:
Tested with:
- Node.js 22
- Next.js 15
...
그런 다음 정기적으로 중요한 게시물을 다시 검토하세요. 변화가 빠른 주제의 경우, 1년에 한 번으로는 충분하지 않을 수 있습니다.
7. 정직한 비교 페이지 만들기
개발자들은 AI 도구에 어떤 제품을 사용할지 묻습니다.
만약 당신의 사이트가 당신의 도구가 어디에 적합한지 설명하지 않는다면, 다른 소스들이 당신을 대신해 그 역할을 할 것입니다.
좋은 비교 콘텐츠에는 다음 내용이 포함됩니다:
- 각 도구가 누구에게 가장 적합한지
- 트레이드오프 (Tradeoffs)
- 가격 모델 (Pricing model)의 차이점
- 통합 (Integration) 제한 사항
- 마이그레이션 (Migration) 참고 사항
- 코드 또는 아키텍처 (architecture) 예시
- 당신의 도구가 적절한 선택이 아닌 경우
마지막 항목이 중요합니다. 당신의 제품이 모든 카테고리에서 승리한다고 주장하는 비교 페이지는 신뢰할 수 없습니다.
콘텐츠를 크롤링(crawl) 및 인용(quote)하기 쉽게 만들기
AEO 작업의 상당 부분은 기본적인 기술적 위생 (technical hygiene)에 관한 것입니다.
만약 주요 콘텐츠를 크롤링하기 어렵거나, JavaScript 뒤에 숨겨져 있거나, PDF에 잠겨 있거나, 양식 (form) 뒤에 갇혀 있다면, 답변 엔진이 활용할 수 있는 정보가 거의 없을 수 있습니다.
몇 가지 실질적인 점검 사항:
- 핵심 기사 및 문서 콘텐츠를 HTML로 렌더링(Render)하세요.
- 중요한 설명을 이미지에만 담는 것을 피하세요.
- 비디오 및 웨비나(webinar)를 위한 스크립트(transcripts)를 추가하세요.
- 유료/제한된 보고서(gated reports)의 경우, 크롤링 가능한(crawlable) 요약본을 게시하세요.
- 안정적인 표준 URL(canonical URLs)을 사용하세요.
- 문서 URL을 설명적이고 예측 가능하게 유지하세요.
curl을 사용하여 간단하게 원시 HTML(raw HTML)을 확인할 수 있습니다:
curl -L https://example.com/docs/webhooks | head -n 40
만약 응답에 JavaScript 셸(shell)만 포함되어 있고 의미 있는 콘텐츠가 없다면, 크롤러가 페이지를 이해하기 위해 추가적인 렌더링(rendering) 작업이 필요할 수 있습니다. Google은 많은 경우에 JavaScript를 렌더링할 수 있지만, 모든 AI 검색 엔진(retrieval system)이 귀하의 사이트를 동일한 방식으로 처리할 것이라고 가정해서는 안 됩니다.
또한 초기 HTML에 특정 텍스트가 존재하는지 검사할 수도 있습니다:
curl -L https://example.com/docs/webhooks | grep -i "verify webhook"
이는 투박한 테스트이지만, 이러한 투박한 테스트가 놀라울 정도로 많은 문제를 잡아냅니다.
브랜드 언급은 대부분의 개발자가 예상하는 것보다 더 중요합니다
Draft.dev의 AEO 작업에서 우리가 확인하고 있는 한 가지 사실은 다음과 같습니다:
LLM 가시성(visibility)은 회사가 자체 사이트에서 무엇을 말하는가뿐만 아니라, 웹 전반에서 브랜드가 어떻게 설명되는지에 의해 영향을 받습니다.
이것이 인터넷 곳곳에 링크를 스팸처럼 뿌려야 한다는 뜻은 아닙니다. 하지만 개발자들이 읽을 것으로 예상되는 장소에서 귀하의 제품을 뒷받침할 수 있는 정확한 제3자 맥락(third-party context)이 필요하다는 것을 의미합니다.
개발자 도구의 경우, 여기에는 다음이 포함될 수 있습니다:
- Dev.to 튜토리얼
- GitHub README 및 예제
- 실질적인 내용이 담긴 Reddit 댓글
- 파트너 블로그
- 비교 게시물
- 커뮤니티 문서
만약 귀하의 제품이 "Node.js를 위한 오픈 소스 피처 플래그(open source feature flags)"와 연관되기를 원한다면, 여러 신뢰할 수 있는 페이지에서 특정 언어로 해당 연관성을 언급해 주는 것이 도움이 됩니다.
목표는 모델을 속이는 것이 아니라, 올바른 연관성을 더 쉽게 찾을 수 있도록 만드는 것입니다.
효과가 없는 것들
지금까지 우리가 관찰한 바에 따르면, 다음과 같은 패턴은 AEO에 취약합니다:
일반적인 "X란 무엇인가?" 식의 기사
상위 수준의 정의(High-level definitions)는 AI 도구가 직접 답변하기 쉽습니다. 이러한 내용은 콘텐츠 라이브러리 내에서 여전히 자리를 잡을 수는 있겠지만, 개발자의 의미 있는 참여(engagement)를 이끌어낼 가능성은 낮습니다.
기술적 판단이 결여된 AI 작성 채우기용 콘텐츠 (AI-written filler)
AI는 개요 작성, 요약, 편집을 도울 수 있습니다. 하지만 실무 경험을 대체하라는 요구를 받을 때는 훨씬 취약해집니다.
이는 특히 개발자 콘텐츠에서 두드러지는데, 아주 작은 기술적 실수만으로도 기사 전체의 신뢰도를 떨어뜨릴 수 있기 때문입니다.
크롤링 가능한 버전이 없는 게이트형 리포트 (Gated reports)
게이트형 자산(Gated assets)은 여전히 리드 생성(lead generation) 목적으로 효과적일 수 있지만, 모든 유용한 정보가 양식(form) 뒤에 숨겨져 있다면 답변 엔진(answer engines)이 이를 쉽게 인용할 수 없습니다.
더 나은 패턴은 크롤링 가능한 요약본이나 게이트가 없는 동반 기사(companion article)를 게시하는 것입니다.
폐기된 API를 사용하는 오래된 튜토리얼
만약 귀하의 문서가 구식 구현 방식을 가르친다면, AI 도구들이 이를 반복할 수 있습니다. 이는 개발자에게 나쁜 경험을 제공하며, 귀하의 브랜드에 대한 부정적인 연상을 만듭니다.
예시가 없는 빈약한 랜딩 페이지
코드, 아키텍처 다이어그램(architecture diagrams)
| 쿼리 (Query) | ChatGPT | Perplexity | Google AI Overview | 우리 페이지 인용 여부 | 경쟁사 인용 여부 |
|---|---|---|---|---|---|
| best webhook tool for node.js | 미정 (TBD) | 미정 (TBD) | 미정 (TBD) | 아니요 | A, B, C |
| ... | |||||
| 핵심은 반복 가능한 피드백 루프 (feedback loop)를 구축하는 것입니다. 답변 엔진 (answer engines)에 노출될 확률을 높이기 위해서는, 현재 답변 엔진들이 무엇이라고 말하고 있는지 먼저 파악해야 합니다. |
사용할 가치가 있는 도구들
AEO 관련 툴링 (tooling)은 아직 초기 단계이지만, 현재 유용하게 사용할 수 있는 몇 가지 도구들이 있습니다.
- Google Search Console: 검색 성능, Discover 데이터, 인덱싱 (indexing) 확인에 유용합니다.
- Scrunch: Draft.dev에서는 AI 검색 인터페이스 전반에 걸친 LLM 가시성 (visibility) 추적을 위해 이 도구를 사용합니다.
- Ahrefs: 키워드 조사 (keyword research), 경쟁사 조사, 백링크 (backlinks) 분석에 여전히 유용합니다.
- Screaming Frog: 기술적 콘텐츠를 크롤링 (crawling)하고 메타데이터 (metadata), 캐노니컬 (canonical), 렌더링 (rendering) 문제를 찾는 데 유용합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기