안녕하세요, 타이젠 개발자 윤진입니다.


소스콘 행사가 10. 27(화) ~ 28(수)에 열렸습니다.

화요일에 열린 키노트부터 시작하여 콘래드 호텔에 이틀동안 줄창 있었습니다.

흥미로운 이야기도 많이 듣고,

다양한 생각을 가지고 있는 사람들과 만난 즐거운 자리였습니다.

어마어마한 이력을 가지고 있는 사람들도 있고,

번뜩이는 재치가 넘치는 사람들도 많이 만났습니다.

둘다 가지고 있는 분들도 많더군요. 하핫.

역시 세상은 넓고 좋은 개발자는 많습니다.


국내에서 열리는 행사 뿐만 아니라 해외에서 열리는 행사에도 참가하고 싶어집니다.

그러기 위해서는 역시 부단히 영어공부를...

아... 할 게 너무 많습니다.


행사장 진입로


참가자 등록대


키노트 행사장 입구 & 발표자 등록대


아침 9시부터 등록이 시작되었습니다.

9시 30분쯤 행사장에 도착하니 이미 많은 사람들로 꽤나 붐비고 있었습니다.

참가자 등록대가 줄을 서서 잠시 기다렸다가 안내원에게 이름을 말했더니

발표자 등록대로 가라고 하더군요.


발표자 등록대를 지키고 계신 분은 "유우영"님이었습니다.

국내외 유명 개발자들과 두터운 인맥을 쌓고 계시더군요.

작년까지 공개SW 개발자대회의 운영에도 참여하셨는데요.

앞으로도 좋은 행사 많이 만들어주세요~


IoTivity 부스


Unity 부스


Wayland 부스


EFL 부스


키노트 행사장 앞에는 여러 개의 부스가 마련되어 있었습니다.

Social Web App Platform, JerryScript, GearVRf, IoTivity, Wayland, EFL 등의 부스가 있었는데요,

부스 근처에 있던 요기거리에 정신이 팔려서 부스를 제대로 구경하지 못한게 아쉽네요.

부스를 구경하는 사람들도 꽤 되어서 다른 사람 뒷통수만 신나게 찍고 왔습니다.


키노트 행사장


키노트행사는 10시에 시작되었습니다.

10시부터 12시까지 2시간이 좀 넘게 계속되었습니다.

흥미로운 내용이 보일 때마다 사진으로 열심히 찍었는데요,

집에 돌아와 사진을 살펴보니,

사진만으로는 무슨 내용이었는지 기억이 안나는 것도 있더군요.

아... 이 몹쓸 기억력...


키노트 진행자, Brian Warner


키노트 "오픈소스,소프트웨어 생태계의 핵심", 김영윤 상무님


"공유를 통한 새로운 가치 생태계 창조"


"안드로이드 플랫폼 확산 시장점유율 82.8%"


"기업의 오픈소스 프로젝트 참여도 증가"

"리눅스 총 참여 기업 1,200개사"


"소프트웨어 생태계 확산을 위한 오픈소스 전문 조직 운영"


"Web기반 플랫폼을 통해 다양한 IoT 기기로의 연결 확대"

그렇습니다.

결국 타이젠이 나올 수밖에 없습니다. :)


"오픈소스 활성화 및 개발자 교류를 위한 기회의 장 마련, 컨퍼런스 및 해커톤 등"


"오픈소스 확산을 위한 국내외 대학 과목, 세미나 운영"


아파치 부의장, David Nalley


"비영리 법인 아파치 재단"


"Meritocracy(실력주의), 프로젝트에 참여하는 사람이 결정한다"


"아파치 계층도 : 일반 유저 - 컨트리뷰터 - 커미터 - 프로젝트 매니져 - 멤버"


"모든 결정은 메일링 리스트로 이뤄진다"

"멤버의 지역이 제각각이므로 최소 72시간의 유예를 두어 의사를 결정한다"

"다수결로 결정된 사항을 거부할 수 있다. 다만 대안이 있어야한다."


"관대한 아파치 라이센스"


"아파치의 길"


"아파치 내부 프로젝트 168개"


"The Art and Science of Livecoding", Andrew Sorensen


http://extempore.moso.com.au/

앤드류는 즉석에서 비트가 넘실대는 연주를 시연했습니다.

이미 오스콘때도 라이브코딩으로 연주를 했었는데요,

한국에서도 그럴싸한 재즈를 보여/들려 주었습니다.

하나의 완결된 곡을 만들기 위해 도입부터 결말까지 디테일하게 코딩하더군요.

코딩과 음악을 연결한 시도가 굉장히 흥미로웠습니다.


"Back to the Future : 2015", 신정규님


"공유해도 코드 가치는 안 떨어집니다."

"세상엔 비슷한 삽질을 하는 사람들이 수없이 많습니다"


"8대 2의 법칙"(똥코드 vs 좋은 코드)


