2013 DevFest W Seoul

내 이야기 2013.03.03 17:52 |

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가지가 확실히 정해졌네요!

저작자 표시 비영리 변경 금지
신고
Posted by Code-Moon

댓글을 달아 주세요

  1. 2013.03.09 09:49 신고 Address Modify/Delete Reply

    ㅋㅋ 선배 저 해인이에요
    검색하다가 우연히 발견했어요
    역시 다녀오셨군여^*^ 전 오늘 부산지역 참석하러갑니당^^
    못뵌지 엄청 오래됐네요ㅋㅋ 다음에 기회되면 꼭 한번 뵈어요~

    • BlogIcon Code-Moon 2013.03.10 10:55 신고 Address Modify/Delete

      오호~ 검색했는데 아는 사람 블로그 나오면 좋지.ㅎㅎㅎ
      댓글 남겨줘서 고마워,ㅎ
      열심히 하고 있지?ㅎ
      진짜 담에 기회되면 꼭 보자.ㅎㅎ

2010년 10월 27일 수요일 구글에서 주최하는 "2010 안드로이드 개발자 랩"에 다녀왔습니다.


서울시 강남구 역삼동 리츠칼튼 호텔에서 열렸는데요, 부산에 사는 관계로 그 전날 상경해야 했습니다.^^
오후 1시부터 시작인데, 성남의 꿀잠 연구소에서 열심히 잠을 자다보니 어느새 12시 30분이 다 되었더군요-_-;;
친구랑 부랴부랴 준비해서 거의 2시가 다되어 행사장에 도착했습니다.^^

도착해보니 이미 세션이 진행 중이더군요..



첫 번째 세션은 "안드로이드 플랫폼 및 마켓에 대한 최신 정보 소개"였는데요,
늦게 오는 바람에 제대로 듣지도 못한 것도 있고, 그렇게 크게 산뜻한 내용은 없었던 것 같군요.

아, 그리고 발표는 거의 대부분의 외국분들이 해주셨는데, 영어를 사용하셨습니다. 
하지만, 구글답게 동시번역을 해주시더군요.ㅎ

한쪽 귀로는 발표자가 말하는걸 듣고, 다른 한쪽 귀로는 한글로 번역해주는 내용을 들으려고 했으나,, 익숙하지 않더군요-_-;;
그래서 거의 번역에만 의존해서 발표를 들었습니다.
번역해주시는 분의 실력이 굉장하더군요,;; 발표자가 말을 하고있는데 동시에 번역을 해주시다니..ㄷㄷㄷ

그리고 곧이어 두번째 세션이 시작되었습니다.

두번째 세션은 "UI 디자인 패턴과 애플리케이션 개발 팁"에 대한 내용이었습니다.
중국 분이신가? 라고 생각이 드는데,, 상당히 젊어 보였구요, 유머도 갖추신 분이었습니다.

세션의 내용에 있어서는 앞부분은 너무 일반적인 내용들이었던 것 같습니다. 누가 들어도 당연한 UI 디자인과 관련된 내용들이라 좀 따분했구요. 
뒷 부분은 성능 개선과 관련된 내용이었는데, 다른 분들은 어떻게 들으셨을지 모르겠는데 저한테는 좋은 내용이었던 것 같습니다. 
onDraw() 같은 on...메서드에서는 객체를 생성하지 말라는 내용이 있었구요.
보통 ListView를 사용할 때 Adapter에서 getView() 메서드를 오버라이드해서 많이 사용하는데요, 이 때 어떻게 사용하는 것이 성능의 측면에서 더 좋은가를 알려줬습니다. 
가장 쉬운 방법과 조금 더 개선된 방법, 그리고 더 추천하는 방법으로 나눠서 보여줬는데요, 확실히 성능이 많이 개선되는 것을 봤습니다.

두번째 세션도 좀 아쉬운게 세션의 내용이 대부분 developer.android.com 에 있는 것 같았습니다.
그래서 크게 얻어가는게 없다는 느낌이 들었구요..


두번째 세션을 마친 후에 20분 정도 휴식을 취하며 커피와 다과를 즐겨라고 하더군요..ㅎ
쉬는 시간을 틈타 앞쪽에 계시던 분들이 몇분 가시길래, 앞쪽으로 자리를 옮겼습니다.ㅎ
그러는 바람에 좀 늦게 나와서 준비되어있던 과자가 하나도 안보이더군요ㅠ_ㅠ

