콘텐츠로 이동

AI 엔진: 단순한 번역이 아닙니다

왜 DevLingo는 사전 API를 직접 사용하지 않을까요? 단순한 API 조회는 정적이고 컨텍스트 없는 정보를 반환합니다. DevLingo의 AI 엔진은 사전이 할 수 없는 세 가지를 합니다.

사전은 “deploy”를 “배포”라고만 알려줍니다. 하지만 개발자는 다음을 알아야 합니다:

상황의미예문
앱 배포프로덕션에 릴리스”We deployed the new version to production.”
리소스 배치리소스 할당/활성화”Deploy additional servers to handle traffic.”
전술 (군사 용어)전개, 배치”The team is deployed across different time zones.”

DevLingo AI는 당신이 Xcode에서 코드를 읽고 있다는 것을 알기 때문에 첫 번째 의미를 강조합니다. HR 소프트웨어에서 “deploy”를 보면 세 번째 의미가 더 관련될 수 있습니다.

{ "sourceApp": "com.apple.dt.Xcode" }
→ AI가 응답 스타일 조정: 기술 중심, 코드 관련 예문 우선
{ "sourceApp": "com.tinyspeck.slackmacgap" }
→ AI가 응답 스타일 조정: 팀 커뮤니케이션, 더 구어체

:::tip 앱 인식 DevLingo는 NSWorkspace를 통해 현재 활성 앱의 Bundle Identifier를 가져와 Claude에 전달합니다. AI는 이에 따라 응답을 조정합니다. :::

사전은 텍스트 블록을 반환합니다. DevLingo AI는 구조화된 JSON을 반환합니다:

{
"word": "idempotent",
"ipa": "/ɪˈdɛmpətənt/",
"pos": "adjective",
"definition_en": "Describing an operation that, when applied multiple times, produces the same result as when applied once.",
"meaning_ko": "멱등의; 여러 번 적용해도 한 번 적용한 것과 결과가 같은",
"examples": [
{
"en": "Ensure your API endpoints are idempotent to handle retry requests safely.",
"ko": "재시도 요청을 안전하게 처리하려면 API 엔드포인트가 멱등하도록 보장하세요.",
"context": "API design"
},
{
"en": "This function's idempotent nature makes it safe to call multiple times.",
"ko": "이 함수의 멱등 특성 덕분에 여러 번 호출해도 안전합니다.",
"context": "Function design"
}
],
"synonyms": [
{
"word": "repeatable",
"difference": "더 일반적; 반복 가능한 모든 작업을 의미합니다. 'idempotent'는 더 전문적이고 정확합니다."
}
],
"collocations": [
"idempotent operation",
"idempotent function",
"idempotent API"
],
"grammar_notes": "형용사, 불가산. 기술 문서에서 관형어 또는 보어로 자주 사용됩니다.",
"l1_tips": {
"ko": "한국어에는 대응하는 일상 어휘가 없습니다. 'idempotent'는 수학/프로그래밍 용어로 '멱등'에 대응하지만, 기술 토론에서는 영어를 직접 사용하는 것이 더 일반적입니다."
},
"tech_pronunciation": {
"ipa": "/ɪˈdɛmpətənt/",
"common_mispronounce": "i-DEM-po-tent (오류; 강세는 DEM에 있어야 함)",
"correct_stress": "i-**DEM**-pu-tunt",
"etymology": "수학 용어에서 유래, 라틴어 'idem'(같은)과 'potent'(강력한)에서 파생"
}
}

각 필드는 UI에서 다른 카드 영역에 대응합니다. 텍스트 덩어리가 아니라 정성스럽게 구성된 학습 자료입니다.

{
"phrase": "rubber ducking",
"type": "compound (noun phrase)",
"register": "informal / tech culture",
"definition_en": "A debugging method where you explain your code to a rubber duck (or any object), often revealing bugs through the act of articulation.",
"meaning_ko": "고무 오리(또는 아무 물건)에게 코드를 설명하면서 디버깅하는 방법으로, 설명하는 과정에서 종종 버그를 발견하게 됩니다.",
"stress_pattern": "RUB-ber DUCK-ing",
"usage_patterns": [
{
"pattern": "[Subject] [is/uses] rubber ducking",
"example": "I've been rubber ducking this problem for 10 minutes and just found the issue.",
"ko": "10분 동안 rubber ducking을 했더니 문제를 찾았습니다."
},
{
"pattern": "[Let's] do some rubber ducking [on X]",
"example": "Let's do some rubber ducking on this algorithm.",
"ko": "이 알고리즘에 대해 rubber ducking을 해봅시다."
}
],
"alternatives": [
{
"phrase": "debugging by explanation",
"note": "더 정식적인 표현; 'rubber ducking'만큼 문화적 특색이 없음"
},
{
"phrase": "talk it out",
"note": "더 구어체; 디버깅 방법을 특정하지 않음"
}
]
}