"프로젝트의 소스코드를 맹신해서는 안됩니다"


"오픈소스는 생각만큼 기여자가 많지 않습니다."


"git 프로젝트의 85%는 혼자 사용합니다."


"그래도 안 망하고 2년정도 알려지면 다양한 경험을 하게 됩니다"


"공공재로서의 도구 개발"


"예술가가 될 필요는 있습니다."


"오픈소스 활동은 취미로 할 것인지 일로 할 것인지 선택의 순간이 옵니다"


"구글은 스카이넷이야."


신정규 님은 오픈소스를 만들며 겪은 경험을 이야기해주셨습니다.

역시 자신이 직접 겪은 이야기를 사실감있게 풀어내는 발표가 재미있습니다.

참가자들의 반응도 굉장히 좋아서 중간중간에 빅웃음이 있었습니다.


"함께하는 즐거움", 김혜나양


"바느질회로 - 달팽이 라이트(기초회로)"


"오픈소스로 배워요"


"Git 오픈소스 마스터 획득"



김혜나양을 응원하고 싶다면 저 메일을 이용하시면 됩니다.

스팸방지를 위해 따로 적어놓진 않겠습니다. :)


Brian Warner, 김혜나양, Linus Torvalds


김혜나양이 리누스에게 8개 정도의 질문을 하였습니다.

리눅스에 대한 질문(펭귄 포함)도 있었고,

git에 대한 얘기도 있었습니다.

사실 리누스는 이런 류의 질문을 수천번은 족히 받았을텐데,

어린 소녀가 하는 질문이라 그런지 더 성의껏 대답해주더군요.


세 명의 좌담회를 끝으로 오전 행사가 마무리되었습니다.

소스콘 주최측에서 참가자들에게 무료점심식사 쿠폰을 주어 IFC몰에서 점심을 먹었습니다.

사람이 제일 붐빌 시간인데다가

소스콘 참가자들로 식당들은 인산인해로 붐볐습니다.


오후 첫번째 세션을 준비하고 계시는 박영주 수석연구원님


"Tizen Applications", 박영주 수석연구원님


"좋은 성능으로 다양한 프로파일에서 동작하는 웹앱"


"네이티브 웨어러블앱 개발, 4시간 / 개발자 한 명"


"흥미로운 프로토타이핑, 10시간 / 개발자 한 명"


"발표가 끝난 직후 인터뷰에 임하고 있는 박영주 수석연구원님"


"HTML5와 Tizen을 이용한 웨어러블 프로그래밍", 서영진님


"Tizen과 IoT"


"디바이스의 시대, 플랫폼의 시대 그리고 서비스의 시대"


"웨어러블의 역사와 현재"


"타이젠 2012년 1월 1.0 베타 발표"


"갤럭시 시리즈와 웨어러블 디바이스와의 연동"


"기어 개발자 사이트, http://developer.samsung.com/gear"


발표 중인 서영진님


"Cross-Device Convergence", 장경아 수석연구원님


"타이젠 영역 확장 중!"


"더 많은 디바이스에서 더 많은 태스크를 꿈꾼다"


"타이젠 패스"


"패스의 종류, Action PASS / Contents PASS / Identity PASS"


"작동원리, Toss > Stream > Act"


"Identity PASS, TV 채널 선택권"


"Tizen PASS의 시작은 Toss"


"Stream으로 데이터를 나누기"


"각각의 디바이스가 액션을 결정"


"Contents PASS로 미디어를 나누기"


장경아 수석연구원님의 발표를 끝으로 오후 세션이 끝났습니다.

타이젠과 IoT의 접점이 늘 궁금했었는데요,

오늘로서 그 의문이 상당수 풀렸습니다.

(타이젠 개발자라고 해서 플랫폼 전체를 다 아는 것은 아니라는...)

타이젠 3.0으로는 좀 더 재미난 것들을 해볼 수 있겠네요.



오후 세션이 끝나고 BoF가 진행되었습니다.

BoF는 발표자와  참가자들이 간단한 다과를 즐기면서 소통을 하는 자리인데요.

"Tizen 개발자와 함께 Tizen 수다 한 판!" BoF에는 박영주 수석연구원님과 제가 발표자로 참가하였습니다.

Tizen 테이블 참가신청이 빨리 마감되어 다행이었습니다(휴...).

아무도 신청을 안하면 어쩌나 걱정했었는데 타이젠에 대해 관심을 가져주신 분들이 계셨습니다. :)

양인환님, 신헌섭님, 이영종님, 이영호님, 박준철님, 김성원님, 이주완님.

함께 해주셔서 감사합니다.


간단하게 쓰려고 했는데 괜히 길어졌네요.

긴 글 읽느라 고생하셨어요.


감사합니다.

끝_

플랫폼의 특징을 기술하는,

추상화된 '멋진' 단어의 나열만으로는 플랫폼을 이해하기 힘들죠.


