클린코드 PHP를 번역해보았다. - Fork부터 PR까지
0. 서론
사내에서 클린코드 스터디를 진행하고 있다. 스터디를 하면서 적용해보고 싶은 것들이 많지만 당장에 바로 적용하기에는 어려운 구석이 있었다. 가장 큰 이유는 부족한 나의 기본기일테지만 책에서 사용하는 언어(JAVA)의 차이점도 어느정도 이유가 되었던 것 같다.
우연히 github을 둘러보던 도중 클린코드 PHP 버전(jupeter/clean-code-php)을 보게 되었다. 예시가 PHP로 쓰여있어서 조금 더 이해하기 쉬웠고 와닿았으며 코드를 지금보다는 깨끗하게 만들 수 있는 적용점이 보였다. 팀에게 공유하고 읽어보았다.
영어 문서를 읽을 때마다 느끼는 건데, 그냥 온전히 이해하며 읽는 것이 아니라 느낌으로 해석하며 읽을 때가 있다. 아는 단어로 추론하면서 대~충 이런 느낌이겠거니. 하는 것. 분명히 지하철에서 오고가며 읽긴 다 읽은 것 같은데 머릿 속에 남은 것은 없다. 조금 더 내 머릿 속에 꼭꼭 잘 담아둘 수는 없을까.
새해 목표중에 영어 공부를 하자! 근데 나의 직함은 개발자라고 하니 조금 더 실용적으로 영어 공부를 해보자! 영어 블로그를 번역해보자! 라는 목표가 있었다. PHP 버전 클린코드가 조금 더 많은 사람에게 쉽게 읽혔으면 좋겠단 생각이 들었다. 근데, 마침 수많은 translation 중 korean은 없어서 내가 비벼(?) 볼수 있겠단 생각이 들었다. 깃헙 계정은 있으나 이전회사에서 업무하기 위해 사용했을 뿐이었다. 자발적으로 생성한 프로젝트도 없고(깃헙에는.. ㅎㅎ) 남의 코드를 fork 해서 뭔가를 해본 적은 없었다. 개발자로 일하고 나서부터 막연하게 멋지다고 생각했던 것은 남의 소스를 fork해서 PR을 날리고 무언가의 기여를 하는 것이었다. 그냥 막연하게 멋있었다. 용기있고 멋진 행동이라고 생각했다.
정리하자면 내가 번역을 진행한 이유는 다음과 같다.
1. PHP에서 적용할 수 있는 클린 코드를 꼭꼭 머릿속에 잘 담아 두고 싶다.
2. 새해 목표인 실용적인 영어 공부를 해보자.
3. 더 많은 사람에게 이 내용이 읽히고 공유되었으면 좋겠다.
4. 나도 fork하고 기여해보자. 왜냐하면 그게 멋있어 보였으니까. 키키..
여튼 그래 빠르게 번역을 시도해보았다. 번역작업이 뭐 어렵겠어 했는데 생각보다 발걸음을 내딛는 것 부터 어려웠다.
이 글에서는 번역작업 진행 과정과 느낀점을 작성해보려 한다. 혹 나같은 초보 개발자가 같은 걸 시도할 때 도움이 되었으면 해서 그리고 시도하는 사람이 많이 늘었음 해서..
1. 번역작업 진행 과정
1. fork하기!
우선 번역작업을 하기 위해서는 번역하고자 하는 프로젝트를 fork한다. 화면의 맨 오른편 Fork를 누른다

fork를 누르면 나의 repository에 프로젝트가 생긴다.

2. clone하여 작업 환경 만들기
그냥 바로 master에서 번역을 할 수 있으나 나는 브랜치를 새로 따서 진행을 했다. 번역작업은 readme.md 파일을 수정하는 것이어서 굳이 clone하지 않고 readme.md파일을 클릭한뒤 연필 아이콘을 눌러 edit할 수 있다. 작업하면서 바로바로 preview changes를 볼 수 있는 점이 좋은 것 같다.

나는 clone을 떠서 내 개인 PC에서 작업하였다.

여기서 clone or download를 클릭한뒤 클립보드에 복사하여 terminal 에서 git clone (복붙)을 해도 되고 sourcetree같은 툴에서 새 프로젝트를 만들기를 한 담에 복붙을 해도 되고 zip을 받아도 되고 그렇다. 나는 sourcetree로 작업하였다. 보다가 맘에 안드는 번역은 제외해서 commit하고 추가적으로 진행하고 싶어서…
3. 번역을 합니다.
번역을 한다. (영어사전과 파파고 구글 이것저것을 다 켜놓고) commit을 하고 push하고를 반복하다보면 어느새 번역이 끝나있다. 나의 경우에는 master-translation-ko라는 이름으로 브랜치를 새로 땄기 때문에 나의 master에 머지리퀘스트를 날리고 합치는 작업을 했다. 그렇게 하니 이제 yujinee/clean-code-php에는 깨끗한 한글판만 남게 되었다.
4. 이제 한글판을 추가했다고 Pull request를 날려본다.
다음과 같은 한줄을 추가한다. 나는 patch-1이라는 브랜치가 있길래 거기에다가 했다. korean flag를 찾아서 달때에는 괜히 뿌듯했다.

