Skip to content

Commit cf67190

Browse files
committed
fix: 비문·피동형 정리, 레이블 구분자 emdash → 콜론
1 parent f482006 commit cf67190

2 files changed

Lines changed: 57 additions & 49 deletions

File tree

src/pages/AboutPage.tsx

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,31 @@ export function AboutPage(): React.ReactNode {
2424

2525
<Section eyebrow="Why" title="왜 용어집을 데이터로?">
2626
<P>
27-
AI/ML 분야는 새로운 용어가 매주 쏟아지고, 같은 용어가 사람마다 다르게 번역됩니다.
28-
<Em>"attention"</Em> <Em>어텐션 / 주의 / 주의 메커니즘 / 집중 메커니즘</Em>으로,
29-
<Em>"embedding"</Em><Em>임베딩 / 매장 / 매장값</Em>으로 흩어집니다. 이 분기(分岐)는 문서를 읽는 사람과
30-
번역하는 LLM 모두에게 비용입니다.
27+
AI/ML 분야는 새로운 용어가 매일같이 쏟아지고, 사람마다 같은 용어를 다르게 번역합니다.
28+
누군가는 <Em>"attention"</Em> <Em>어텐션</Em>으로 적고, 다른 누군가는 <Em>주의</Em>·<Em>주의 메커니즘</Em>·
29+
<Em>집중 메커니즘</Em>으로 적습니다. <Em>"embedding"</Em>도 마찬가지로 <Em>임베딩</Em>·<Em>매장</Em>·<Em>매장값</Em>으로
30+
갈립니다. 이런 분기(分岐)는 문서를 읽는 사람과 번역하는 LLM 모두에게 부담을 줍니다.
3131
</P>
3232
<P>
3333
본 프로젝트는 각 용어를 <Em>JSON 한 줄</Em>로 표준화하고, 채택 근거와 다의어를 함께 기록합니다.
34-
데이터는 <code>data/&#123;letter&#125;.json</code>에, 합의 과정은 <code>Co-authored-by</code>가 박힌
35-
Git 커밋과 종결된 GitHub Issue로 보존됩니다.
34+
데이터는 <code>data/&#123;letter&#125;.json</code> 모으고, 합의 과정은{' '}
35+
<code>Co-authored-by</code>를 담은 Git 커밋과 닫힌 GitHub Issue에 그대로 남깁니다.
3636
</P>
3737
<UL
3838
items={[
39-
<><code>git log</code>용어가 <Em>언제 누구의 손으로</Em> 추가·수정됐는지 확인</>,
40-
<><code>git diff</code><Em>정확히 어떤 번역이 바뀌었는지</Em> 한눈에 비교</>,
39+
<><code>git log</code>누가 <Em>언제 용어를 추가하거나 고쳤는지</Em> 확인</>,
40+
<><code>git diff</code><Em>어떤 번역이 어떻게 달라졌는지</Em> 한눈에 비교</>,
4141
<><code>jq</code>·<code>grep</code>으로 전체 용어 체계에서 <Em>키워드와 분야</Em>를 검색</>,
42-
<>누구나 <Em>포크(fork), 복제(clone), 분석</Em> 가능한 오픈 데이터 (MIT)</>,
42+
<>누구나 <Em>포크(fork)·복제(clone)·분석</Em>할 수 있는 오픈 데이터 (MIT)</>,
4343
]}
4444
/>
4545
</Section>
4646

4747
<Section eyebrow="How" title="다의어와 맥락별 번역까지">
4848
<P>
49-
한 영어 단어가 분야에 따라 다른 한국어 번역을 가지는 경우(예: <code>head</code>
50-
"헤드" vs. "헤드(다중 헤드 어텐션)" vs. "출력 헤드")가 흔합니다. 데이터 모델은 다의어를 일급 시민으로
51-
취급하도록 설계되었습니다.
49+
한 영어 단어가 분야에 따라 다른 한국어 번역을 갖는 경우는 흔합니다. 예를 들어
50+
<code>head</code>는 맥락에 따라 "헤드", "어텐션 헤드", "출력층"으로 갈립니다. 그래서 데이터 모델도
51+
다의어를 기본으로 고려하도록 설계했습니다.
5252
</P>
5353
<Pre>{`{
5454
"term": "head",
@@ -70,43 +70,43 @@ export function AboutPage(): React.ReactNode {
7070
"notes": "분야에 따라 의미가 달라지는 대표 다의어"
7171
}`}</Pre>
7272
<P>
73-
각 의미는 검색 결과·상세 페이지에서 별도 카드로 분리되어 표시됩니다. <code>notes</code>에는
74-
왜 그 번역을 채택했는지를 기록해, 후속 기여자가 같은 논의를 반복하지 않도록 합니다.
73+
검색 결과와 상세 페이지는 각 의미를 별도 카드로 나누어 보여줍니다. <code>notes</code>에는
74+
왜 그 번역을 골랐는지 적어 두어, 후속 기여자가 같은 논의를 다시 하지 않도록 돕습니다.
7575
</P>
7676
</Section>
7777

7878
<Section eyebrow="Data" title="데이터 출처와 형식">
7979
<P>
80-
데이터는 <Link href={`${REPO_URL}/tree/poc/data`} target="_blank" rel="noopener noreferrer">
81-
<code>data/</code> 디렉토리</Link>알파벳별 JSON 파일로 관리되며, 빌드 시점에 정적 사이트와
82-
함께 <code>poc.terms.kr/data/</code> 경로로 배포됩니다.
80+
모든 용어는 <Link href={`${REPO_URL}/tree/poc/data`} target="_blank" rel="noopener noreferrer">
81+
<code>data/</code> 디렉토리</Link> 아래 알파벳별 JSON 파일에 들어 있습니다. 빌드 과정이 이
82+
파일들을 정적 사이트와 함께 <code>poc.terms.kr/data/</code> 경로에 올립니다.
8383
</P>
8484
<UL
8585
items={[
8686
<>
8787
<Link href="https://poc.terms.kr/data/index.json" target="_blank" rel="noopener noreferrer">
8888
<code>/data/index.json</code>
89-
</Link>{' '}
90-
— 수록된 알파벳 파일 목록
89+
</Link>
90+
: 수록한 알파벳 파일 목록
9191
</>,
9292
<>
9393
<Link href="https://poc.terms.kr/data/a.json" target="_blank" rel="noopener noreferrer">
9494
<code>/data/&#123;a-z&#125;.json</code>
95-
</Link>{' '}
96-
알파벳별 용어 배열 (병렬 fetch)
95+
</Link>
96+
: 알파벳별 용어 배열 (병렬 fetch)
9797
</>,
9898
<>
9999
<Link href="https://poc.terms.kr/llms.txt" target="_blank" rel="noopener noreferrer">
100100
<code>/llms.txt</code>
101-
</Link>{' '}
102-
<Link href="https://llmstxt.org/" target="_blank" rel="noopener noreferrer">llmstxt.org</Link> 표준 LLM 안내 파일
101+
</Link>
102+
: <Link href="https://llmstxt.org/" target="_blank" rel="noopener noreferrer">llmstxt.org</Link> 표준 LLM 안내 파일
103103
</>,
104104
]}
105105
/>
106106
<P>
107-
현재 수록된 용어 데이터는 AI가 생성한 초안이며, 커뮤니티 검토와 승인을 거쳐 점진적으로
108-
교정됩니다. 이슈에 <code>/approve</code> 댓글이 달리면 자동화 워크플로우가{' '}
109-
<code>Co-authored-by</code>와 함께 커밋합니다.
107+
현재 수록한 용어는 AI가 만든 초안이며, 커뮤니티가 검토하고 승인하면서 점차 다듬어 갑니다.
108+
관리자가 이슈에 <code>/approve</code> 댓글을 남기면 자동화 워크플로우가{' '}
109+
<code>Co-authored-by</code>를 담아 커밋합니다.
110110
</P>
111111
</Section>
112112

@@ -123,9 +123,9 @@ export function AboutPage(): React.ReactNode {
123123

124124
<Section eyebrow="Org" title="운영 및 기여 조직">
125125
<P>
126-
본 저장소는 <Em>파이토치 한국 사용자 모임(PyTorchKR)</Em>의 GitHub Organization 산하에서
127-
운영됩니다. 관리자 목록과 활동 이력은 GitHub Organization 페이지에서 최신 상태로 확인하실 수
128-
있습니다 — 본 페이지에 별도로 명단을 박제하지 않습니다.
126+
<Em>파이토치 한국 사용자 모임(PyTorchKR)</Em>이 본 저장소를 운영합니다. 관리자 명단과 활동 이력은
127+
GitHub Organization 페이지에서 직접 확인하실 수 있습니다 — 본 페이지에 따로 명단을 박제하지
128+
않습니다.
129129
</P>
130130

131131
<Box

src/pages/GuidePage.tsx

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ function UserGuide(): React.ReactNode {
5656
<Section eyebrow="Browse" title="브라우저에서 검색하기">
5757
<Steps
5858
items={[
59-
{ k: '검색', v: '메인 페이지 검색창에 영어 또는 한국어를 입력하면 200ms 디바운스로 실시간 필터링됩니다.' },
60-
{ k: '알파벳', v: '히어로 아래 A–Z 네비게이션에서 알파벳을 선택하면 해당 알파벳으로 시작하는 용어만 표시됩니다.' },
61-
{ k: '상세 보기', v: '용어 카드를 클릭하면 모든 의미, 정의, 예시(EN/KO), 유사 용어, 논의 이력을 확인할 수 있습니다.' },
62-
{ k: '다의어', v: '여러 의미가 있는 용어는 카드에 보라색 “다중 의미” 배지가 표시되고, 상세 페이지에서 아코디언으로 분리됩니다.' },
59+
{ k: '검색', v: '메인 페이지 검색창에 영어나 한국어를 입력하면 200ms 디바운스로 결과를 실시간으로 좁혀줍니다.' },
60+
{ k: '알파벳', v: '히어로 아래 A–Z 네비게이션에서 알파벳을 누르면 해당 알파벳으로 시작하는 용어만 보여줍니다.' },
61+
{ k: '상세 보기', v: '용어 카드를 누르면 모든 의미와 정의, 예시(EN/KO), 유사 용어, 논의 이력까지 확인할 수 있습니다.' },
62+
{ k: '다의어', v: '여러 의미를 가진 용어는 카드에 보라색 “다중 의미” 배지를 달고, 상세 페이지에서는 의미별로 아코디언을 펼쳐서 보여줍니다.' },
6363
]}
6464
/>
6565
</Section>
@@ -97,8 +97,8 @@ $ curl -s https://poc.terms.kr/data/a.json | jq '.[] | select(.term == "attentio
9797
<Link href="https://poc.terms.kr/llms.txt" target="_blank" rel="noopener noreferrer">
9898
<code>llms.txt</code>
9999
</Link>
100-
는 LLM이 본 용어집의 구조와 데이터 위치를 자동으로 이해할 수 있도록 작성된 파일입니다. 번역
101-
파이프라인이나 시스템 프롬프트에 본 URL을 컨텍스트로 제공하면, 모델이 검색·인용할 수 있습니다.
100+
는 LLM이 본 용어집의 구조와 데이터 위치를 자동으로 파악하도록 만든 파일입니다. 번역
101+
파이프라인이나 시스템 프롬프트에 본 URL을 컨텍스트로 넣어 두면 모델이 직접 검색하고 인용할 수 있습니다.
102102
</P>
103103
<Pre>{`# 시스템 프롬프트 예시
104104
한국어로 번역할 때는 다음 표준을 따르시오:
@@ -141,17 +141,17 @@ function ContributorGuide(): React.ReactNode {
141141
<>
142142
<Section eyebrow="Issue" title="이슈로 기여 (권장)">
143143
<P>
144-
코드 작업 없이 GitHub Issue만 작성해도 기여할 수 있습니다. 승인되면 자동화가{' '}
145-
<code>Co-authored-by</code> 기여자를 박아 커밋합니다.
144+
코드 작업 없이 GitHub Issue만 작성해도 기여할 수 있습니다. 관리자가 승인하면 자동화가{' '}
145+
<code>Co-authored-by</code> 기여자를 담아 커밋합니다.
146146
</P>
147147

148148
<SubHead>새 용어 요청</SubHead>
149149
<Steps
150150
items={[
151-
{ k: '요청', v: '“새 용어 요청” 버튼을 누르고 영문 용어, 한글 번역, 정의를 입력합니다.' },
151+
{ k: '요청', v: '“새 용어 요청” 버튼을 눌러 영문 용어, 한글 번역, 정의를 입력합니다.' },
152152
{ k: '검토', v: '관리자가 표기·중복·맥락을 검토합니다.' },
153-
{ k: '승인', v: '관리자가 /approve 댓글을 남기면 자동화 워크플로우가 동작합니다.' },
154-
{ k: '반영', v: '데이터 파일에 추가되고 이슈가 닫히며, 기여자가 커밋에 기록됩니다.' },
153+
{ k: '승인', v: '관리자가 /approve 댓글을 남기면 자동화 워크플로우를 트리거합니다.' },
154+
{ k: '반영', v: '자동화가 데이터 파일에 새 용어를 더하고 이슈를 닫으며, 기여자를 커밋에 함께 기록합니다.' },
155155
]}
156156
/>
157157
<Box sx={{ mt: 2, display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>
@@ -168,7 +168,7 @@ function ContributorGuide(): React.ReactNode {
168168
items={[
169169
{ k: '제안', v: '용어 상세 페이지의 “번역 개선 제안” 버튼으로 피드백 이슈를 엽니다.' },
170170
{ k: '초안', v: '관리자가 /approve를 남기면 봇이 JSON 초안 코멘트를 작성합니다.' },
171-
{ k: '확정', v: '관리자가 commit-ready 라벨을 부착하면 봇의 최신 JSON이 그대로 데이터에 반영됩니다.' },
171+
{ k: '확정', v: '관리자가 commit-ready 라벨을 붙이면 자동화가 봇의 최신 JSON을 그대로 데이터에 반영합니다.' },
172172
]}
173173
/>
174174
</Section>
@@ -187,7 +187,7 @@ function ContributorGuide(): React.ReactNode {
187187

188188
<Section eyebrow="Schema" title="데이터 구조">
189189
<P>
190-
용어 데이터는 알파벳별 JSON 배열로 관리되며, 다의어를 위해 <code>meanings</code> 배열을 사용합니다.
190+
용어 데이터는 알파벳별 JSON 배열에 담고, 다의어는 <code>meanings</code> 배열로 표현합니다.
191191
</P>
192192
<Pre>{`{
193193
"term": "agent",
@@ -215,6 +215,14 @@ function ContributorGuide(): React.ReactNode {
215215
]}
216216
/>
217217
</Section>
218+
219+
<Section eyebrow="Validate" title="제출 전 점검">
220+
<P>
221+
PR을 보내기 전에 로컬에서 다음 명령으로 JSON 유효성과 타입을 함께 확인해 주세요.
222+
</P>
223+
<Pre>{`$ npm run build # TypeScript + JSON 유효성 검증
224+
$ npm run lint # ESLint`}</Pre>
225+
</Section>
218226
</>
219227
)
220228
}
@@ -255,20 +263,20 @@ function AdminGuide(): React.ReactNode {
255263
<Section eyebrow="Quality" title="용어 품질 기준">
256264
<UL
257265
items={[
258-
<><Em>필수 필드</Em><code>korean</code>, <code>definition</code> 모두 채워져 있어야 합니다.</>,
259-
<><Em>중복 확인</Em>같은 한글 번역이 이미 있는지 확인합니다. 자동화 스크립트가 충돌 시 경고합니다.</>,
260-
<><Em>예시 형식</Em> <code>&#123;"en", "ko", "source"&#125;</code> 객체 형식을 권장합니다.</>,
261-
<><Em>API 명</Em><code>torch.compile</code>처럼 영문 API 명은 번역하지 않고 그대로 둡니다.</>,
266+
<><Em>필수 필드</Em>: <code>korean</code> <code>definition</code> 모두 채웁니다.</>,
267+
<><Em>중복 확인</Em>: 같은 한글 번역이 이미 있는지 살핍니다. 자동화 스크립트가 충돌을 발견하면 경고를 띄웁니다.</>,
268+
<><Em>예시 형식</Em>: <code>&#123;"en", "ko", "source"&#125;</code> 객체 형식을 권장합니다.</>,
269+
<><Em>API 명</Em>: <code>torch.compile</code>처럼 영문 API 이름은 번역하지 않고 그대로 둡니다.</>,
262270
]}
263271
/>
264272
</Section>
265273

266274
<Section eyebrow="Ops" title="롤백 및 문제 해결">
267275
<UL
268276
items={[
269-
<><Em>잘못된 커밋</Em><code>git revert &lt;sha&gt;</code>로 되돌립니다. 커밋 메시지에 이슈 번호가 박혀 있어 추적이 쉽습니다.</>,
270-
<><Em>워크플로우 실패</Em> GitHub Actions 탭에서 실패 로그를 확인합니다. 필수 필드 누락이나 JSON 파싱 오류가 주된 원인입니다.</>,
271-
<><Em>동시 승인</Em>여러 이슈가 동시에 승인되어도 concurrency group으로 순차 처리되므로 충돌하지 않습니다.</>,
277+
<><Em>잘못된 커밋</Em>: <code>git revert &lt;sha&gt;</code>로 되돌립니다. 커밋 메시지에 이슈 번호가 들어 있어 추적이 쉽습니다.</>,
278+
<><Em>워크플로우 실패</Em>: GitHub Actions 탭에서 실패 로그를 확인합니다. 필수 필드 누락이나 JSON 파싱 오류가 주된 원인입니다.</>,
279+
<><Em>동시 승인</Em>: 여러 이슈를 동시에 승인해도 concurrency group이 순차로 처리하므로 충돌하지 않습니다.</>,
272280
]}
273281
/>
274282
</Section>

0 commit comments

Comments
 (0)