[2020 오픈소스 컨트리뷰톤] 오프라인 교육

peeeeeter_j·2020년 8월 8일
0
post-thumbnail

본격적인 컨트리뷰톤 활동을 하기 위한 교육을 받고 간단한 실습을 한 뒤
컨트리뷰톤 활동을 함께 할 조를 정하고 조별 번역 프로젝트를 선정하는 시간을 가졌다.

<우분투 한국어 번역> 교육

우분투 한국어 번역팀 owner이신 신민욱 멘토님이 교육을 진행해주셨다.
오프라인 교육에는 14명의 멘티들 중 6명이 참여 하였다.
우분투 한국어 번역팀에 대한 소개가 진행되었고
발대식 때도 설명해주셨던 부분과 겹치는 내용도 있었다.

번역 우선순위는 출시 예정 배포판이 가장 높고, 최신 LTS 배포판이 그 다음이라고 한다.
즉, 1순위는 20.10 버전인 Groovy Gorilla에 대한 번역이고,
2순위는 20.04 버전인 Focal Fossa에 대한 번역이다.
번역 규칙은 ~~진입장벽을 낮추기 위해~~ 몇 가지 없어 조금 신경써서 작성하면 되는 수준이다.
// 그런 의미에서 나도 진입장벽을 낮추기 위해
// 누구라도 이 포스팅을 보고 따라하며 우분투 번역에 기여할 수 있도록 작성해보겠다.
우분투 한국어 번역팀 운영 규칙은 우분투 위키에서 확인할 수 있다.

사전 준비

본격적인 번역 활동에 앞서 먼저 런치패드에 가입을 하였다.
가입 버튼을 누르고 보니 Ubuntu One 계정이다.
나는 우분투를 사용하며 진작에 가입되어 있는 상태였기에 그대로 로그인 하였다.

가입을 하고 나면 다음 절차로 GPG Key를 생성하고 등록하였다.
GPG Key 생성에는 gpg 명령어가 사용되는데 이를 위해서는 gnupg 패키지가 필요하다.
이것이 존재하지 않는다면 다음과 같은 명령어로 설치해주어야 한다.

~$ sudo apt install gnupg

물론 운영체제에 따라 구체적인 방식에는 차이가 있지만
나는 우분투 사용자이므로 내 기준으로 작성한다.
위 명령어를 수행했더니 이미 최신 버전이 존재한다고 뜬다.
그럼 신경쓰지 않고 다음으로 넘어간다.
이제 gpg 명령어를 통해 GPG Key를 생성할 수 있다.
이 명령어를 사용하기에 앞서 설정 파일을 작성해야 한다.
파일이 없다면 새로 만들고, 있다면 맨 아래 추가하는 방식으로 작성하면 된다.

~$ vi ~/.gnupg/gpg.conf
personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

파일이 생성되면 다음과 같은 명령어로 GPG Key를 생성할 수 있다.

~$ gpg --full-generate-key

다음과 같이 뜨는 걸 볼 수 있는데

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection?

1입력하고 엔터를 친다.
혹은, 그냥 엔터를 치면 default로 1로 설정된다.
다음으로는 Key의 bit수를 설정하라고 하는데

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)

4096을 권장하므로 4096이라고 입력하고 엔터를 친다.
Key의 bit수를 설정한 후에는 Key의 유효기간을 설정해야 한다.

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)

약 2년 정도를 권장하므로 2y라고 입력하고 엔터를 친다.
마지막으로 개인 신원을 입력하라고 하는데, 실명과 자주 쓰는 이메일을 사용하도록 하자.

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
>
Real name: 
Email address: 
Comment: 

모든 설정을 마치면 입력한 신원 정보의 일치 여부를 확인하라고 하는데
확인해보고 문제가 없다면 다음으로 넘어가기 위해
Okay의 약자인 O를 입력하고, 비밀번호를 요구할 경우 사용할 비밀번호를 입력하면 된다.

이제 GPG Key가 생성되었다.
생성이 완료되었다며 40개의 문자 또는 숫자로 이루어진 문자열을 띄울 것이다.
이것을 우리는 핑거프린트fingerprint라고 부르고, 이것의 마지막 8자리를 KeyID라고 부른다.

이렇게 생성된 GPG Key의 Public Key를 Key server에 업로드 하려면
다음과 같은 명령어를 실행하면 된다.

~$ gpg --keyserver [키서버 주소] --send-keys [키ID 또는 핑거프린트]

이 때, Key server 주소는 keyserver.ubuntu.com를 사용하면 되고,
KeyID 또는 핑거프린트는 방금 생성한 Key의 그것을 사용하면 된다.

GPG Key를 생성하고 Key server에 업로드 하는 과정을 마쳤다면
런치패드에 GPG Key를 등록해야 한다.
런치패드 프로필에서 OpenPGP Keys라는 항목을 찾을 수 있는데
그 옆의 연필 모양 버튼을 누르고 다시 로그인을 하면 GPG Key 등록 화면이 보인다.

