Skip to content

Commit cb34b62

Browse files
committed
feat: 프로젝트 브랜딩 통일 및 예시 구조 개선
- 프로젝트명을 'AI/ML 용어집'으로 통일 (타이틀, 히어로, 앱바, OG 태그) - 'PyTorch Korea 커뮤니티'를 '파이토치 한국 사용자 모임(PyTorchKR)'으로 변경 - TermExample 타입 도입: 영어 원문(en) + 한국어 번역(ko) + 출처(source) 지원 - data/a.json 전체 7개 용어의 예시를 TermExample 형식으로 변환 - TermDetailPage에서 새 예시 형식 렌더링 (영문/한국어/출처 링크) - 기존 string 형식 예시 하위호환 유지 - CONTRIBUTING.md에 새 예시 형식 가이드 추가
1 parent 6fa9eed commit cb34b62

File tree

9 files changed

+145
-36
lines changed

9 files changed

+145
-36
lines changed

CONTRIBUTING.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ terms.kr는 인공지능과 머신러닝 분야의 영문 용어에 대한 한
1919
"korean": "한국어 번역",
2020
"domain": "도메인명",
2121
"definition": "용어의 정의",
22-
"examples": ["사용 예시 1", "사용 예시 2"],
22+
"examples": [
23+
{
24+
"en": "English example sentence.",
25+
"ko": "영어 예시의 한국어 번역.",
26+
"source": "https://출처-URL (선택)"
27+
},
28+
"기존 형식의 한국어 예시도 허용됩니다."
29+
],
2330
"synonyms": ["동의어1", "동의어2"]
2431
}
2532
]
@@ -35,7 +42,9 @@ terms.kr는 인공지능과 머신러닝 분야의 영문 용어에 대한 한
3542
- `definition`: 용어의 정의
3643

3744
### 선택 필드
38-
- `examples`: 사용 예시 배열
45+
- `examples`: 사용 예시 배열 (아래 두 형식 모두 지원)
46+
- 객체 형식 (권장): `{ "en": "영어 원문", "ko": "한국어 번역", "source": "출처 URL(선택)" }`
47+
- 문자열 형식: `"한국어 예시 문장"` (하위호환)
3948
- `synonyms`: 동의어 배열
4049

4150
## 도메인 명명 규칙

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# terms.kr
1+
# AI/ML 용어집 (terms.kr)
22

3-
AI/ML 용어의 한국어 번역을 표준화하는 오픈소스 사전입니다.
3+
AI/ML 용어의 한국어 번역을 표준화하는 오픈소스 용어집입니다. 파이토치 한국 사용자 모임(PyTorchKR)에서 운영합니다.
44