이제 내가 fork한 원본 프로젝트로 들어가 master에 pull request를 날려준다.

그럼 이렇게 나의 요청이 생성된 것을 볼 수 있다.

5. 듀근듀근 MERGE 해주기를 기다린다.
괜히 두근두근 했다. 이틀 정도를 기다렸다.
6. MERGE 완료!
나의 PR이 merge 된 것을 볼 수 있다. 또한, README 파일에도 KOREAN이 추가되어있는 것을 볼 수 있었다.

이 소스에 contributors를 클릭해보면 여기에도 내가 추가된 것을 볼 수 있당.. 히힣...

3. 번역을 하면서 내가 배운 것과 느낀 것
- 깃헙 마크다운을 배웠다.
- 편하다는데 뭐가 편하다는 건지 몰랐는데 마크다운 문법에 익숙해지니 아 이래서 편하다는 구나 하고 깨달았다. 이제 회사에서 git 올릴때 에디터 클릭하지 않고 예쁘게 작성할 수 있을 것 같아서 기분이 좋았다. 링크를 다는 것, 목차를 만드는 것, 두꺼운 글씨를 쓰는 것, 헤더를 쓰는 법 등을 배웠다.
- 일단 한번 해보자가 중요한 것 같다.
- 시도하겠다고 맘만 먹고 질질끌기만 했었다. 한 단락만 번역해보자는 마음으로 막상 시작해보니 재미있었고 후딱 끝낼 수 있었다.
- 그냥 읽는 것보다 내용을 조금 더 이해하게 되었다.
- 그냥 영어로 쭉 봤을 때 이해했다고 생각했는데 문장으로 그걸 바꿔보려고 시도해보니, 이해하지 못하고 있었다는 것을 알게되었다.
- 무엇보다, 뿌듯하다.
- 첨으로 생판 남의 소스를 fork하고 PR을 날려보고 contributor가 되어보았는데, 생각보다 기분이 좋고 뿌듯하다.
- 다른 사람들에게는 중요하지 않겠지만 나에게는 가장 중요하다. 내가 느꼈다는 것이 중요하다. 적어도 다음에는 더 편하고 재밌는 마음으로 같은 작업에 참여할 수 있고 시도해볼 수 있을 것 같다.
- 오역과 의역이 많은 것 같다.
- 다른 사람이 더 많이 많이 내 오역과 의역을 발견해주고 커밋해주고 PR을 날려주었음 좋겠다. 진심으로..
4. 그냥 드는 생각
뭐 별거 한것도 없으면서 나너무 에바쌈바오바꽁치참치인가하는 생각이 들기도 했지만.. 그냥 내 첫 발걸음이 기분이 좋고 뿌듯한걸 어찌해야하나 싶다. 키키.. 결과보다는 시도와 노력에 가치를 두는 사람이 되고 싶다.
평생 개발자를 할 것인지 그리고 정말 개발자가 될 수 있을련지는 아직 잘 모르겠다. 하지만 나는 어제보다는 더 개발을 좋아하게 된 것 만 같은 느낌이 든다. 조금씩 차근차근 나가다 보면 나도 개발자라고 스스로를 뿌듯해할 수 있는 날이 오지 않을까 싶다.
개발을 미친듯이 잘하기보다는 계속해서 탐구하기를, 그리고 다른사람에게 좋은 영향을, 도움이 되는 사람이 되었으면 좋겠다는 생각이 든다. 또 번역할 만한 거리가 없을지 찾아봐야겠다. 혹은 이번에는 readme말고 코드에 기여를 해보면 어떨까? 큰 기여가 아니더라도 작은 기여부터 차근차근히 해가다 보면 더 큰 기여를 할 수 있겠지! 라는 생각이 드는 날이다 :D
번역한 클린코드 링크는 다음과 같다. https://github.com/yujineeee/clean-code-php
'개발개발 > PHP' 카테고리의 다른 글
memcached increment always return false codeigniter (0) | 2018.07.19 |
---|---|
메일건 트랙킹 (0) | 2016.12.08 |
암호화한 코드 링크 유의사항 (0) | 2016.10.28 |
공유하기 썸네일 및 url문제 (0) | 2016.10.19 |