Import an OpenPGP key라는 항목의 Fingerprint 부분에
앞서 우리가 얻은 핑거프린트를 적어 넣고 Import Key 버튼을 누르면 된다.

핑거프린트는 다음 명령어를 통해서도 확인할 수 있다.

~$ gpg --fingerprint

GPG Key를 등록하겠다는 버튼을 누르고 나면 런치패드는 우리에게 메일을 보낸다.
메일을 확인해보면 GPG Key를 확인하라며 암호화된 메시지가 첨부되어 있다.
여기서 -----BEGIN PGP MESSAGE-----부터 -----END PGP MESSAGE-----까지를
텍스트 파일을 생성해 붙여 넣고 저장한다.
// 이 BEGIN과 END부분까지 빼먹지 않고 붙여 넣도록 하자.
텍스트 파일의 이름은 자유롭게 설정해도 된다.
이 파일은 다음과 같은 명령어로 복호화 할 수 있는데

~$ gpg --decript [파일 이름]

복호화 결과 어떤 링크가 나오는 것을 확인할 수 있다.
해당 링크에 접속하면 Key 등록이 완료된다.

Key 등록을 마친 후, Code of Conduct에 서명을 해야 한다.
이것은 런치패드 프로필 상의 Signed Ubuntu Code of Conduct라는 항목에서 할 수 있다.
CoC를 다운로드하고 다음과 같은 명령어를 통해 내 GPG Key로 서명을 할 수 있다.

~$ gpg --clearsign UbuntuCodeofConduct-2.0.txt

그러면 경로 상에 UbuntuCodeofConduct-2.0.txt.asc라는 파일이 생성되는데
이 파일의 내용물을 Signed Ubuntu Code of Conduct의 Signed code 항목에 붙여 넣는다.
내용물이 너무 길어 긁어지지 않는다면 cat 명령어로 출력하여 긁는 방법도 있다.

자, 이제 우분투 한국어 번역팀에 가입할 준비가 거의 되었다.
우분투 한국어 번역팀 가입 기준은 다음과 같다.

  • 카르마 50점 이상
  • GPG Key를 사용하여 Code of Conduct 서명 완료
  • 영문 닉네임 사용
  • “ubuntu-l10n-ko” 메일링 리스트 구독

우리는 아직 카르마 50점 이상 이라는 기준을 달성하지 못했다.
물론 번역팀에 가입하지 않아도 번역 제안은 가능하다.
그리고 이 번역 제안을 통해 카르마 점수를 쌓을 수 있다.

번역팀이 아닌 로코팀은 바로 가입할 수 있다는 건 여담.

번역 실습

우리는 번역팀에 가입하기 위한 카르마 점수를 채울 겸 런치패드에 익숙해지기 위해
번역 제안을 하는 실습 시간을 가졌다.
카르마는 실시간으로 산정되는 것이 아니라 어느 정도 시간이 지난 후에 반영된다.
따라서 오늘은 번역 제안을 하는 실습으로 교육을 마무리하고
카르마가 충분히 쌓이고 번역팀에 가입한 후에 본격적인 컨트리뷰톤 활동이 시작될 예정이다.

조 편성

조 편성은 우분투 커뮤니티 대표 윤건영 멘토님이 랜덤으로 정하셨다고 한다.
총 4개 조로, 3~4명으로 구성되어 있는 팀인데
4명의 멘토가 각각 한 팀의 메인 멘토, 다른 팀의 서브 멘토로 들어와 있는 형태다.
우리팀은 배준현 멘토님이 메인, 신민욱 멘토님이 서브로 활동하신다.

한 명 빼고 전원 참석이었던 우리 팀은 그 자리에서 바로 우리 팀이 번역할 프로젝트를 선정하였다.
우리는 snappy를 번역하기로 하였다.
// "프로젝트 정하고 가죠"부터 "이거 할래요?"까지, 뭔가 내 의지대로 된 것 같다.
원래 우분투는 apt를 통한 패키지 설치를 기본으로 했는데
snap을 기본 패키지 관리자로 채택한지 그리 오래되지 않아 번역이 거의 되지 않은 상태다.
중요도 순으로 정렬된 번역 화면에서 첫 페이지에 있음에도 불구하고 번역률이 낮다.
중요도가 높지만 번역률이 낮다는 점에서 이것을 번역하는 것이 상당히 매리트 있다고 느꼈다.

안그래도 주변 친구들에게 우분투를 영업(?)하고 있는데
"이거 내가 번역한거다!"라는 ~~하나도 안부러워할~~ 자랑거리가 생긴다는 것이 벌써 신난다ㅋㅋ
~~정피터 이런 거 너무 좋아하는 것 같닼~~

profile
Peter J Online Space - since July 2020

0개의 댓글