Skip to main content

[GDG Seoul] OSS/Github 입문 CodeLab 후기

작년 이맘때 쯤, GDG Android Korea 에서 CodeLab 을 진행 했었는데, 올해는 GDG Seoul 에서 진행한 "OSS/Gitub 입문 CodeLab" 이란 타이틀로 CodeLab 을 진행하여 참가하게 되었다.

git 이나 Github 를 처음 사용하는건 아니였지만, 거의 SVN 처럼 사용 해 온지라, "이참에 재대로 한번 배워보자!" 하는 맘이 컸고, 다른 분들은 어떻게 Github 를 사용하시는지도 궁금했다.

CodeLab 은 크게

- OSS 에 대한 설명 및 Newbi 를 위한 Tutorial
- Github 및 git 에 대한 Tutorial
- CodeLab

순으로 진행 되었다. (딱히 순서에 이름이 없는것 같아서 임의로 붙였다.)

1. OSS 에 대한 설명 및 Newbi 를 위한 Tutorial (뉴비X 님) (슬라이드 링크)



OSS (Open Source Software) 에 대한 간략한 소개와 Linux Kernel 를 예로 Contribute 하는 방법에 대한 이야기를 들을 수 있었다.

Android 의 경우만 해도 여러 open source library 의 도움으로 좀더 편하고 쉽게 App 개발을 진행 할 수 가 있는데, 사용하면서 개선한 사항에 대해서 내가 코드에 기여할 수 있겠다. 라는 생각이 많이 들었다. 특히 Newbi 를 위한 주의해야 할 사항이 인상깊었는데,

간단하게 요약 하자면,

- coding Style

- You are just a newbi here- start from jab 
(작은 것 부터 시작하자.. 조그마한 작업부터, 혹은 리뷰…)

- commit log style

- summarized title on First Line

- just \n on Second Line- Detailed log after 3rd Line

이정도가 아닐까 싶다. 특히, 의욕이 너무 지나쳐서 너무 많은 것을 커밋하려고 하면 그것도 문제니 작은것부터 차근차근 익숙해 지는게 중요하다는 내용이 핵심.
예전에 다른 프로젝트에 contribute 했다가 까인 경험이 있어, 소심해 진 적이 있었는데, 차근차근 다시 도전해 봐야겠다 라는 생각이 들었다.

2. Github 및 git 에 대한 Tutorial (지나가는 삽질러 님) (슬라이드 링크)

처음 부분까지는 괜찮았는데.. 뒤로갈수록 난이도가 갑자기 높아져서 맨붕을 일으킨 세션.
역시 rebase 와 merge 가 문제였는데.. 열심히 질문할껄 끝나고 나서 후회했다ㅠ
슬라이드를 공유해 주셔서 자세한설명은... 생략..(절대로 잘몰라서 설명 안한게 아님.)

3. CodeLab

다들 자신 없어 하시는거 같았는데 막상 시작하니 전부 쉬지도 않고, 계속해서 pull request & issus 생성... 처음에는 어떻게 수정해서 올릴까 고민하다가 올라오는 issus 와 pull request 를 보고는 당황... 난 점수를 얻기위해.. 코드보다는 주변 환경에 신경쓰는 전략을 짜고 README.md 와 gradle.build 를 공략했다.

다행히 gradle build 는 out of 관심 중 하나여서..main code 에 적용 성공! issue 를 먼저 생성하고 올렸더라면 1점 더 받을 수 있었는데ㅠ

다행히 main code 에 등록!

한번 등록에 성공한 다음부터는 좀 더 공격적으로 진행했다. LICENSE 를 추가하자! 라는 목표로 pull request 를 날렸는데.. 아래와 같은 답변이 달렸다.


rebase...rebase...rebase... 여기서부터 삽질이 시작되었다. commit 을 하려고 해도 에러가 계속나고.. 결국 튜터님들의 도움으로 간신히 push 직전까지 갔는데... 튜터님께서 뒤돌아서 가시는 순간.. pull 을 해 버렸다... OTL....

그리고 다시 conflict... 이런 상황을 다시 몇번 반복... 간신히 pull request 를 했지만.. merge 되기전에 codelab 은 아쉽게도 종료 ㅠ

막판 rebase 덕에 삽질한 흔적...

codelab 이 끝나고 간단한 질의응답 시간 후, 점수합계 및 훈훈한 점수 기증까지 이어지고,
2등에게는 특별한 부상을 하사 하신후 오늘 시간을 마무리 하였다. (사실 난 술을 못하니까... 라며 위로했지만 마셔보고 싶었는데 ㅠ)

나중에 집에와서 보니 짧은 시간동안 피튀기는 전쟁을 했음을 알 수 있었다.

39 open 에 28 close 라니...

codelab을 하면서 git 의  branch 를 활용하여 (topic branch) 작업하지 않고 master 에 모든 작업을 행한게 상당히 아쉬웠다. 이왕 하는거 늦더라도 좋은 습관을 좀 익혔어야 했는데.. 점수에 눈이 멀어서ㅠ
그리고 rebase 에 대해서 이해를 충분히 하지 못한것도 아쉬운 점 중 하나였다. 물론 이번 시간만으로 rebase 를 마스터 하긴 불가능 했지만, 좀더 질문을 많이 했어야 했는데.. 아는게 없다보니 ㅠ