타이젠을 심도깊게 분석한 서적이 있으면,

당장 구매하여 보겠지만,

아직까지 그런 책이 나온 적은 없습니다.


그래서 결국 의지할 수 있는 것은 소스코드 뿐입니다.

마침 타이젠은 오픈소스이기 때문에,

공개된 소스를 다운로드 받아 살펴보죠.


안녕하세요, Tizen 개발자 윤진입니다.


타이젠의 소스는,

http://source.tizen.org에서 얻을 수 있습니다.


사이트에 가입 혹은 로그인 하지 않아도 소스코드를 볼 수 있습니다.

플랫폼을 개발하려면 막대한 자원이 필요할텐데,

아무런 조건없이 배포하고 있는 중입니다.



위에서,

SOURCE CODE 버튼을 누르세요.


아래처럼 ('15. 5. 17 기준) 3,507개의 git repository가 나옵니다.

갯수가 갯수이니만큼 로딩에 시간이 걸리네요.



특별히 살펴보고 싶은 repository가 있으면,

Ctrl-F로 찾아서 살펴보세요.


Tizen 오픈소스의 repository 이름은 디렉토리 구조를 따르고 있습니다.

예를 들면, adaptation/alsa-scenario-scm-data-o-base나 framework/web/webkit-efl처럼 디렉토리 구조를 가지지요.

따라서, 디렉토리 이름을 보면,

해당 repository의 성격을 어느 정도 유추할 수 있습니다.

3,507개의 repo.에는 총 19개의 카테고리가 있네요.

위의 그림에서 2~20번까지 임의로 나눈 카테고리에 모든 repo.가 분류될 수 있습니다.

2번 meta 카테고리의 경우,

분류가 애매한 repo.들을 몰아넣었습니다.


위의 분류를 보고 관심있는 git repo.를 받아볼 수 있도록 스크립트를 첨부합니다.

1. 첨부된 스크립트(우분투 기준)를 다운로드 받고,

get_tizen.sh

2. 스크립트에 실행권한을 주세요.

     # chmod +x get_tizen.sh

3. 그리고 실행을 합니다.

     # ./get_tizen.sh

그러면 아래와 같은 화면이 나옵니다.

관심가는 카테고리 번호를 입력합니다.

그러면, 현 위치(Working directory)에 "tizen"이라는 하위 디렉토리를 만든 후,

그곳에 카테고리에 해당하는 repo.를 다운로드 받습니다.


만약, 모든 소스에 관심이 있어서,

"1. all"을 선택한다면,

정말...

오랜 시간이 필요합니다.

이 글을 쓰기 시작하기 2시간 전에 이미 clone을 걸어놓고 있지만,

이제 겨우 1000개를 clone 받았습니다.


* 2015. 5.18 추가

"1. all"로 전체를 내려받으니 대략 24시간이 걸렸습니다.

컴퓨터 성능이 상당히 저사양이기도 하고 전송속도도 느렸기에 시간이 꽤나 소요되었죠.

총 3,097,632개 파일, 37.4 GB.


보통 git을 이용하여 clone을 하면,

디렉토리 구조의 이름 중 최하위 디렉토리 이름으로 디렉토리를 생성하여 소스를 다운로드 받습니다.

예를 들어, framework/web/webkit-efl repo.를 clone받으면,

"webkit-efl"이라는 디렉토리가 만들어져 소스가 다운로드됩니다.


하지만, 3,507개의 repo.중에는 최하위 디렉토리의 이름이 동일한 repo.가 많습니다.

그럴 경우, 서로 다른 repo.임에도 같은 디렉토리에 위치하게 되어 제대로 다운로드 받을 수 없습니다.

따라서, 스트립트에서는 디렉토리를 생성할 때, 디렉토리 이름을 통째로 사용하도록 만들었습니다.

다만 '/'를 '.'으로 변경하여 다운로드하게 하였습니다.

곧, framework/web/webkit-efl은 framework.web.webkit-efl 디렉토리에 다운로드됩니다.

이로써, 중복없이 3,507개의 repo.를 모두 다운로드 받을 수 있습니다.


clone을 하는 중에 이미 다운로드받은 repo.가 있으면,

굳이 clone을 다시 하지 않고, pull을 하도록 하였습니다.

다만, 이 경우에는 받고 싶은 코드의 branch를 사용자가 체크아웃 해줘야 제대로 동작합니다.

모든 repo.에 대해 동일한 branch를 보도록 수정하고자 하였으나,

최신 branch가 repo.마다 제각각이라서 이 부분은 스크립트 사용자에게 자유도를 부여합니다. :)


* 추신,

만약 첨부된 스크립트가 제대로 동작하지 않거나,

repo. 갱신으로 인하여 스크립트가 변경되어야 한다면 답글주세요.

가급적이면 빨리 수정하도록 하겠습니다.



  1. developer 2016.09.22 19:01

    멋진 설명 감사합니다.

+ Recent posts