summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com>2019-05-05 23:39:36 -0700
committerGitHub <noreply@github.com>2019-05-05 23:39:36 -0700
commitfa149ea1197de2590560a1c8048c4cec226b9809 (patch)
tree47762d9a74583496ef4c7a3dc165674c800d0400
parentaac6d7b2a4258d6fbbb78a98c1d6ccd7e0cb978c (diff)
parent955e91a58d464b10d177ab8ce28927f41127481b (diff)
Merge pull request #3660 from ClaudiaJKang/ko-contributor-cheatsheet
Localize contributor cheatsheet in Korean
-rw-r--r--contributors/guide/contributor-cheatsheet/README-ko.md398
1 files changed, 398 insertions, 0 deletions
diff --git a/contributors/guide/contributor-cheatsheet/README-ko.md b/contributors/guide/contributor-cheatsheet/README-ko.md
new file mode 100644
index 00000000..36c7fd25
--- /dev/null
+++ b/contributors/guide/contributor-cheatsheet/README-ko.md
@@ -0,0 +1,398 @@
+# 쿠버네티스 컨트리뷰터 참고 자료(Cheat Sheet)
+
+쿠버네티스에 기여할 때 일반적인 자원, 팁, 요령과
+쿠버네티스 프로젝트 내에서 사용되는 일반적인 모범 사례의 목록이다.
+이 문서는 GitHub 컨트리뷰션 경험을 더 좋게 만들기 위한 "TL;DR" 혹은
+유용한 정보의 빠른 레퍼런스이다.
+
+**목차**
+- [도움이 되는 자원](#도움이-되는-자원)
+ - [시작하기](#시작하기)
+ - [SIG 및 기타 그룹](#SIG-및-기타-그룹)
+ - [커뮤니티](#커뮤니티)
+ - [중요한 이메일 별칭](#중요한-이메일-별칭)
+ - [작업 흐름](#작업-흐름)
+ - [테스트](#테스트)
+ - [다른 유용한 링크](#다른-유용한-링크)
+- [GitHub에서 효과적으로 의사 소통하기](#GitHub에서-효과적으로-의사-소통하기)
+ - [서로에게 훌륭한 방법](#서로에게-훌륭한-방법)
+ - [좋은/나쁜 의사 소통 예시](#좋은/나쁜-의사-소통-예시)
+- [컨트리뷰션 전송](#컨트리뷰션-전송)
+ - [CLA 서명](#CLA-서명)
+ - [이슈의 오픈 및 응답](#이슈의-오픈-및-응답)
+ - [이슈 생성](#이슈-생성)
+ - [이슈 응답](#이슈-응답)
+ - [풀 리퀘스트 오픈](#풀-리퀘스트-오픈)
+ - [풀 리퀘스트 생성](#풀-리퀘스트-생성)
+ - [PR 설명 예시](#PR-설명-예시)
+ - [풀 리퀘스트 문제 해결](#풀-리퀘스트-문제-해결)
+ - [레이블](#레이블)
+- [로컬에서 작업](#로컬에서-작업)
+ - [브랜치 전략](#브랜치-전략)
+ - [Upstream 추가](#Upstream-추가)
+ - [Fork를 동기화 상태로 유지하기](#Fork를-동기화-상태로-유지하기)
+ - [스쿼시 커밋](#스쿼시-커밋)
+
+---
+
+## 도움이 되는 자원
+
+### 시작하기
+
+- [컨트리뷰터 가이드] - 어떻게 쿠버네티스 프로젝트에 기여할 수 있는지에 대한
+ 가이드
+- [개발자 가이드] - 쿠버네티스 프로젝트에 직접적으로 코드를 기여하기 위한 방법을 제공하는
+ 가이드
+- [보안과 정보 공개] - 취약점 리포트와 보안 릴리스 프로세스에 대한
+ 가이드
+
+### SIG 및 기타 그룹
+
+- [마스터 그룹 목록][sigs]
+
+### 커뮤니티
+
+- [달력] - 쿠버네티스 커뮤니티 이벤트 모두 확인 (SIG/WG 미팅,
+ 이벤트 등.)
+- [kubernetes-dev] - 쿠버네티스 개발 메일링 목록
+- [쿠버네티스 포럼] - 쿠버네티스 공식 포럼
+- [Slack 채널] - 쿠버네티스 공식 Slack
+- [StackOverflow] - 쿠버네티스 엔드-사용자의 질문에 답변할 수 있는 장소
+- [YouTube 채널] - 쿠버네티스 커뮤니티 공식 채널
+
+
+### 작업 흐름
+
+- [Gubernator 대시보드] - 주목이 필요한 수신/발신 풀 리퀘스트
+ 확인
+- [Prow] - 쿠버네티스 CI/CD 시스템
+- [Tide] - 머지와 테스트를 관리하는 Prow 플러그인 [Tide 대시보드]
+- [Bot 명령] - 쿠버네티스 Bot과 상호 작용하는데 사용하는 명령 (예시:
+ `/cc`, `/lgtm`, `/retest`)
+- [GitHub 레이블] - 쿠버네티스 프로젝트 전체에서 사용되는 레이블 목록
+- [@dims]가 관리하는 [쿠버네티스 코드 검색]
+
+
+### 테스트
+
+- [Prow] - 쿠버네티스 CI/CD 시스템
+- [테스트 그리드] - 테스트 기록과 관련된 정보 확인
+- [Triage 대시보드] - 더 나은 문제 해결을 위해 유사한 오류를
+ 수집
+- [Velodrome] - 작업과 테스트 상태를 추적하는 대시보드
+
+
+### 중요한 이메일 별칭
+
+- community@kubernetes.io - 커뮤니티 문제에 대한 커뮤니티 팀(SIG 컨트리뷰터 경험자)의
+ 누군가에게 메일을 전송
+- conduct@kubernetes.io - 비공개 메일링 목록은 행동 강령 위원회에
+ 문의
+- steering@kubernetes.io - 공개 자료와 공개 주소와 함께 운영 위원회에 메일을
+ 전송
+- steering-private@kubernetes.io - 민감한 사항에 대해서는 운영 위원회에 개인적으로
+ 메일 전송
+- social@cncf.io - CNCF 소셜 팀에 문의. 블로그, 트위터 계정,
+ 기타 소셜 요소들
+
+
+### 다른 유용한 링크
+
+- [개발자 통계] - CNCF가 관리하는 프로젝트에 대한 개발자 통계
+ 확인
+
+---
+
+## GitHub에서 효과적으로 의사 소통하기
+
+
+### 서로에게 훌륭한 방법
+
+첫 번째 단계로, [행동 강령]에 익숙해지자.
+
+
+#### 좋은/나쁜 의사 소통 예시
+
+이슈를 제기하거나, 도움을 청할 때, 요청에 예의를 갖춘다.
+
+ 🙂 “Y를 할 때 X가 컴파일되지 않습니다. 다른 의견이 있습니까?”
+
+ 😞 “X가 작동하지 않습니다! 고쳐주세요!”
+
+PR을 종료할 때, 머지해야 할 요건을 충족하지 못하는 이유를 설명하는
+구체적이고 친절한 메시지를 전달한다.
+
+🙂 “이 기능은 유스 케이스 X를 지원할 수 없기 때문에 이 PR을 닫습니다.
+ 이 경우, Y 도구로 구현하는 것이 더 낫습니다.
+ 이 일에 도움을 주셔서 감사합니다.”
+
+😞 “API 규약을 따르지 않는 이유는 무엇입니까? 이것은 반드시 다른 곳에서 해야합니다!”
+
+---
+
+## 컨트리뷰션 전송
+
+### CLA 서명
+
+컨트리뷰션을 전송하기 전에, 반드시 [컨트리뷰터 라이센스 동의(CLA)][cla]가 필요하다.
+쿠버네티스 프로젝트는 귀하 또는 귀하의 회사가 CLA에 서명한 경우에만
+_오직_ 기여할 수 있다.
+
+CLA에 서명에 문제가 발생한다면,
+[CLA 문제해결 가이드라인]을 참조하라.
+
+
+### 이슈의 오픈 및 응답
+
+GitHub 이슈는 버그 리포트, 개선 요청 또는 실패한 테스트와 같은 문제를 추적하는
+주요 수단이다.
+이것은 [사용자 지원 요청]을 위한 것이 **아니다**.
+그 경우에는, [문제해결 가이드]를 확인하거나, [Stack Overflow]에 문제를 리포트하거나,
+[쿠버네티스 포럼]에서 후속 조치를 취한다.
+
+**참조:**
+- [레이블]
+- [Prow 명령][commands]
+
+
+#### 이슈 생성
+
+- 가능하다면 이슈 템플릿을 사용한다. 올바른 것을 사용하면 다른 컨트리뷰터가
+ 귀하의 문제를 응답하는 데 도움이 된다.
+ - 이슈 템플릿 자체에 설명된 지침을 따른다.
+- 발생한 이슈를 설명한다.
+- 적절한 [레이블]을 지정한다. 확실하지 않은 경우, [k8s-ci-robot][prow] bot
+ ([쿠버네티스 CI bot][prow])이 효과적으로 분류된 레이블로 이슈에
+ 답장할 것이다.
+- [`/assign @<username>`][assign] 또는 [`/cc @<username>`][cc]를 사용하여 이슈를 선택적으로 할당한다.
+ 이슈에 많은 사람을 할당하는 것보다 올바른 레이블을 적용하는 것이
+ 이슈를 효과적으로 선별할 것이다.
+
+
+#### 이슈 응답
+
+- 이슈를 해결할 때, 다른 사람과의 중복 작업을 피하기 위해 작업중임을 알리는
+ 내용의 댓글을 작성한다.
+- 나중에 언제든지 무언가를 해결할 때,
+ 이슈를 닫기 전에 사람들에게 알린다.
+- 다른 PR 또는 이슈(또는 접근 가능한 자료)에 대한 참조를 포함한다. 예: _"ref: #1234"_.
+ 이는 관련 작업이 다른 곳에서 처리되었음을
+ 확인하기에 유용한다.
+
+
+### 풀 리퀘스트 오픈
+
+풀 리퀘스트(PR)는 git 저장소에 저장되는 코드,
+문서 또는 다른 형태의 작업을 기여하는 주요 수단이다.
+
+**참고:**
+- [레이블]
+- [Prow 명령][commands]
+- [풀 리퀘스트 과정]
+- [Github 작업 흐름]
+
+
+#### 풀 리퀘스트 생성
+
+- 가능한 풀 리퀘스트 템플릿의 지시를 따른다.
+ 템플릿은 PR에 응답하는 사람들을 도와줄 것이다.
+- 깨진 링크, 오타 또는 문법 오류와 같은 [사소한 수정]이 있으면, 전체 문서에서 다른 잠재적인 실수를
+ 검토한다. 같은 문서에서 작은 수정을 위해
+ 여러개의 PR을 오픈하지 않는다.
+- PR과 관련된 이슈나 PR이 해결할 수 있는 모든 이슈를 참조한다.
+- 단일 커밋에서 지나치게 큰 변경은 피한다.
+ 대신에, PR을 여러 개의 작고 논리적인 커밋으로 나눈다.
+ 이것은 PR을 보다 쉽게 리뷰할 수 있도록 만든다.
+- 더 자세한 설명이 필요하다고 생각하는 자신의 PR에 대한
+ 의견을 말한다.
+- [`/assign @<username>`][assign]으로 PR을 선택적으로 할당한다.
+ 많은 리뷰어를 지정하더라도, 더 빨리 PR을 검토되지는 않는다.
+- PR이 _"진행중인 작업"_ 으로 간주되면, 접두사로 `[WIP]`를 붙이거나,
+ [`/hold`][hold] 명령을 사용한다. 이는 `[WIP]` 또는 hold가 해제될 때까지
+ PR이 합쳐지는 것을 막을 것이다.
+- 만약 PR이 리뷰되지 않았다면, 동일한 변경 사항으로 새로운 PR을 열고 닫지 않는다.
+ `@<github username>` 명령을 사용하여 리뷰어에게 Ping한다.
+
+
+#### PR 설명 예시
+
+```
+Ref. #3064 #3097
+All files owned by SIG testing were moved from `/devel` to the new folder `/devel/sig-testing`.
+(SIG 테스트에서 소유한 모든 파일을 `/devel`에서 새폴더 `/devel/sig-testing`으로 이동하였습니다.)
+
+/sig contributor-experience
+/cc @stakeholder1 @stakeholder2
+/kind cleanup
+/area developer-guide
+/assign @approver1 @approver2 @approver3
+```
+
+PR에 무엇이 포함되어 있는가?
+- **라인 1** - 다른 이슈나 PR의 레퍼런스 (#3064 #3097).
+- **라인 2** - PR에서 무엇이 수행되었는지 간단한 설명한다.
+- **라인 4** - `/sig contributor-experience` [명령][commands]으로
+ [SIG][sigs] 할당한다.
+- **라인 5** - 특정 이슈 또는 PR에 관심을 가지고 있는 특정한 리뷰어는 [`/cc`][cc] 명령으로
+ 지정한다.
+- **라인 6** - [`/kind cleanup`][kind] 명령은 코드, 프로세스 또는 기술적 부재 정리와 관련하여
+ PR을 분류하는 [레이블][레이블]을
+ 추가한다.
+- **라인 7** - [`/area developer-guide`][kind] 명령은 개발자 가이드와 관련된 이슈 또는
+ PR을 분류한다.
+- **라인 8** - [`/assign`][assign] 명령은 승인자를 PR에 할당한다.
+ 승인자는 [k8s-ci-robot][prow]에 의해 제안되며,
+ [OWNERS] 파일의 소유자 목록에서 선택된다.
+ 그들은 PR을 검토한 후에, [`/approve`][approve] 레이블을 추가할 것이다.
+
+
+#### 풀 리퀘스트 문제 해결
+
+PR이 제안된 후, 쿠버네티스 CI 플랫폼 [Prow]에 의해 일련의 테스트가 실행된다.
+테스트가 실패하면, [k8s-ci-robot][prow]은 실패한 테스트 및 사용 가능한 로그에 대한
+링크를 PR에서 응답한다.
+
+새로운 커밋을 PR에 푸시하면 자동으로 테스트가 다시 실행된다.
+
+가끔 쿠버네티스 CI 플랫폼에 문제가 있을 수도 있다.
+컨트리뷰션이 모든 로컬 테스트를 통과하더라도 다양한 이유로 이슈가 발생할 수 있다.
+`/retest` 명령으로 테스트를 재실행 할 수 있다.
+
+특정 테스트 문제 해결에 대한 자세한 내용은, [테스트 가이드]를 참고하라.
+
+
+### 레이블
+
+쿠버네티스는 이슈와 풀 리퀘스트를 분류하고 선별하기 위해 [레이블]을 사용한다.
+올바른 레이블을 적용하면 이슈 또는 PR이 더 많이 효과적으로 검토하는데
+도움을 줄 수 있다.
+
+**참고:**
+- [레이블]
+- [Prow 명령][commands]
+
+자주 사용되는 레이블:
+- [`/sig <sig name>`][kind] 이슈나 PR의 소유권을 [SIG][SIGs]로
+ 지정.
+- [`/area <area name>`][kind] 이슈 또는 PR을 특정 [area][레이블]과
+ 연결.
+- [`/kind <category>`][kind] 이슈나 PR을 [분류][레이블].
+
+---
+
+## 로컬에서 작업
+
+풀 리퀘스트 작업을 제안하기 전에, 로컬에서 일정 수준의 작업을 수행해야 한다.
+git에 익숙하지 않다면, [Atlassian git 튜토리얼]이 좋은 출발점이 될 것이다.
+대안으로는, Stanford의 [Git magic] 튜토리얼이 좋은
+다국어 옵션이다.
+
+**참고:**
+- [Atlassian git 튜토리얼]
+- [Git magic]
+- [Github 작업 흐름]
+- [로컬 테스트]
+- [개발자 가이드]
+
+
+### 브랜치 전략
+
+쿠버네티스는 GitHub의 표준인 _"포크와 풀"_ 작업 흐름을 사용한다.
+git 용어로는, 개인적인 포크는 _"`origin`"_ 으로, 실제 프로젝트의 저장소는
+_"`upstream`"_ 으로 부른다.
+개인 브랜치(`origin`)를 프로젝트(`upstream`)의 최신 상태로 유지하려면,
+로컬 작업 복사본 내에 반드시 구성되어야 한다.
+
+
+#### Upstream 추가
+
+원격지로 `upstream`을 추가하고, 푸시할 수 없도록 설정한다.
+
+```
+# replace <upstream git repo> with the upstream repo url
+# example:
+# https://github.com/kubernetes/kubernetes.git
+# git@github.com/kubernetes/kubernetes.git
+
+git remote add upstream <upstream git repo>
+git remote set-url --push upstream no_push
+```
+
+`git remote -v` 명령을 수행함으로써 원격지로 설정되어진 목록을
+나열할 수 있다.
+
+
+#### Fork를 동기화 상태로 유지하기
+
+`master` 브랜치에서 `upstream`과 _"rebase"_ 로부터 모든 변경 사항을 가져온다.
+이는 로컬 저장소와 `upstream` 프로젝트를 동기화할 것이다.
+
+```
+git fetch upstream
+git checkout master
+git rebase upstream/master
+```
+
+기능이나 수정 작업을 위해 새로운 브랜치를 만들기 이전에
+작업을 최소한으로 수행해야만 한다.
+
+```
+git checkout -b myfeature
+```
+
+#### 스쿼시 커밋
+
+[스쿼시 커밋]의 주요 목적은 변경된 내용을 명백하게 읽을 수 있는 git 히스토리 또는 로그를 생성하는 것이다.
+보통 이것은 PR 정정의 마지막 단계에서 수행된다.
+커밋을 스쿼시해야 하는지 확실하지 않다면,
+더 많은 것을 가지고 있는 측에서 잘못을 범하는 것이 더 좋기 때문에,
+PR을 검토하고 승인하도록 지정된 다른 참여자의 판단에 맡긴다.
+
+
+
+[컨트리뷰터 가이드]: /contributors/guide/README.md
+[개발자 가이드]: /contributors/devel/README.md
+[Gubernator 대시보드]: https://gubernator.k8s.io/pr
+[prow]: https://prow.k8s.io
+[tide]: http://git.k8s.io/test-infra/prow/cmd/tide/pr-authors.md
+[tide 대시보드]: https://prow.k8s.io/tide
+[bot 명령]: https://go.k8s.io/bot-commands
+[gitHub 레이블]: https://go.k8s.io/github-labels
+[쿠버네티스 코드 검색]: https://cs.k8s.io/
+[@dims]: https://github.com/dims
+[달력]: https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com
+[kubernetes-dev]: https://groups.google.com/forum/#!forum/kubernetes-dev
+[Slack 채널]: http://slack.k8s.io/
+[stackOverflow]: https://stackoverflow.com/questions/tagged/kubernetes
+[YouTube 채널]: https://www.youtube.com/c/KubernetesCommunity/
+[triage 대시보드]: https://go.k8s.io/triage
+[테스트 그리드]: https://testgrid.k8s.io
+[velodrome]: https://go.k8s.io/test-health
+[개발자 통계]: https://k8s.devstats.cncf.io
+[행동 강령]: /code-of-conduct.md
+[사용자 지원 요청]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request
+[문제해결 가이드]: https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/
+[stack overflow]: https://stackoverflow.com/questions/tagged/kubernetes
+[쿠버네티스 포럼]: https://discuss.kubernetes.io/
+[풀 리퀘스트 과정]: /contributors/guide/pull-requests.md
+[github 작업 흐름]: /contributors/guide/github-workflow.md
+[prow]: https://git.k8s.io/test-infra/prow#prow
+[cla]: /CLA.md#how-do-i-sign
+[CLA 문제해결 가이드라인]: /CLA.md#troubleshooting
+[commands]: https://prow.k8s.io/command-help
+[kind]: https://prow.k8s.io/command-help#kind
+[cc]: https://prow.k8s.io/command-help#hold
+[hold]: https://prow.k8s.io/command-help#hold
+[assign]: https://prow.k8s.io/command-help#assign
+[SIGs]: /sig-list.md
+[테스트 가이드]: /contributors/devel/sig-testing/testing.md
+[레이블]: https://git.k8s.io/test-infra/label_sync/labels.md
+[사소한 수정]: /contributors/guide/pull-requests.md#10-trivial-edits
+[Github 작업 흐름]: /contributors/guide/github-workflow.md#3-branch
+[스쿼시 커밋]: /contributors/guide/pull-requests.md#6-squashing-and-commit-titles
+[owners]: /contributors/guide/owners.md
+[로컬 테스트]: /contributors/guide/README.md#testing
+[개발자 가이드]: /contributors/devel/README.md
+[Atlassian git 튜토리얼]: https://www.atlassian.com/git/tutorials
+[git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/
+[보안과 정보 공개]: https://kubernetes.io/docs/reference/issues-security/security/