본문 바로가기

내 이야기

2013 DevFest W Seoul

2013년 3월 2일. 학여울역 SETEC에서 열린 2013 DevFest W Seoul에 다녀왔습니다.

이번 2013 DevFest W Korea는 1주일 격차를 두고 서울과 부산에서 열립니다.

저는 서울에 참석하게 되었구요.^^



DevFest W Korea는 한국의 구글 기술과 오픈 소스에 관심이 많은 여성, 남성 개발자들이 모여 개발자로써 자신이 겪은 지식과 경험을 다른 개발자들에게 공유하는 "쿨한 개발자들의 컨퍼런스"입니다. 주로 Android, Chrome, Golang, Web(HTML5, JS), 오픈 소스에 대한 주제로 각 트랙마다 세션이 이루어져 있습니다.



먼저 트랙별 세션 소개입니다.


A 트랙

시    간

발표자

소속

발표 주제

10:00~10:50
(50분)

박성재

서울대학교

Let the contribution begin

오픈소스 프로젝트에 참여 시작하기

11:00~11:50
(50분)

허재위

GDG Korea Golang

Go for Java programmers

11:50~12:50
(1시간)

Lunch Time

12:50~13:40
(50분)

임유진(W)

Kakao

Android App을 TDD로 개발하기

13:50~14:40
(50분)

이원제

Veckon

WebRTC

14:40~15:10
(30분)

Big Break

15:10~16:00
(50분)

장현정(w)

오픈스택 커뮤니티

오픈소스로 구축하는 클라우드 이야기

16:10~17:00
(50분)

문현경

GDG Korea Chrome

Yeoman 으로 Chrome Extension 만들기


B 트랙

시    간

발표자

소속

발표 주제

10:00~10:50
(50분)

김경미(w)

Neowiz Internet

구글인앱빌링 사용 모듈 구현사례

11:00~11:50
(50분)

박영훈

Kakao

안드로이드 커스텀 레이아웃 구현하기

11:50~12:50
(1시간)

Lunch Time

12:50~13:40
(50분)

홍영기

LG전자

Views, Aura and Ash: ChromeOS UI Framework

13:50~14:40
(50분)

김태웅

레스코드

How to live like a Goer

14:40~15:10
(30분)

Big Break

15:10~16:00
(50분)

고재도

Korea AngularJS User Group

Google의 JavaScript Framework인 AngularJS 시작하세요!

16:10~17:00
(50분)

김종민

GDG Korea Golang

Concurrency is not Parallelism / Go Concurrency Patterns



저는 위 테이블 중 노란색으로 칠한 세션을 들었습니다.



각 세션의 내용을 정리하기에는 제 지식 수준이 부족한 부분이 있고, 부분 부분 확실하게 공유할 수 있는 부분에 대해서만 정리를 하려고 합니다.


Let the contribution begin

일단 첫번째 세션의 박성재님께서 오픈 소스 프로젝트에 공헌하는 방법을 알려주셨습니다. 과정은 그렇게 복잡해보이지는 않더군요.

박성재님께서 발표하신 일반적인 오픈 소스 프로젝트에 공헌하는 프로세스입니다. 


1. 소스 코드를 다운 받는다.

2. 목표를 정한다.

3. 코드를 수정한다.

4. 패치를 보낸다. 

5. 리뷰를 받는다. 


일단 git이든, svn이든 소스가 올려져 있는 곳에서 코드를 다운받고, 어떤 부분을 수정할 지 목표를 정합니다. 

이 때 초보 공헌자는 처음부터 목표를 너무 크게 잡지 말라고 하시더라구요. 

특정 부분의 설계가 확실히 잘 못되었다 하더라도 처음부터 설계를 수정하려하면 안된다는 것 입니다. 그 이유인 즉, 설계를 수정하려는 contributor가 앞으로 어느정도 공헌을 할지 알지 못하는 상황에서 코드의 많은 부분을 수정하게 허락하기가 힘들다는 것이죠.


그래서 공헌을 시작하려면 프로젝트에서 사용하고 있는 코딩 규칙에 어긋나는 코드를 찾아서 패치하는 등 작은 부분부터 시작하라는 것입니다.


당연한 말이지만 코드를 받아서 브랜치를 만든 후 수정 작업을 진행하게 됩니다. 

수정이 완료되면 이에 대한 패치를 만들어서 메일로 관계자에게 보내면 된다고 합니다.