입력이 개발 용어인 경우 AI가 추가 정보를 제공합니다:

단어: latency
표준 출력: definition, examples, pronunciation...
추가 출력 (기술 용어 전용):
• 관련 측정 단위: 밀리초(ms) / 마이크로초(μs)
• 대응 개념: throughput, bandwidth
• 실전 시나리오: "P99 latency < 100ms"가 무슨 의미인지
• 업계 기준: 일반 네트워크 지연 50ms, 나쁜 것은 500ms+

“고양이가 매트 위에 앉아 있다” 같은 예문이 아니라:

단어: concurrent
예문 (실제 개발에서):
1. "This function is not concurrent-safe; you need to add locking."
→ 코드 리뷰 시나리오
2. "We redesigned the system to handle concurrent requests efficiently."
→ 아키텍처 설계 시나리오
3. "Make sure your HTTP client supports concurrent connections."
→ 성능 최적화 시나리오

사용자의 모국어에 따라 AI가 주동적으로 일반적인 함정을 지적합니다:

사용자: 한국어 모국어
단어: article / the / a
AI 팁:
"한국어 모국어 사용자 일반적 문제: 한국어에는 관사가 없지만 영어는 definite article (the)과 indefinite article (a/an)을 구분합니다.
오류 예: 'I saw cat' → 'I saw a cat' 또는 'I saw the cat' (컨텍스트에 따라)
기억법: 영어에서 가산 명사에는 보통 관사가 필요합니다. 한국어에서 '고양이'는 그냥 고양이지만, 영어에서는 'a cat' 또는 'the cat'이라고 해야 합니다."

:::note L1 간섭 이것이 DevLingo의 고유한 특징입니다. 표준 사전은 “이 단어를 잘못 사용하는 이유가 모국어 배경 때문”이라고 알려주지 않습니다. :::

DevLingo가 Claude를 선택한 이유:

  1. 뛰어난 구조화된 출력 능력: Claude는 포맷된 JSON을 생성하는 데 뛰어나며 신뢰성이 높음
  2. 깊은 컨텍스트 이해: Claude는 앱 컨텍스트, 코드 컨텍스트, L1 간섭을 이해 가능
  3. 개발자 친화적: Claude의 기술 용어, 코드, 개발 워크플로우에 대한 이해가 범용 LLM보다 우수
  4. 제어 가능성: 프롬프트 엔지니어링을 통해 DevLingo가 출력 형식과 품질을 정밀하게 제어 가능

프롬프트 엔지니어링 (Prompt Engineering)

섹션 제목: “프롬프트 엔지니어링 (Prompt Engineering)”

DevLingo의 Claude 호출에는 정교하게 설계된 프롬프트 템플릿이 포함됩니다:

You are an English learning assistant for developers.
The user selected: "{selectedText}"
Mode: {mode}
User's native language: {userLanguage}
Current application: {sourceApp}
Surrounding context: "{context}"
Respond with JSON in the following structure:
{
"mode": "word|phrase|sentence|paragraph|express",
... [detailed schema]
}
Important:
1. Examples must be from software development context
2. Provide 2-3 examples per item
3. For native speakers of {userLanguage}, highlight common interference patterns
4. If applicable, note pronunciation and stress patterns
5. Keep definitions concise (< 20 words)

이 프롬프트가 보장하는 것:

  • 일관된 출력 형식
  • 개발 컨텍스트에서 나온 예문
  • L1 간섭 중시
  • 학습에 타겟팅된 결과
기능사전 APIDevLingo AI
기본 정의
여러 예문✓ (보통 비타겟팅)✓ (모두 기술 시나리오)
컨텍스트 인식✓ (어떤 앱을 사용하는지 앎)
L1 간섭 팁
구조화된 출력✗ (텍스트만)✓ (JSON, UI 친화적)
기술 용어 보너스✓ (어원, 업계 기준 등)
동의어 변별✗ (동의어만 나열)✓ (차이 설명)
발음과 IPA✓ (부분적)✓ (완전 + 4종 액센트)

:::note AI를 계층적으로 사용하지 않는 이유 DevLingo의 계층적 조회 시스템이 보장하는 것:

  • 자주 사용하는 어휘 (로컬 사전 적중): AI 0ms, 100% 빠름
  • 캐시 적중 (사용자가 이전에 조회): AI 0ms, 100% 빠름
  • 드문 어휘 (AI 호출): <2s에 완료, 여전히 빠름

이로써 사용자의 95% 조회에 API 호출이 필요하지 않아 비용을 낮추고 경험을 향상시킵니다. :::

DevLingo의 AI 엔진은 “번역”이 아니라 “이해와 교육”을 위한 것입니다. 당신이 무엇을 하고 있는지, 당신의 언어 배경이 무엇인지, 어떻게 가르치는 것이 가장 효과적인지를 알고 있습니다.