입구에는 안드로보이 2명(?)이 있었는데, 사람들과 사진도 찍고 등짝에 보니 QR 코드가 있더군요..ㅎ
찍을려고 노력했는데 어찌나 움직이는지-_-;;;
결국 못찍었습니다.ㅠ_ㅠ

이리 저리 돌아다니다 보니, 어느새 과자를 보충해주시더군요.ㅎㅎ
아침은 먹지도 못하고 점심을 간단하게 김밥 한줄로 해결한 뒤라 배가 엄청 고파서 우리는 과자 옆에서 자리를 비우지 않았죠..ㅎㅎㅎ


그렇게 휴식 시간이 끝나고 세번째 세션이 시작되었습니다.
세번째 세션의 주제는 "안드로이드 마켓 라이센싱"이었습니다.

한번도 안드로이드 마켓에 올려본 적이 없어서 마켓 라이센싱은 조금 생소했습니다.
듣는 내내 DRM과 관련된 내용인가? 라고 생각을 했습니다.
지금도 그런 내용이었을거라 생각하고 있구요-_-;; (아마 맞을 겁니다.^^)
LVL이라는 용어가 계속 나왔었는데, 지금은 잘 모르겠지만 얼마 뒤엔 저도 안드로이드 마켓에 앱을 올려야하기에 그 때쯤엔 알게 되겠쬬^^


네번째 세션은 "안드로이드 NDK 및 C++ 개발 정보"에 대한 내용이었습니다.

여기에서는 안드로이드에서 C++코드를 사용하기 위해 JNI라는 기술을 사용하는데, 이를 사용하기 위한 방법을 알려주었습니다. C++와 자바는 서로 장단점이 있기 때문에 JNI를 이용해서 그 장단점을 상호 보완할 수 있는 거죠.
C++은 속도가 빠른 대신 JAVA로 쉽게 구현할 수 있는 부분도 복잡하게 구현하게 된다는 단점이 있습니다. 또 안드로이드에서 사운드는 자바에서 구현되어 있기 때문에 C++에서는 사운드를 사용 못한다고 하더군요.
어쨌든 그러한 장단점을 보완하기 위해 JNI를 사용하는데, 이를 사용하기 위해서는 자바에서는 C++의 클래스를 인터페이스화해서 받아올 필요가 있고, C++코드는 라이브러리로 변환을 하는데 변환을 위해서 make를 이용하게 되고 그 결과로 so파일이 만들어 지더군요.
자세히는 모르겠지만, 아마 developer.android.com에 가면 다 있을 듯 합니다.^^

다섯 번째 세션은 구글의 애드센스 팀에서 나와 "구글 광고를 활용한 모바일 트래픽 수익 극대화 방안"에 대해 이야기를 해줬습니다. 아무래도 돈과 관련된 이야기이다 보니 눈이 휘둥그레지더군요..ㅎ

이번 세션에서는 애드센스로 돈을 많이 번 사람들이 꽤 많다며 우리를 유혹했고, 지금은 모바일 광고를 통해 더 큰 수익을 얻을 수 있다며 유혹했습니다. ㅎ
여기에서 새로 알게된 것은 Home Ads라는 건데, 개발자가 두개 이상의 앱을 개발했을 때 그 앱들이 서로 홍보를 해줄 수 있는 것 같습니다. 뭔가 완벽하게는 이해가 안되서 나중에 다시 알아보려고 이름만 알아뒀습니다.^^
어쨌든 애드센스와 애드몹을 통한 광고가 생각하는 것처럼 그렇게 단순하지는 않고 개발자가 충분히 잘 활용할 수 있게끔 되어 있었습니다.


마지막 세션에서는 "웹에서 안드로이드로"라는 주제로 네오위즈에서 나오셨는데요.
10분의 시간이 주어졌더군요..ㅎ
이분의 말씀은 한마디로 "웹을 하던 사람한테 안드로이드는 날로 먹는거다."라는 것이었습니다.
맞는 말인 것 같더군요.^^



마지막으로 발표자분들께서 앞에 나오셔서 질문을 받는 시간을 가졌습니다.

질문도 답변도 모두 동시번역을 해주시더군요..ㅎ
저로서는 처음 경험해보는 동시 번역이 참으로 신기하더군요.


그렇게 질문의 시간도 끝나고, 5시간 동안의 "2010 안드로이드 개발자 랩"이 막을 내렸습니다.
아래 사진은 마지막으로 나오면서 찍은 사진이구요.