그래도 여러 좋은 팁들을 얻어갈 수 있는 매우 유익한 시간이였다. 이번 시간을 계기로 좀 더 git 과 친해지고 더 열심히 공부하게 될 계기를 얻게 된거 같다. 또한, 앞으로 Github 을 사용할때마다 어떻게 하면 내 코드를 추가할 수 있을까? 하는 생각을 하게 될 것 같다.

그리고.. 오늘의 득템..

오늘 얻은 스티커! bower 는 마지막 한장 남을걸 get!

ps1. 혼돈의 흔적들.. (링크)




Comments

Popular posts from this blog

[Book] 다양한 예제로 학습하는 데이터구조와 알고리즘 for Java

인사이트 에서 Java 를 이용한 자료구조 & 알고리즘 도서가 나온다는 소식을 듣고 기다리고 있었는데, 때마침 JCO 때 인사이트 부스에서 판매하고 있었다. 원래 사려고도 했고, 책도 몇권안남아서 보자마자 바로 구입! fig1. 책 이미지 기다렸던 책이기도 했고, 이참에 자료구조를 재대로 공부해보자 라는 다짐으로 읽기 시작했다. 찾아보니 원서는 Amazon 에서도 별점이 꽤 높아보였다. 아직 초반이지만, 읽으면서 아쉬운 부분을 먼저 좀 써 보려고 한다. 아무래도 많이 기대했던지라, 좋은점 보다는 아쉬운 점이 많이 눈에 보이게 된다. 1. Java 스럽지 않은 코드 인사이트에서 출판한 이 책은 C 버전도 있다. C 버전을 좀 봐야 알겠지만, 아마도 이 책은 C 기반으로 작성 된 후, Java 로 포팅 된 느낌을 강하게 받는다. 역자 서문에서도 저자가 C 기반의 코드로 작성해서 Java 스럽지 못한 부분이 있다고 말하고 있다. 그래도 네이밍 이라던지, 기본적인 코드 스타일이 전혀 Java 스럽지 못하다 보니 보는내내 좀 불편한 기분이 든다. (난 각 언어별로 스타일을 좀 중요시 보는 편이라 아무래도 눈에 많이 거슬리는 편이다.) 또한, 자료구조를 설명하는 과정에서 포인터 라는 단어가 많이 나타난다. 아무래도 C 로 설명한 부분을 Java 로 옮기다 보니 단어 선택이나, 표현방법에서 Java 로 표현하기 애매한 부분이 있는것으로 보인다. C 랑 Java 를 모두 공부했다면 그러려니 할 수 있는 부분이지만, Java 만 조금 알고 있는 상태에서 자료구조를 공부하기 위해 이 책을 구입했다면 아마 설명 부분에서 난해하게 느껴질 수 도 있다. 2. 예제 코드의 오류. 예제코드를 타이핑 하다보면, 스펠링이 틀리거나, 앞에서 소개한 메소드를 사용하는데 메소드명이 서로 다르다거나 하는 문제로 코드가 정상적으로 동작하지 않는 문제가 보인다. 이런 문제는 번역과정에서 조금 아쉬운 문제로 보인다. Amazo...

[Android Application Testing Guide] Chapter3 jar file

Android Application Testing Guide(에이콘) 3장 Sample 을 실행시키기 위해서는 libdummy-0.0.1.jar 가 필요한데, sample file 에는 프로젝트만 존재한다. 결국 jar 를 만들어야 되는데.. ant 빌드다. 어허허... jar 파일이 없으면 예제 진행이 어려우므로. ant build 한 jar 를 첨부. libdummy-0.0.1.jar download

[Python] Core Python Application Programming 예제 3-1 수정

코어 파이썬 애플리케이션 프로그래밍 146~7p 의 예제 3-1 코드가 정상적으로 동작하지 않는 이유는 아래와 같습니다. 문제가 되는 구간은 40~41 라인, 44 라인인데 라인 비교를 위해 38 라인부터 보면, 책의 경우, except ftplib.error_perm: print 'ERROR: cannot read file "%s"' %FILE if os.path.exists(FILE): os.unlink(FILE) else: print '*** Download "%s" to CWD'%FILE f.quit() 그러나 실제로는 아래와 같이 되어야 정상적으로 동작 합니다. except ftplib.error_perm: print 'ERROR: cannot read file "%s"' %FILE if os.path.exists(FILE): os.unlink(FILE) else: print '*** Download "%s" to CWD'%FILE f.quit() 이유인즉, 40~41 라인 코드가 다운로드 완료 if 문으로 동작해서 다운로드 완료 된 파일을 다시 삭제하기 때문입니다. 따라서 전체 동작하는 코드는 아래와 같습니다. #!/usr/bin/env python import ftplib import os import socket HOST = 'ftp.mozilla.org' DIRN = 'pub/mozilla.org/webtools' FILE = 'bugzilla-LATEST.tar.gz' def main(): try: f = ftplib.FTP(HOST) except (socket.er...