55
🌐 **사이트**: [https://terms.kr](https://terms.kr)
66

data/a.json

Lines changed: 77 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,17 @@
66
"korean": "어텐션",
77
"domain": "딥러닝",
88
"definition": "입력 시퀀스의 각 요소에 서로 다른 가중치를 부여하여 중요한 정보에 집중하는 메커니즘",
9-
"examples": ["트랜스포머 모델은 셀프 어텐션 메커니즘을 사용한다.", "어텐션 메커니즘은 기계 번역 성능을 크게 향상시켰다."],
9+
"examples": [
10+
{
11+
"en": "The Transformer model uses a self-attention mechanism.",
12+
"ko": "트랜스포머 모델은 셀프 어텐션 메커니즘을 사용한다.",
13+
"source": "https://arxiv.org/abs/1706.03762"
14+
},
15+
{
16+
"en": "Attention mechanisms have significantly improved machine translation performance.",
17+
"ko": "어텐션 메커니즘은 기계 번역 성능을 크게 향상시켰다."
18+
}
19+
],
1020
"synonyms": ["주의 메커니즘", "집중 메커니즘"]
1121
}
1222
]
@@ -18,14 +28,33 @@
1828
"korean": "에이전트",
1929
"domain": "강화학습",
2030
"definition": "환경과 상호작용하며 보상을 최대화하기 위해 행동을 선택하는 학습 주체",
21-
"examples": ["강화학습에서 에이전트는 환경으로부터 받은 보상을 통해 정책을 학습한다.", "AlphaGo는 바둑을 두는 에이전트의 대표적인 예시다."],
31+
"examples": [
32+
{
33+
"en": "In reinforcement learning, the agent learns a policy through rewards received from the environment.",
34+
"ko": "강화학습에서 에이전트는 환경으로부터 받은 보상을 통해 정책을 학습한다."
35+
},
36+
{
37+
"en": "AlphaGo is a representative example of an agent that plays the game of Go.",
38+
"ko": "AlphaGo는 바둑을 두는 에이전트의 대표적인 예시다.",
39+
"source": "https://www.nature.com/articles/nature16961"
40+
}
41+
],
2242
"synonyms": ["학습 주체", "행위자"]
2343
},
2444
{
2545
"korean": "대리인",
2646
"domain": "인공지능",
2747
"definition": "사용자를 대신하여 특정 작업을 수행하는 자율적인 소프트웨어 시스템",
28-
"examples": ["대화형 AI 대리인은 사용자의 질문에 자동으로 응답한다.", "자율 대리인은 복잡한 업무를 독립적으로 처리할 수 있다."],
48+
"examples": [
49+
{
50+
"en": "A conversational AI agent automatically responds to user queries.",
51+
"ko": "대화형 AI 대리인은 사용자의 질문에 자동으로 응답한다."
52+
},
53+
{
54+
"en": "Autonomous agents can handle complex tasks independently.",
55+
"ko": "자율 대리인은 복잡한 업무를 독립적으로 처리할 수 있다."
56+
}
57+
],
2958
"synonyms": ["자율 에이전트", "지능형 대리인"]
3059
}
3160
]
@@ -37,7 +66,16 @@
3766
"korean": "활성화 함수",
3867
"domain": "신경망",
3968
"definition": "신경망의 뉴런에서 입력 신호를 출력 신호로 변환하는 비선형 함수",
40-
"examples": ["ReLU는 가장 널리 사용되는 활성화 함수 중 하나다.", "활성화 함수는 신경망에 비선형성을 부여한다."],
69+
"examples": [
70+
{
71+
"en": "ReLU is one of the most widely used activation functions.",
72+
"ko": "ReLU는 가장 널리 사용되는 활성화 함수 중 하나다."
73+
},
74+
{
75+
"en": "Activation functions introduce nonlinearity into neural networks.",
76+
"ko": "활성화 함수는 신경망에 비선형성을 부여한다."
77+
}
78+
],
4179
"synonyms": ["활성 함수", "비선형 함수"]
4280
}
4381
]
@@ -49,7 +87,17 @@
4987
"korean": "적대적 예제",
5088
"domain": "컴퓨터비전",
5189
"definition": "모델을 속이기 위해 의도적으로 조작된 입력 데이터로, 사람의 눈에는 차이가 없지만 모델이 잘못된 예측을 하도록 만듭니다.",
52-
"examples": ["FGSM 공격은 adversarial example을 생성하는 대표적인 방법이다.", "적대적 예제를 활용한 훈련으로 모델의 강건성을 높일 수 있다."],
90+
"examples": [
91+
{
92+
"en": "The FGSM attack is a representative method for generating adversarial examples.",
93+
"ko": "FGSM 공격은 adversarial example을 생성하는 대표적인 방법이다.",
94+
"source": "https://arxiv.org/abs/1412.6572"
95+
},
96+
{
97+
"en": "Training with adversarial examples can improve model robustness.",
98+
"ko": "적대적 예제를 활용한 훈련으로 모델의 강건성을 높일 수 있다."
99+
}
100+
],
53101
"synonyms": ["적대적 사례", "공격 샘플"]
54102
}
55103
]
@@ -61,7 +109,13 @@
61109
"korean": "앵커 박스",
62110
"domain": "컴퓨터비전",
63111
"definition": "객체 검출에서 다양한 크기와 비율의 사전 정의된 경계 상자로, 모델이 객체 위치를 예측하는 기준점으로 사용됩니다.",
64-
"examples": ["Faster R-CNN은 여러 크기의 anchor box를 사용하여 객체를 검출한다."],
112+
"examples": [
113+
{
114+
"en": "Faster R-CNN uses multiple anchor boxes of different sizes to detect objects.",
115+
"ko": "Faster R-CNN은 여러 크기의 anchor box를 사용하여 객체를 검출한다.",
116+
"source": "https://arxiv.org/abs/1506.01497"
117+
}
118+
],
65119
"synonyms": ["기본 상자", "기준 박스"]
66120
}
67121
]
@@ -73,7 +127,12 @@
73127
"korean": "올리듀스",
74128
"domain": "분산학습",
75129
"definition": "분산 학습에서 모든 노드의 그래디언트를 집계하여 동기화하는 통신 연산입니다.",
76-
"examples": ["Ring all-reduce 알고리즘은 대규모 분산 학습에서 효율적인 그래디언트 동기화를 제공한다."],
130+
"examples": [
131+
{
132+
"en": "The ring all-reduce algorithm provides efficient gradient synchronization in large-scale distributed training.",
133+
"ko": "Ring all-reduce 알고리즘은 대규모 분산 학습에서 효율적인 그래디언트 동기화를 제공한다."
134+
}
135+
],
77136
"synonyms": ["전체 집계"]
78137
}
79138
]
@@ -85,7 +144,17 @@
85144
"korean": "자동 미분",
86145
"domain": "자동미분",
87146
"definition": "텐서 연산의 그래디언트를 자동으로 계산하는 엔진으로, 역전파 알고리즘의 핵심 구성 요소입니다.",
88-
"examples": ["PyTorch의 autograd는 동적 계산 그래프를 사용하여 그래디언트를 계산한다.", "autograd를 비활성화하면 추론 시 메모리를 절약할 수 있다."],
147+
"examples": [
148+
{
149+
"en": "PyTorch's autograd uses dynamic computation graphs to compute gradients.",
150+
"ko": "PyTorch의 autograd는 동적 계산 그래프를 사용하여 그래디언트를 계산한다.",
151+
"source": "https://pytorch.org/docs/stable/autograd.html"
152+
},
153+
{
154+
"en": "Disabling autograd can save memory during inference.",
155+
"ko": "autograd를 비활성화하면 추론 시 메모리를 절약할 수 있다."
156+
}
157+
],
89158
"synonyms": ["자동 미분 엔진", "자동 그래디언트"]
90159
}
91160
]