그리고 나오면서 설문조사지와 네임택을 반납하니 기념품을 주시더군요..ㅎㅎ

안드로이드 개발자 랩 긴팔 티셔츠와, 안드로보이 열쇠고리, 구글 귀도리 이군요.ㅎ.ㅎ

전반적으로 안드로이드 개발자 사이트에서 볼 수 있는 내용이었던 것 같아서 조금 아쉬웠구요.. 구글에서 주최하는만큼 평소에 들을 수 없고, 산뜻한 정보를 원했는데 그런 부분에 있어 제 기대를 다 못채워준 것 같네요.
그래도 동시번역과 새로 알게된 정보(저한테만 새로운 정보일 수도...ㅎ)도 있어서 좋았구요, 기념품도 만족스럽습니다.^^
저작자 표시
신고
Posted by Code-Moon

댓글을 달아 주세요

저번 포스팅에서 마지막에 저장소의 위치로 구글 프로젝트를 사용했었다. 그래서 이번에는 구글 코드의 프로젝트 호스팅을 이용해서 어떻게 프로젝트를 생성하고 사용하는지 알아보겠다.

먼저 구글 코드 사이트(http://code.google.com)로 이동하자.
여기에는 여러가지 서비스들이 제공되는데 우리는 프로젝트 호스팅을 사용할 것이다.


추천제품에 보면 프로젝트 호스팅 메뉴가 있는데 이를 클릭하자.
프로젝트 호스팅으로 들어가면 화면의 오른쪽 편에 2. 오픈소스 프로젝트에 참여합니다. 를 클릭하자.

그러면 Getting Started페이지로 이동하게 되는데 이 화면에서 조금만 아래쪽으로 내려가 보면 create project라는 링크가 있다.




이 링크를 따라가면 프로젝트를 생성하는 화면이 나온다.



project name : 프로젝트의 이름으로 사용된다. 영어 소문자로 시작하고, 그 뒤에는 영어 소문자, 숫자, - (빼기)만이 올 수 있다. 스페이스라든지 한글, 영어 대문자 등은 프로젝트 이름으로 사용될 수 없다.

project summary : 프로젝트에 대한 요약이다. 이 부분은 최소 몇 글자 이상 적어야 create project 버튼이 활성화 된다.

project description : 프로젝트에 대한 세부 설명이다. 이 부분도 몇 글자 이상 적어야 create project 버튼이 활성화 된다.

version of control system : 프로젝트 저장소의 타입이다. svn을 사용할 것이므로 subversion을 선택한다.

source code license : 라이센스를 선택하는 부분이다. 아무거나 선택해도 무방하다.

project labels : 블로그의 태그와 비슷한 개념이다. 다른 사람들이 검색해서 찾을 수 있게 키워드를 적는 곳이다.

위의란을 모두 제대로 입력했다면 create project버튼이 활성화될 것이다. 만약 create project버튼이 비활성화 상태라면 project summary나 project description을 더 길게 해보거나, project name이 유효한지 확인해 봐야 한다. (project name이 유효하지 않다면 바로 오른쪽에 빨간색으로 경고 메시지가 뜰 것이다.)

create project버튼을 이용해 프로젝트를 생성했다면 새로운 페이지로 넘어갔을 것이다. 이제 저장소의 주소를 알아야 한다.


source를 눌러서 이동하면 두개의 주소가 나올 것이다.

첫번째 주소는 https로 시작하고 두번째 주소는 http를 사용한다는 차이인데, 두번째 주소는 read만 가능하고 첫번째 주소로는 commit을 통해 코드의 내용을 수정하는 것이 가능하다.
따라서 우리는 첫번째 주소를 사용할 것이다. 이 주소를 이클립스에서 저장소 주소로 넣으면 된다.(https://donxu.googlecode.com/svn/trunk/)
그리고 저장소에 접속하기 위해서는 아이디와 비밀번호가 필요한데 아이디는 자신의 구글 아이디가 되고, 비밀번호는 자신의 비밀번호가 아니다.!!!
비밀 번호는 위의 그림에서 보이는 googlecode.com password.를 클릭하면 나오게 된다.


이렇게 만들어진 구글 프로젝트의 저장소를 이용해서 팀 프로젝트를 수월하게 진행할 수 있다. 물론 공개되면 안되는 프로젝트라면 이 저장소를 사용하는 것에 대해 조금 더 신중을 기울여야할 필요는 있을 것이다.
신고
Posted by Code-Moon

댓글을 달아 주세요

티스토리 툴바