git에서 패치를 만드는 방법이 있더군요.

명령 프롬프트에서

git format -patch master..HEAD 

명령을 입력하면 마스터 브랜치부터 최근 작업 내역까지를 패치로 만들어준다고 합니다.


메일을 보낼 때에도 누구한테 보낼지 명확하지 않다면 

./scripts/get_maintainer.pl 

명령을 입력하면 유저별 커밋 공헌 비율을 볼 수 있는 것 같았습니다.

이 공헌 정도를 보고 메일을 보낼 사람을 결정할 수 있다고 하더군요.


이렇게 간단한 방법으로 mailing 리스트에 가입되어 있지 않다 하더라도 누구든지 오픈 소스 프로젝트에 참여할 수 있다고 합니다.


How to live like a Goer

저는 Python이라는 언어가 c, c++, 자바 등의 언어에 비해 훨씬 간결한 코드만으로 많은 일을 할 수 있는 언어라고 알고 있었습니다.

그리고 성능도 괜찮다고 알고 있었는데 Go언어에 비하면 많이 약한가 보더군요.

Python은 기본적으로 멀티 코어 프로그래밍에 약한데 비해 Go는 여기에서 굉장히 강점이 있나봅니다. 그래서 같은 기능을 하더라도 코드는 훨씬 짧고, 성능은 100배 이상? 1000배 이상이었나? 그 정도의 차이가 난다고 하더라구요.


Go 언어를 시작해보고 싶으시다면 A Tour of Go에 들어가보시는 것도 괜찮을 것 같습니다. 이 사이트에 들어가시면 차례대로 Go언어에 대해 조금씩 살펴볼 수 있습니다. 

한국어 버전도 있군요! GDG Golang Korea에서 번역했다고 합니다. 

이런 일을 하고 계신 분들이 있다니 존경합니다!


그리고 어쩌다가 책 이야기가 나왔는지는 기억이 나지 않지만 Timothy Ferriss라는 저자의 책들에 대해 이야기를 했습니다.

The 4-Hour Workweek

The 4-Hour Body

The 4-Hour Chef


이 3권의 책인데요, 뭐 자세한 내용은 모르지만 좋은 생활 습관을 만들어서 성공할 수 있게 도와주는 그런 종류의 책인 것 같습니다.

The 4-Hour Chef를 제외하고는 한국어 번역판이 있습니다. 일단 한권이라도 볼 예정입니다. 어떤 책인지 궁금하네요.^^


정리

블로그에 내용 정리는 두개의 세션에 대해서만 했지만, 나머지 세션들도 괜찮았습니다. 

크롬 OS의 대략적인 구성도 알 수 있었고, AngularJS라는 것도 살펴 볼 수 있었고, YEOMAN,, 뭔지 정확힌 모르겠지만 어쨌든 웹앱을 만들 때 필요한 여러가지 작업을 쉽게 해주는 도구인 것 같은데 그런 것도 볼 수 있었습니다.


우리 나라에 생각보다 오픈 소스에 관심있는 사람들이 많이 있고, 생각보다 이미 많은 활동들을 하고 있었습니다. 

저도 하고 싶어하고 있지만 아직은 시작하지 못하는 일을 먼저 하고 계신 분들에 대해 존경심을 감출 수가 없네요. 

그리고 생각보다 여러 그룹이 만들어져 있는 것 같고, 세계적으로 소프트웨어를 발전시키려는 노력 뿐만아니라, 우리나라의 소프트웨어 기술을 발전시킬 수 있는 노력들도 많이 이루지고 있었습니다. 



저도 빨리 실력을 키우고, 소프트웨어의 발전에 공헌해야겠다는 생각을 많이 하고 있었습니다. 

소프트웨어를 통해 수익을 내는 것도 아주 중요하지만, 그 이상의 가치를 만들어 내고 싶다는 생각을 많이 해보고 있었습니다.

지금까지는 그렇게 하고 싶었지만 방법을 몰랐었다면 이번 DevFest를 통해 여러가지 방법들을 보게되었습니다.

  • 기존 오픈 소스 프로젝트에 참여
  • 외국 문서의 번역 작업
  • 새로운 오픈 소스 프로젝트를 생성하고 주도하기

일단은 제가 앞으로 해야할 것들 3가지가 확실히 정해졌네요!