index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<meta name="description" content="AI/ML 용어의 한국어 번역을 표준화하는 오픈소스 사전입니다. 딥러닝, 머신러닝, 자연어처리, 컴퓨터비전 등 인공지능 분야의 용어를 다룹니다." />
88
<meta name="keywords" content="AI, ML, 인공지능, 머신러닝, 딥러닝, 용어, 사전, 번역, 표준화, terms.kr" />
9-
<meta property="og:title" content="terms.kr - AI/ML 용어 표준화 사전" />
10-
<meta property="og:description" content="AI/ML 용어의 한국어 번역을 표준화하는 오픈소스 사전" />
9+
<meta property="og:title" content="AI/ML 용어집 - terms.kr" />
10+
<meta property="og:description" content="AI/ML 용어의 한국어 번역을 표준화하는 오픈소스 용어집" />
1111
<meta property="og:type" content="website" />
1212
<meta property="og:url" content="https://terms.kr/" />
13-
<title>terms.kr - AI/ML 용어 표준화 사전</title>
13+
<title>AI/ML 용어집 - terms.kr</title>
1414
</head>
1515
<body>
1616
<div id="root"></div>

src/components/HeroSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export function HeroSection({ totalTerms, totalMeanings }: HeroSectionProps) {
2626
gutterBottom
2727
sx={{ fontWeight: 700 }}
2828
>
29-
terms.kr
29+
AI/ML 용어집
3030
</Typography>
3131
<Typography variant="h6" align="center" sx={{ mb: 3, opacity: 0.95 }}>
3232
인공지능과 머신러닝 용어의 한국어 번역을 표준화합니다

src/components/Layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function Layout({ children }: LayoutProps): React.ReactNode {
2323
sx={{ flexGrow: 1, cursor: 'pointer', fontWeight: 600 }}
2424
onClick={() => navigate('/')}
2525
>
26-
terms.kr
26+
AI/ML 용어집
2727
</Typography>
2828
<Button color="inherit" onClick={() => navigate('/about')} sx={{ mr: 1 }}>
2929
소개
@@ -61,7 +61,7 @@ export function Layout({ children }: LayoutProps): React.ReactNode {
6161
>
6262
<Container maxWidth="lg">
6363
<Typography variant="body2" sx={{ color: '#CCCDD1' }} align="center" gutterBottom>
64-
terms.kr - PyTorch Korea 오픈소스 프로젝트
64+
terms.kr - PyTorchKR 오픈소스 프로젝트
6565
</Typography>
6666
<Typography variant="caption" sx={{ color: '#6c6c6d' }} align="center" display="block">
6767
<Link

src/pages/AboutPage.tsx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function AboutPage(): React.ReactNode {
1313
프로젝트 소개
1414
</Typography>
1515
<Typography variant="h6" color="text.secondary" sx={{ mt: 2 }}>
16-
terms.kr은 PyTorch Korea 커뮤니티에서 운영하는 AI/ML 용어의 한국어 번역 표준화 오픈소스 프로젝트입니다
16+
terms.kr은 파이토치 한국 사용자 모임(PyTorchKR)에서 운영하는 AI/ML 용어의 한국어 번역 표준화 오픈소스 프로젝트입니다
1717
</Typography>
1818
</Box>
1919

@@ -130,22 +130,21 @@ export function AboutPage(): React.ReactNode {
130130
"korean": "에이전트",
131131
"domain": "강화학습",
132132
"definition": "환경과 상호작용하며 학습하는 주체",
133-
"examples": ["에이전트는 보상을 최대화하도록 학습한다."],
133+
"examples": [
134+
{
135+
"en": "The agent learns to maximize the reward.",
136+
"ko": "에이전트는 보상을 최대화하도록 학습한다.",
137+
"source": "https://..."
138+
}
139+
],
134140
"synonyms": ["행위자"]
135-
},
136-
{
137-
"korean": "대리인",
138-
"domain": "인공지능",
139-
"definition": "사용자를 대신하여 작업을 수행하는 시스템",
140-
"examples": ["AI 에이전트가 일정을 관리한다."],
141-
"synonyms": ["AI 비서"]
142141
}
143142
]
144143
}`}
145144
</Box>
146145
<Typography variant="body2" color="text.secondary" sx={{ mt: 2 }}>
147146
<strong>주요 필드:</strong> term (영어 원문), meanings (의미 배열), korean (한국어 번역),
148-
domain (분야), definition (설명), examples (예시), synonyms (유의어)
147+
domain (분야), definition (설명), examples (예시 - 영어 원문/한국어 번역/출처), synonyms (유의어)
149148
</Typography>
150149
</Paper>
151150

@@ -176,7 +175,7 @@ export function AboutPage(): React.ReactNode {
176175
</Button>
177176
</Box>
178177
<Typography variant="caption" color="text.secondary" display="block" sx={{ mt: 2 }}>
179-
MIT 라이센스 · PyTorch Korea 커뮤니티 · 누구나 자유롭게 사용하고 기여할 수 있습니다
178+
MIT 라이센스 · 파이토치 한국 사용자 모임 · 누구나 자유롭게 사용하고 기여할 수 있습니다
180179
</Typography>
181180
</Box>
182181
</Container>

src/pages/TermDetailPage.tsx

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ import HomeIcon from '@mui/icons-material/Home'
2626
import { Layout } from '../components/Layout'
2727
import { useTerms } from '../hooks/useTerms'
2828
import { getDomainColor } from '../utils/domainColors'
29-
import type { Term } from '../types/term'
29+
import type { Term, TermExample } from '../types/term'
30+
31+
function isTermExample(example: string | TermExample): example is TermExample {
32+
return typeof example === 'object' && 'en' in example && 'ko' in example
33+
}
3034

3135
function getRelatedTerms(terms: Term[], currentTerm: Term): Term[] {
3236
const currentDomains = new Set(currentTerm.meanings.map((m) => m.domain))
@@ -174,11 +178,33 @@ export function TermDetailPage(): React.ReactNode {
174178
</Typography>
175179
<List dense>
176180
{meaning.examples.map((example, exIndex) => (
177-
<ListItem key={exIndex}>
178-
<ListItemText
179-
primary={example}
180-
primaryTypographyProps={{ variant: 'body2' }}
181-
/>
181+
<ListItem key={exIndex} sx={{ flexDirection: 'column', alignItems: 'flex-start' }}>
182+
{isTermExample(example) ? (
183+
<Box sx={{ width: '100%' }}>
184+
<Typography variant="body2" sx={{ color: 'text.secondary', fontStyle: 'italic' }}>
185+
{example.en}
186+
</Typography>
187+
<Typography variant="body2" sx={{ mt: 0.5 }}>
188+
{example.ko}
189+
</Typography>
190+
{example.source && (
191+
<Link
192+
href={example.source}
193+
target="_blank"
194+
rel="noopener noreferrer"
195+
variant="caption"
196+
sx={{ mt: 0.5, display: 'inline-block' }}
197+
>
198+
출처
199+
</Link>
200+
)}
201+
</Box>
202+
) : (
203+
<ListItemText
204+
primary={example}
205+
primaryTypographyProps={{ variant: 'body2' }}
206+
/>
207+
)}
182208
</ListItem>
183209
))}
184210
</List>

src/types/term.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
export interface TermExample {
2+
en: string
3+
ko: string
4+
source?: string
5+
}
6+
17
export interface TermMeaning {
28
korean: string
39
domain: string
410
definition: string
5-
examples: string[]
11+
examples: (string | TermExample)[]
612
synonyms: string[]
713
}
814

0 commit comments

Comments
 (0)