BLOG main image
WonJae Lee

분류 전체보기 (544)
diAry - 日記 - 일기 (283)
Lecture & Tip (92)
Favor (164)
nutra forskolin
超울트라판..
potty training chart
超울트라판..
251,838 Visitors up to today!
Today 8 hit, Yesterday 36 hit
daisy rss
tistory 티스토리 가입하기!
Daum view
'Google'에 해당되는 글 14건
prev"" #1 #2 #3 next
2013.04.02 14:30

Veckon 서비스는 WebRTC 기술을 사용한 서비스입니다.


WebRTC에서 NAT 내부에 존재하는 Peer간의 연결을 위해서는 STUN/TURN 서버가 필요해 저희는 임시적으로 구글의 public stun server를 사용하고 있었습니다. 하지만 아래와 같은 이유로 자체 서버를 확보하지 않으면 안되게 되었습니다.


1) 거대 시장인 중국에서 구글 서비스가 되지않아 public stun server로의 접근이 되지 않음. -> 구글이외의 STUN Server Service가 필요.

2) NAT에 설치된 방화벽중 일부에서 STUN 으로도 연결이 불가능한 경우 발생. -> TURN 서버 필요.


위와 같은 이유로 결국 TURN 서버를 자체 구축하기로 결정하였습니다.

그래서 일단 webrtc forum에서 활발하게 언급되어지고 있는 http://code.google.com/p/rfc5766-turn-server/ 를 사용하기로 했습니다.


간단히 TURN 서버에 대해 이야기하자면 P2P연결을 위해 NAT 내부망 Peer간의 연결을 도와주는 것이 STUN. 하지만 일부 경우에는 STUN으로 P2P가 불가능하여 중계서버가 Peer간의 통신 채널을 중계하게 되는데 이것이 바로 TURN. TURN 연결이 되면 엄밀히 말해 P2P 가 아니게 되는 것이지만 이는 일부의 경우에 해당하는 것이고, RTCPeerConnection 객체가 내부적으로 처리하는 것이기 떄문에 WebRTC API사용자 쪽에서는 P2P 로 봐도 무방하다고 생각됩니다. TURN 서버는 STUN/TURN 두가지 기능을 모두 지원하고 STUN 서버는 STUN기능만을 제공하기 때문에 TURN이 좀더 포괄적인 서버입니다.


서론이 길었으니 이제 설치를 해봐야죠.


1. Amazon에 ubuntu Instance를 생성합니다. 요건 너무나 잘 아실거라 생각되어서 일단 skip.


2. Instance에 ftp를 설치하고 http://code.google.com/p/rfc5766-turn-server/ 에서 download 합니다.

 - ftp 설치 ( #apt-get install vsftpd )


3. turn-server tar를 적당한 위치에 풀고 ./configure 후에 make 합니다. 저의 경우에는 configure 시에 openssl-devel package와 libevent2 package 가 필요하다고 하여 설치하였습니다. openssl-devel의 경우에는 apt-get 으로 쉽게 설치가능했지만 libevent2의 경우에는 따로 소스를 받아 빌드를 해야했습니다. 아래는 제가 참고한 libevent2의 설치법입니다.

 - libevent2 설치 : https://docs.aerospike.com/display/AS2/C+-+Libevent2/


4. 설치가 완료되면 바로 turnserver cmd로 실행이 가능합니다. 하지만 TURN서버 기능을 작동시키기 위해서는 user credential이 필요합니다. STUN의 경우에는 서버 초기 연결 중계만 하면 특별한 트래픽없이 지원이 가능해 부담이 없지만 TURN의 경우에는 Data 송수신까지 중계하기 때문에 서버에 부담이 되고 비용도 발생합니다. 그래서 TURN서버 기능을 위해서는 user credential을 생성해서 실행시켜야합니다. 

 - turnadmin 을 사용하여 user credential생성이 가능합니다. 하지만 동적인 key의 생성과 유저관리를 위해서는 postgress나 mysql에 저장된 유저 정보와 연결을 해서 사용하는 것을 추천합니다.(이 부분은 다른 포스트에서 다시 설명하겠습니다.)


5. turn 서버를 실행시키면 이제 한가지 넘어야할 장벽이 있습니다. TURN은 다른 peer들을 중계하는 입장이기 때문에 NAT외부에 존재하여야합니다. 한마디로 공인 IP가 필요합니다. 하지만 Amazon인스턴스는 EC2 의 NAT안에 존재하기 때문에 turn서버 설정시 external에서 접근 가능한 public ip를 할당해줘야합니다. 만약 그냥 실행 시키면 Amazon인스턴스의 private ip로 turn server가 실행이되어 외부접근이 불가능합니다.


그래서 인스턴스 콘솔창에서 아래와 같은 방법으로 public ip를 확인해서 turn 서버를 실행시킵니다.


curl http://169.254.169.254/2009-04-04/meta-data/public-ipv4


turn 서버를 실행시에는 turnserver -X <public_ip>를 설정하여 수행하시면 됩니다.


5. 이게 끝일까요? 가 아니고 turn 서버를 위해 amazon 인스턴스에 방화벽 구멍을 내주어야합니다. 방화벽설정은 EC2 management의 Security Group관리에서 설정가능합니다. 기본적으로 TCP/UDP 양쪽 Custom rule에 3478번을 열어줍니다. 3478은 turnserver의 연결 Default port입니다.

만약 turnserver 연결 포트를 변경하셨다면 당연히 여기도 바뀌어야합니다. 그리고 turn server가 relay를 위해 사용하는 udp port range를 잡아줍니다. 자기가 알맞게 적당히 설정하시면 됩니다.(ex : UDP 51000 ~ 52000)


6. User credential, Public IP, 방화벽 설정이 완료되면 드디어 TURN서버를 구동할 준비가 된것입니다.

이후 TLS/DTLS 기능을 위해서는 해당 사용 port를 다시 열어주어야하지만 제가 서비스하는 WebRTC에서는 TLS/DTLS지원이 아직 확정이되지 않아 이정도만 합니다


#turnserver -X <public_ip> --no-tls --no-dtls --min-port 51000 --max-port 52000 -o -u <userid:password> -r <realm> -a


위와같이 실행하시면 아래와 같이 나오면서 서버가 동작합니다.


RFC 5389/5766/6062/6156 STUN/TURN Server, version Citrix-1.7.2.0 'Superior Glokta'

File found: /usr/local/etc/turnserver.conf

File found: /usr/local/etc/turnserver.conf

File found: /usr/local/etc/turnuserdb.conf

===========Discovering listener addresses: =========

Listener address to use: 127.0.0.1

Listener address to use: xxx.xxx.xxx.xxx

Listener address to use: ::1

=====================================================

===========Discovering relay addresses: =============

Relay address to use: xxx.xxx.xxx.xxx

=====================================================

IO method (listener thread): epoll


이상 TURN서버 설치기를 마무리합니당~


부족한 내용이나 조언 감사히 받습니당 :-)







komzirak | 2014.10.06 10:47 신고 | PERMALINK | EDIT/DEL | REPLY
안녕하세요.
TURN 서버 EC2 Type은 어떤 것으로 하셨나요? 그리고, 혹시 운영하시면서 발생한 문제는 없으셨나요?
nurinamu | 2014.10.06 14:30 신고 | PERMALINK | EDIT/DEL
현재 c3 종류로 사용합니다. TURN을 Geo Route와 함꼐 사용하느라 여러대를 돌리고 있습니다. 그래서 지역별로 장애가 발생하는 지역에 따라 인스턴스 레벨을 올립니다.
rafael | 2014.10.07 19:12 신고 | PERMALINK | EDIT/DEL | REPLY
그러면 아마존에 TURN 서버를 지역별로 1대만 운영하시고 계시나요?
장애에 대한 즉각적인 자동화 대응을 위해 2대를 운영하고 1대 장애 발생시 다시 launching 하려는 방법을 고민중인데요.
그리고 TURN 서버 장애판단은 어떻게 하시는지 궁금합니다.
| 2014.11.19 11:29 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
nurinamu | 2015.01.09 15:07 신고 | PERMALINK | EDIT/DEL
아고 답변이 늦었습니다; 요새 블로그할 시간이 없어서;;
webrtc 서비스를 위해서 시그널서버는 필수이고
STUN,TURN은 선택입니다.
P2P가 아닌 중계상황에 대한 처리를 안하시려면 STUN만으로 충분하며, STUN서버는 공개된 것들이 많기 때문에 굳이 만들지 않으셔도 됩니다. :-)
Name
Password
Homepage
Secret
2013.03.27 11:30

드디어!! 

2013년 Google IO 신청을 앞두고 10여개월만에 작성하는 2012년 Google IO 잔여 후기! ㅋ

정말 나의 게으름 병이란 ㅋ

마치 어제 다녀온거마냥 능청스럽게 작성을 해보겠습니다 :-)


타임머신 고고!

-----------------------

IO 둘째날. 샌프에 기거한지 넷째날. 벌써 샌프에 적응이 되었는지 잠도 꿀잠이고 눈도 새벽에 번쩍 떠져서. 내친김에 새벽에 주변 탐색을 해보기로 했습니다. 이번에는 아침에 제대로된 햄버거를 먹어볼까 하는 마음에 ㅋ.

몇블럭 아래로 내려가다 풍기는 이 따스하면서 달콤한 향기!


바로 도너츠 향기였습니다. 아침에 방금 구운 도넛 향기가 마치 미국 드라마에서 커피와 함께 한입베어물고 거리를 활보하는 뉴요커가 연상됩니다.

따지고 뭐고 햄버거 탐방은 버리고 일단 도너츠사러 고~

다 먹음직 스럽게 생겼고 또 행사장에 있을 일행들과 함께 먹기 위해 넉넉하게 사가지고 갑니다.

전 어린이 입맛이라 커피는 말고 네스퀵과 함께!


하지만 일행들과 함께 먹으려고 들고간 도너츠는 다들 간밤에 무엇을 하였는지 지각하여 반쯤은 GDG 라운지에서 다른 나라 개발자들의 위장속으로~ 사라졌다는 후문~ ㅋ


일단 아침을 해치웠으니 알차게 세션들을 들으러 이동!


<따뜻하고 정말 맛있었던 도너츠! 하지만 많은 이들에게 기쁨받지 못했던;;ㅠ.ㅠ>


<둘째날도 아니나 다를까 줄서기 대작전. 어제 있었던 황당한 새치기때문에 새로운 질서가 있을줄 알았으나 역시나 없음. 먼저가는 사람 임자 ㅋ>


<그래도 어제보다는 좀 질서정연한 상태, 아무래도 첫날 메인 키노트보단 둘쨰날이 인기가 좀 떨어지는 듯>


<둘째날은 웹세션이 메인이라 화면에서는 WebGL과 HTML5의 현란한!>


<이때만해도 잘 몰랐는데 나중에 보니 라이브 코딩이 아니고 동영상이었다는!>


<오늘 빅아저씨는 어제 공개한 글라스를 멋지게 끼고 등장! 2013년에는 이것을 과연 나눠줄지!>


<이어지는 크롬 발표!>


<메인 화두는 크롬의 디바이스별 포팅과 그로인해 가능한 유비쿼터스 크롬 기능들>


<결국 하고 싶은 이야기는 크롬을 통한 구글 클라우드 앱들의 접근! 클라우드 툴은 구글! 이란 이야기~>


<클라우드 세상을 더욱 빛내줄 크롬북과 크롬박스의 소개. 이때만 해도 크롬북을 나눠줄려나 했는데 현실은 크롬박스..ㅠ.ㅠ>


둘째날 키노트에서 다시 한번 더 스카이다이빙 쇼가 이뤄졌지만, 이미 전날 봐서 그런지 감흥이 좀 떨어짐.

그래도 글라스는 탐이 난다는! ㅋ


키노트를 마치고 각자 흩어져서 세션을 들으러. 전 일단 Go세션을 들으러! Rob Pike아저씨의 카리스마 발표를 듣고 나와 라운지서 일행들과

떠들다 보니 벌써 점심시간. 이때 커니가 작년 IO에서 만났던 위자드웍스 표철민 대표와 약속을 잡아 엉겁결에 같이 식사를 하러 :-)

그곳에 한분더 계셨으니 표대표와 함께 SNS유명인인 Mickey Kim님도! 사실 만나보니 연예인을 보는 것 같아서 제대로 이야기도 못해봤다는;; 지금 생각해보면 참으로 아쉬웠던 기회. 다음에 또 기회가 된다면 망설이지 말아야겠다 생각 ㅋ.


이렇게 운좋은 식사를 하였지만, 예상치 못하게 안타까운 소식을 들었으니...그것은..


<IO에 참석한 위자드웍스 표대표와 식구들, 미키 김, 커니, 나 , 무현! 피자가 맛있었는데 사진이 없다!>


<남들 다 찍는 인증샷을 빼먹으면 안되겠죠! 나 여기있었소~>


<구글 월랫을 이용한 팩맨게임, 실제로는 월렛동작 보다는 NFC인식해서 그냥 돌리고 있었음. ㅋ 열씨미 하면 경품을 주는줄 알았지만 아무것도 안주네 ㅋ>


<행사장을 날라다니는 쿼드로터, 안드로이드로 조종을 하고 있었고 로터에 달린 카메라로 바로 행아웃!>


<이것이 정녕 웹게임 이란건가! 툼레이더를 WebGL로 포팅. 우왕 그래픽짱! 라라짱!>


<위에 사진과 다르게 이것이 웹에서 돌아간다는 인증을 위해 브라우저 화면 찰칵!>


식사를 마치고 돌아왔을때 행사장에 남아있던 일행들에게 전해들은 안타까운 소식.

식사하느냐 제꼈던 안드로이드 세션에서 ADK 2.0 발표를 하면서 아두이노 보드를 나눠주었다는 ㄷㄷㄷ.

유명인과의 한끼 식사와 아두이노의 맞교환이라니..아쉽지만 ㅠ.ㅠ


<Dart Codelab 세션. 많은 사람들을 아우르기위해 난이도를 낮추었다는데. 너무 낮추었어..ㅠ.ㅠ>


<행사장에서 깜짝 만남을 가진 김책임님. 사업부 모델을 들고 오셔서 엄청 고생하시는 중. 한장 찰칵!>


첫째날의 에프터 파티와는 다르게 둘째날은 세션을 마친후에는 각자돌아가는 시간. 이날 소니에서 주최하는 애프터파티가 있어 일부 일행들은 그곳에 참석하러 일찌기 자리를 비웠습니다. 왜냐! 소니 구글티비 셋탑박스를 선착순 배분한다하여 ㅋ. 전 그것을 포기하고 범용이네 회사 탐방과 여기까지 왔으니 AT&T 파크에서 메이저리그 직관을 위해! 권부장님과 이동~


<범용이가 일하고 있는 Startup회사 - hearsaysocial : 부제 뿔난 범용? ㅋ>


<시간이 오후 5시 좀 넘었을 뿐인데 이미 대부분 퇴근을 ㅋ 부럽부럽인줄 알았으나 범용의 이야기로는 마케팅 파트자리라서 출근이 저녁 6시라는 ㅋ, 몇몇은 휴계공간에서 탁구를 치고 있었음.>


<요새 허리아픈 사람들이 많아서 유행한다는 스탠딩 데스크. 저떈 저게 뭐야 했는데, 요새 허리가 안좋아서 얼마나 좋은 아이디어인지 새삼 느끼는 중..ㅠ.ㅠ>


<스타트업과 레드불의 관계는 뗄래야뗄 수 없는 관계! 사이즈도 제일 큰 사이즈! ㄷㄷ>


<샌프의 대부분의 스타트업들이 제공하는 직원들의 푸드창고는 역시 대단한 듯. 뭐 한잔 얻어먹을까 구경중 ㅋ>


<탐방기념으로 맥주하나와 칩스를 가지고 찰칵!>


<우리에게 한창 회사 자랑 중이신 범용! 고마해라~ 안그래도 졌어!! ㅋ>


<AT&T PARK! 드디어 MLB성지에 답사를! ㅋ 사실 아는 선수 하나 없는 문외한으로써 그냥 큰야구장과 야구 본고장에 왔다는 감회만이 있었음 ^^>


<아차! 감회만 있었던 것이 아니고 이 멋진 맥주와 갈릭포테이토!! 멋진 장소에는 역시 멋진 먹거리가! ㅋ 맛있당~>


<정말 광활한 야구장의 모습에 뜨학하고 감격하고 직관!>


<5회말쯤인가 지나고 나니 피자타임이 시작~ 여기저기서 피자를 들고 있는 자원봉사자들이 막 피자를 나눠준다~ 조각도 아닌 한판을 ㅋ. 그라운드에서는 마스코트가 골프카를 타고 배달중 ㅋㅋ 사람들이 서로 받으려고 막 매달리고 재미있음 ㅋ>


<AT&T명물이라는 카약에서 홈런볼 잡기! 하지만 안타깝게도 3시간여의 경기동안 홈런은 하나도 없었음 ㅋ>


<역시 미국답게 화끈한 키스타임! 이양~ 나도 와이프랑 다시와서 찍힌다면! *^^*>


<직관을 마치고 아쉬움에 마지막으로 찰칵! 언제가는 가족들과 한번 다시 오리~>


신나는 초반의 직관 분위기와 달리 루즈한 게임덕 분에 야구 구경을 하면서 졸았습니다. 그리고 엄청나게 추운 날씨에 권부장님이 챙겨오신 담요가 없었으면 얼어죽었을뻔;;; 아니 여기 일교차는 왜이리 심한겨! 덕분에 몸이 으슬으슬 감기기운을 안고 숙소로 돌아왔습니다. 너무 추워서 빨리 가고 싶은 마음에 맥주한잔 더! 를 외치지는 못했습니다. 숙소로 돌아와서는 받아놓고 모셔놓기만 했던 장난감들을 펴쳐놓고 꼼지락꼼지락 하다가. 실신해서 잠들었습니다 :-)


<흔한 개봉기 흉내. 하지만 설명은 패쓰 ㅋ>


<이것이 IO Limited Version의 Nexus 7 White 버전! 이쁘긴한데 때가 좀 잘타는 것은 안자랑!>


<무료로 제공된 많은 잡지들! 아 그때 다 봐뒀어야했는데..ㅠ.ㅠ 한국에 들어오니 모두 사라져 볼 수가 없었던;;>


드디어 I/O 마지막날. 시간은 정말 빠른듯. 아쉬움이 한가득인데 벌써 마지막이라니! 동네 숙소에서 머물르던 커니와 무혀니 커플을 아침에 같이 만나서 모스코니로~. I/O도착전날 게이데이 행사로 시끌벅적했다는 광장앞에서 두 선남이 나란히 커플샷을 ㅋ


<하트 조형물 앞에서 다정하게 사진찍는 무현&태호 커플(?) ㅋ 이쁜 사랑하길 ㅋ 여기 도착 전날 게이축제가 한창이었다는데 하트앞에서 동성이 촬영하니 오해받기 쉽상 ㅋㅋ>


<날씨가 진짜 너무 좋음. 이런 날씨가 거의 일년 내내인 샌프란시스코! 너무 좋구나~>


<어제 저녁 약속때문에 하루 미뤄뒀던 크롬 박스 득템! 음 근데 우리회사 제품이긴하지만 포장 좀 이쁘게 해주지! 너무 삼성스러워;; 구글IO에서 받는건 모두 구글스러웠으면 했는데 아쉽>


<Go를 실제로 사용하는 업체의 Success Story를 소개하는 세션 중에 나온 Heroku! Ruby로 제작된 코어를 Go로 바꾸고 20배 이상의 성능 향상을 가져왔다고 자랑! 코어 모듈이라 진짜 그런지는 알 수 없지만 일단 Go가 우려와 달리 실제 사용이 가능한 만큼의 물건이 되었다는 반증. 하지만 맨 마지막 페이지에서 아직 성장중인 언어이기 때문에 참고 기다려 달라는 깨알 같은 Warnning ^^*>


<흥미로웠던 컴퓨트 엔진 세션. 엄청난 파워의 데이터 센터를 공개한 것은 정말 대단. 하지만 리얼타임 사용 안되는 것은 쫌 안대단 ㅋ>


<깨알같이 햄버거 점심 ^^* 난 역시 버거 매니아!>


<드디어 득탬한 젤리빈이 가득찬 안드로보이~! 물론 난 초록 안드로이드 하나 챙기고 나머지는 다른 사람들을 위해 예의상...이라기보다 가방이 꽉차서 더 이상 넣을 수 없었던 ㅋㅋㅋ>


<여기 행사장에 상거지 한명이 ㅋ 저 빈백 너~~~~~무 편해서 가져 오고 싶었는데 ㅋ>


I/O행사는 마무리가되고 전세계 각지에서 날라온 GDG 운영자들을 위해 구글에서 마지막 랩업시간을 만들어 주었습니다. 전 좀 늦게 들어가서 자세한 이야기들을 듣지는 못하고 마지막에 글라스에 대한 질문을 쏟는 운영자들의 몇가지 이야기만 줏어들었습니다. 역시 글라스가 주 관심이네요~.

안드로이드 API로 지원이되는 글라스 어서 한번 써보고 싶습니다!


<운영자들의 질문에 대답중인 패널들. 유명한 분들이 정말 한자리에!!>



<나를 찾아보세용~ ㅋ>


<Android  Application Development책으로 유명한 Meier아저씨와 찰칵>


<Dart 관련 글에서 하도 자주봐서 웬지 자주 만났던듯한 Seth Ladd를 처음(?) 봄 ㅋ>


<행사장 빈백정리하기전에 일본 GDG사람들의 빈백놀이 퍼레이드 ㅋ>


<이 샌드위치 놀이가 시작되면서 구경꾼들이 몰리기 시작 ㅋㅋ>


<결국 마지막  Doodle은 글로벌 놀이로 둔갑 ㅋㅋ 역시 이 동네 사람들 너무 Geek해 ㅋ>


<문닫는 행사장 웬지 쓸쓸하고 아쉬운. 다음에 또 보자고 모스코니~>


<그간 잘 지낸 숙소를 나와서 버스를 타고 범용이를 만나러 출발!>


I/O 다음날 하루 정도의 여유가 있어서 XOA의 영원한 동반자 범용군의 신혼(?)집에 놀러가기로 했습니다.


나름 집들이인데. 빈손이라 미안하지만 그래도 염치불구하고! 고고~









Name
Password
Homepage
Secret
2012.11.04 12:49

느뤼는 Google Korea에서 개최하는 2012년 Google HackFair에 참가를 위해 "WebRTC를 이용한 다중 화상채팅"을 준비하였습니다. 

이 준비 기간중 습득하게된 WebRTC에 대한 정보와 개인적인 고찰(!?)을 글로 남겨 봅니다.




WebRTC? - Web Real-Time Communication (http://www.w3.org/TR/webrtc/)

 - 말그대로 웹을 이용한 실시간 통신을 이야기합니다. 오잉? 그럼 이전에는 실시간 통신이 없었단 말인가? 하고 반문하시는 분들이 있을 텐데 차분하게 뒤쪽에서 기존의 실시간 통신들과의 차이점을 하나하나 알아보도록 하겠습니다. WebRTC는 현재 W3C와 IETF의 주도하에 WebKit API가 정의되어가고 있습니다. 링크로 들어가 확인해보시면 알 수 있지만 아직 진화중에 있습니다. Chrome에서 현재 가장 활발하게 진행중이기 때문인지 웹사이트도 그렇고 포럼도 그렇고 Googler 들이 주도적인 모습입니다.


WebRTC를 이해하기 위한 주변 필요지식들 

 - WebRTC를 이해하기위해 각종 문서들을 접하다 보면 보게되는 선수지식들을 정리해봅니다. 물론 제가 몰랐던 것들을 위주로 정리가 되었으니 이미 알고 계시다면 Pass!


1) GETUSERMEDIA (http://www.w3.org/TR/mediacapture-streams/)

 - WebRTC를 이용한 화상채팅에서 가장 기본이되는 Video, Audio Stream을 Webkit으로 부터 제공받는 API입니다. 만약 이것이 구현되지 않은 webkit browser에서 WebRTC 화상채팅 페이지를 접근하게 된다면....삐~ 동작이 안하게 됩니다. 현재는 Chrome, Safari, Firefox 가 지원됩니다.


2) SDP (Session Description Protocol , http://tools.ietf.org/html/rfc3264)

 - SDP는 각 Peer가 가진 세션의 정보들을 포함한 프로토콜입니다. 특히 제가 준비한 화상채팅의 경우에는 화상통신을 위한 Video, Audio Stream 연결을 위한 Peer Session 정보들이 담겨져 있습니다.


3) ICE (Interactive Connectivity Establishment , http://tools.ietf.org/html/rfc5245)

 - 위 링크를 따라 들어가면 ICE에 대한 장황한 설명이 들어있지만 요약해서 간단히 이야기한다면 네트워크상에서의 Peer간 응답 프로토콜입니다.

 다시 말해, 한쪽의 Peer가 다른 한쪽의 Peer에거 "Offer" - 전화를 겁니다. 그러면 "Offer"를 받은 Peer가 "Answer" - 전화를 받음으로써 서로 연결이 된다는 간단한 프로토콜입니다. 이때 연결은 서로의 SDP 정보를 교환함으로써 이루어집니다. 이미 VOIP서비스에서 사용되고 있는 Protocol입니다.


4) JSEP (Javascript Session Establishment Protocol , http://tools.ietf.org/html/draft-ietf-rtcweb-jsep-02)

 - Javascript session 정보를 ICE를 통해 통신하는 프로토콜에 대한 내용입니다. 아직 정의가 완료되지 않고 현재 진행중으로 2012-11 현재 02 버전이 나와 있습니다.


5) STUN Server (Session Traversal Utilities for NAT, http://en.wikipedia.org/wiki/STUN)

 - STUN 서버는 WebRTC를 이용한 Peer간의 통신 연결시에 내부 IP 또는 DHCP로 설정된 Peer가 Public 망에서의 연결이 가능하도록 해줍니다. 뒤에 예제를 들어가면서 설명할때 나오겠지만 인터넷 세상에 STUN Server 서비스를 무료로 제공하는 곳이 많이 존재합니다. VOIP등의 서비스를 위해 열려있는데 저는 구글에서 제공하는 STUN서버를 사용하였습니다.


자 위의 정보들을 대강이나마 머리속에 집어 넣으셨다면 거침없이 WebRTC에 대해 알아봅니다.


WebRTC는 HTML5와 Javascript를 통한 Webkit API를 사용하여 구현이 됩니다. 다시말해 WebRTC가 지원되는 Webkit Browser의 경우에는 화상 통신을 위한 추가적인 플러그인 설치없이 웹페이지에서 바로 접근 가능하다는 이야기 입니다. 현재 지원되는 Webkit Browser는 Chrome이 대표적이며 2012년 4Q또는 2013년 1Q에 Firefox, Safari가 지원될 예정입니다. 안타깝게도 IE는 아직 지원에 대한 소식이 없고, W3C에서 정의하는 표준과는 다른 표준안으로 구현될 것이라는 아주 MS스러운 루머가 돌고 있습니다. WebRTC가 브라우저 상에서 완전한 표준으로 자리잡게 된다면 Mobile 에서도 특별한 플러그인이나 앱의 추가 설치 없이 화상채팅 서비스를 사용가능하게 됩니다. 이런 Amazing한!


WebRTC는 P2P 통신을 사용합니다. WebRTC API에 정의되어있는 PeerConnection API를 통해 P2P통신이 가능하게 됩니다. 기존의 WebSocket은 웹서버와의 C/S 통신에 사용되었지만 PeerConnection은 Peer간의 MediaStream 공유를 가능하게 해줍니다. 제가 희망하기로는 FileStream까지 연결이 가능하다면 브라우저상의 토렌트가!? ㅋ 


자 이제 그럼 WebRTC 교양은 그만하도록 하고 실제 WebRTC 연결을 StepByStep으로 확인해보도록 하겠습니다.


1. 두 Peer간의 PeerConnection이 연결이되려면 SDP를 서로 주고 받아야합니다. 하지만 PeerConnection도 연결되지 않은 상태에서 상대방에게 정보를 전달하는 방법은 불가능 합니다. 이로인해 불가피하게 Peer사이에 ICE 통신을 가능하게 해줄 중계서버가 하나 필요합니다. 중계서버라고 해서 거창한 무엇인가가 아니고 단순 채팅서버와 같은 메세지 C/S 서버만 있으면 됩니다.  Google에서 기본 예제로 제공하는 (https://apprtc.appspot.com) 사이트에서는 이 중계서버를 GAE의 Channel API를 사용하였습니다. 저도 처음 구현시에 Channel API로 시작하였지만 GAE에서 제공하는 무료 Channel 생성 API 호출 횟수가 100번으로 제한되어있어 그냥 하나의 중계서버를 만들었습니다.





2. Peer간의 메세징 서버가 구성이 되었다면 이제 다음의 순서로 메세지를 주고 받습니다.



3. 이제 각 Peer간의 PeerConnection에 SDP 정보를 공유하면 연결이 끝!....이 아니고 이제 실제 연결은 ICE를 통해서 이뤄집니다.

PeerConnection을 생성할때 사용할 STUN Server의 정보를 입력하게 되어있는데 SDP 공유시에 이 정보도 공유가 됩니다. 그래서 ICE가 시작이되면 우선적으로 UDP를 통해 자신이 가진 SDP에 해당하는 상대방을 탐색하게 됩니다. 만약 UDP로의 탐색이 실패하게 되면 TCP로 HTTP, HTTPS 순으로 탐색을 다시 시작합니다. 이후 탐색이 완료가 되면 비로소 실제 PeerConnection간의 연결이 완료가 되어 상대방의 PeerConnection에서 받은 MediaStream을 사용할 수 있게됩니다.


이렇게 WebRTC에 대한 연결 방식까지 이해가 되셨으면 WebRTC를 처음 접하시는 분들의 바이블 Post인 HTML5Rocks의 Article(http://www.html5rocks.com/ko/tutorials/webrtc/basics/)을 참고해보세요.

다시 복습의 느낌으로 보게되니 느낌이 팍팍 오실겁니다.


아래 동영상은 HTML5Rocks에도 연결되어있지만 2012 Google I/O에서 발표된 WebRTC 소개 동영상입니다.




다음 포스트에서는 실제 HackFair에서 사용한 저의 코드를 보면서 1:1 P2P가 아닌 n:n P2P Trick까지 확인해보겠습니다.


아래는 HackFair에 제출한 WebRTC 동영상입니다. Draft 버전이었기에 UI가 ㅋ



Let's Hack!!





김코딩 | 2013.06.26 17:41 신고 | PERMALINK | EDIT/DEL | REPLY
webRTC를 막 공부하기 시작한 대학생입니다.! 너무나 귀한 자료 감사히 보았습니다~
잘보구가여 | 2013.06.26 21:55 신고 | PERMALINK | EDIT/DEL | REPLY
다음포스트는 언제업로드되나요??소스가 궁금해서요
nurinamu | 2013.07.22 12:58 신고 | PERMALINK | EDIT/DEL | REPLY
요새 정신없이 살다보니; 댓글 이제서야 확인했습니다. 다음 포스트 올리도록 노력하겠습니다~
정순 | 2013.09.25 17:55 신고 | PERMALINK | EDIT/DEL | REPLY
WebRTC 를 알기 쉽게 설명해주셔서 너무 감사하고 유익한 정보네요~~
혹 두번째 포스트는 계획이 없으신지 ㅜㅜ
nurinamu | 2013.09.26 10:51 신고 | PERMALINK | EDIT/DEL
이글을 쓴지 벌써 1년이 되어가려고하는 시점에 webrtc도 api업데이트도 많이 바뀌고 해서 api정리겸해서 올릴려고 생각중입니다. 하지만 이게 게으름병을 이겨내서 해야하는 거라..ㅠ.ㅠ 언제될지;
Name
Password
Homepage
Secret
2012.10.08 13:39

마치 어제 있었던 일처럼 작성해보는 무려 세달 전 후기 입니다! ㅋ


----------------------------------------------------------


Road to SanFrancisco for Google I/O 2012 #4


벌써 샌프란시스코에서 맞는  두번째 아침입니다!

어제 술 좀 한 잔 했겠다. 하루 지내봤다고 긴장도 풀렸겠다. 늦잠을 자고 말았습니다 ㅋ

모임이 8시반인데 눈뜨니 이미 7시반. 후다닥 준비해서 나옵니다. 숙소에서 오늘 모임장소 까지는 거리가 꽤 됩니다~



크게 보기


아침에 햄버거를 찾아 먹고 가면 늦을 것 같고 안먹자니 배고프고 해서 근처 마트에 들어갑니다. 역쉬 제가 좋아하는게 너무 많습니다. ㅋ

뭐를 아침으로 할까 고민하다 결국 미쿡 정크푸드 트윙키와 네스퀵 딸바맛!을 골라서 나옵니다~ 딸바맛 네스퀵! 우리나라에도 나오면 좋겠당~ 역시 천조국답게 사이즈가 커서 또한 귿! 열심히 먹고 마시면서 모임장소로 걸어갑니다~


<둘째날 아침인 딸바 네스퀵! 그리고 트윙키~>


<전세계 각지에서 모여든 GDG 운영자들 많다 많아~>


<마운틴뷰로 우리를 태워줄 버스가 도착했습니다. 타고 보니 엄청난 양의 아침 식사용 빵과 과일,커피,음료가 준비되어 있었습니다. 헉! 역시 먹는 것에 관한 것 만큼은 그냥 준비가 철저합니다. 아 아침 괜히 사먹었다;>


버스는 어제처럼 40분 가량 달려서 마운틴뷰 구글 본사에 도착합니다. 두번째 와본다고 벌써 새롭지가 않습니다. ㅋ 그리고 오늘 하루 종일 여기에 있을거라 관광객 모드로 여기저기 사진찍을 일은 없고 본연의 임무인 GDG 운영자 모임에 충실하기로 합니다 - 절대 사진 찍기 귀차나서가 아님!

도착해서 모두 한자리에 모여 간단히 소개하는 시간을 가집니다. 하지만 사람이 너무 많아서 특이한 몇명 정도만 기억되고 얼굴과 이름도 아닌 나라만 기억됨 ㅋ 아 이름은 도저히;;


<명패를 받고 이제 본격적인 Summit! 시작~>


<한명 한명 일어나 간단한 소개를 합니다. 전 어디있을까요~? ㅋ 출처:http://goo.gl/Wu9pi>


<구플로만 보던 Van 아저씨가 보입니다. 마치 여기 운영자들에게는 연예인 같은 존재 ㅋ>


<미니컨퍼런스가 시작이 됩니다. 사실 이때 집중해서 들어도 쫓아가기 힘든 영어를 옆의 마닐라 운영자와 이야기하다 내용을 거의 놓쳤습니다;>


<GDG 행사의 한가지 Format으로 자리 잡으려는 DevFest 소개에서 Success Case로 DevFestX Korea가 소개됩니다. 우형님의 동영상과 함께! 멀리와서 다시 보니 감회가 새롭습니다!>



<이쯤에서 다시 감상하는 DevFestX 동영상! - Made by Sean Choe>


짧은(?) 워크샵이 종료가 되고 즐거운 점심시간 입니다. 역시 구글의 식당은 (-.-)b 점심시간에 식탁에 앉은 분들과 이런저런 이야기를 하다가 한국에서 선교사를 했던 호주 운영자를 만났는데 한국말을 너무 잘해서 깜놀 ㅋ 그리고 형제 둘이 같이 GDG운영을 한다고 해서 깜놀. 재미있습니다. 식사를 마치고 돌아다니다 중국 운영자들을 만났는데 역시 영어 잘 못하는 사람들끼리 연대감이라도 생겼는지 바디랭귀지로 신나게 떠듭니다. 풉.


<즐거운 식사시간. 다시 먹으러 가고 싶으네~>


<점심시간을 여유롭게 즐기고 있는 사이 제보가 이어졌습니다. 안드로이드 마당에 일이 터졌다고! 저 박스의 정체는!?>


<네, 바로 젤리빈 피규어가 오픈이 되어있었습니다~! ㅋ>


<역시 소문을 타고 점심시간에 사람들이 쏟아져 나와 금새 북적북적!>


<기념촬영 중에 저도 Van아저씨와 한장 찰칵!>


<GDG Summit 참가자들 단체샷!  출처:http://goo.gl/Wu9pi >

화창한 날씨 아래에서의 즐거운 점심시간을 마치고 이제 본격적인 BarCamp가 열리는 행사장으로 이동합니다.
BarCamp란 형태의 토론은 처음 접해보았는데 처음 부터 끝까지 참석자들의 참여와 의견으로 만들어졌습니다.

세션의 내용들을 정하는데 각자 세션 주제에대한 의견을 나와서 간단히 소개하고, 관심있는 사람들의 거수로 방의 크기를 결정하였습니다.
세션의 소개가 나오는 도중에 비슷한 것은 한데로 묶거나 관심가진 사람이 너무 적으면 드랍되는 형식으로 조정을 거쳐 시간표가 완성이 됩니다.

전 4개의 주어진 시간에서 다음과 같은 주제를 들었습니다.

1. Groups를 한 단계 더 성장하기 위해 필요한 것은 무엇인가?
 -> 운영을 위해서는 구글 이외의 외부지원을 잘 받는 방법에 대한 이야기가 나왔습니다. 각종 스타트업 컴패니들의 참여를 시키는 방법에서 부터 O'rielly등에서 지원하는 개발자 지원 프로그램 소개 까지 많은 이야기가 나왔습니다. 근데 대부분 참여자가 미국내 운영진 들이라 수원 GDG가 얻을 수 있는 지원은 잘 없더군요. 하지만 일부 운영자들이 자신들에게 연락을 하면 해외로 관심을 가지는 업체들에게 스폰서를 얻어주겠다고 호의를 받기도 하였습니다. 하지만 쉽지는 않을 것 같습니다 ^^;

2. 아태평양지역 GDG 운영진 모임
 -> 지역의 GDG 간 소통을 가지는 방법에 논의를 하는 시간을 가졌습니다. 이런저런 시도와 이야기중 결국 Hangout을 통한 크로스 세미나를 시도해보자는 의견을 최종 목표로 잡게 되었습니다. 언제쯤 실제로 가능할지는 모르겠지만 GDG 타이완의 운영자가 열의를 가지고 저희 GDG 수원과 해보자고 연락을 해오니 좋은 아이템이 잡히면 추진해보려고 합니다.

3. Beyond the Hackathon.
-> 제가 좋아하는 개발모임 포맷인 헤카톤입니다. 그래서 그런지 말도 많아지고 재미있는 시간이었습니다. 사실 기존 헤카톤 포멧을 뛰어넘어 새로운 개발 모임 포맷을 강구하고 의견 나누기를 원했지만 결국 자신들의 모임에서 있었던 헤카톤 에피소드를 공유하는 시간을 가졌습니다. 일부 부러운 환경의 모임이야기도 듣고 새롭지는 않지만 시도해볼만한 몇가지 운영 아이템들을 얻을 수 있었습니다.

4. 방황(???)

4번째 시간이 왜 방황을 하게되었냐면 3번째 시간인 헤커톤 시간에 서로서로 할이야기가 많아서 떠들다가 4번째 시간을 반이상 먹어버렸습니다.
결국 방에 있던 모두 4번째 시간의 세션을 포기하고 바깥으로 나와 음료수 한잔하며 주변 구경을 하기로 했습니다.


<모두들 모여서 머리짜내 만들어낸 TimeTable 어떤 주제가 재미있을지 머리굴리는 중>


<나중에 시간표 찾기 쉽게 한장 찰칵! 하지만 날려쓴 영문 글씨에 보기가 쉽지 않음 ㅋ>


<느뤼를 찾아라 #2! ㅋ>


<GDG 운영을 잘하려면? 참으로 막연한 주제임에도 다들 재미있는 아이디어들을 쏟아내는 중>


<아태평양 모임. 확실히 여기 있으니 영어가 참 친숙하네 ㅋ>


<구글 마운틴뷰 1900 건물. 제일 많이 들락날락한 곳>


<음료는 모두 프리! 하지만 다시 채워지는데 시간이 오래걸림! ㅋ 다들 마시고 거의 텅빈 냉장고>


<2층에서 타고 내려오는 미끄럼틀. 하지만 그 끝은!?>

<공사중! ㅋ>


<Food만 꽁짜가 아니라 각종 HW 부품과 기구들을 사용하는 Tech Stop. 내부를 찍어보려했지만 안된다는 손짓에 소심하게 문만 ㅋ 시설 좋다~>


이제 모든 BarCamp 세션이 종료되고 시작된 바베큐 파티!

구글 캠프 앞마당에서 준비된 야외 햄버그 BBQ. 진짜 리얼 100% 수제 버거! 버거 메니아인 나로써는 최고의 메뉴입니다.

근데 어깨에 매고 다니던 카메라가 모드 다이얼이 어찌돌아갔는지 메뉴얼로 돌아간지도 모르고 신나게 찰칵찰칵.

보정하고 보정해도...눈으로 식별이 힘든 대박 노출 사진들..ㅠ.ㅠ

아 왜 진즉에 알아차리지 못했는지 아쉬움이 따름니다.


맛있는 햄버거를 냠냠 다들 맛있게 먹으면서 옹기종기 모두모여 친목의 시간을 가집니다.

각자 나라에서 가져온 각종 기념품들도 서로 나눠가지면서 하하호호 아주 화기애애한 시간!

저도 공항에서 저도 안먹어본 "고추장" 초콜릿을 가져왔는데 반응이 아주! 신기해만 할뿐 아무도 도전안하더군요 ㅋ


<안타까운...ㅠ.ㅠ 대박 노출의 진상;>


<당일 도착해서 캠퍼스로 날라오신 휴우 - 양찬석님. 혼자 돌아다니다 한국사람을 만나니 너무 반가웠던 ㅋ>


<이것이 진짜 어메리칸 스타일 햄버거!! 더블 패티로 먹었더니 하나만으로도 배가 퐝퐝!>


<여러나라의 디저트들이 테이블 위에 굴러다니는 중 ㅋ>


<노출이 그나마 적었던 몇안되는 사진중! 하지만 난 눈을 감았다는거..ㅠ.ㅠ>


<오늘 종일 옆자리에 붙어있었던 띠동갑 멕시코시티 운영자. 하지만 이름은 너무 어려워서 기억이; 쏘리! ㅋ 서양인 나이는 종체 감잠을 수 없음 ㅋ>


<각지에서 가져온 보드카를 모아 마신 테이블에서 제일 신난 친구. 알럽 샘송이라면서 열씸히 이야기했지만 술취한 러시안 잉글리쉬 덕에 반도 이해못했어 미안 ㅋ 하지만 열심히 웃는 얼굴로 '오케이 오케이' 연발 ㅋ>


이렇게 느즈막하게 후기를 쓰면서 다시 그때의 기억들을 떠올리면서 근래 바쁜 일정에 소홀해진 GDG활동에 조금 먹먹한 마음이 듭니다.

처음 시작은 뜨거웠으나 바쁜 일상에 지쳐버린 나를 다시 일께우면서 채찍질을! 찰싹찰싹!


나를 채찍질 할 수 있는 이런 좋은 기억들은 너무 고마운 일입니다.


자 그럼 다시 시동을 걸고 부릉부릉~ 화이팅 GDG! 어서오세요 GDG 수원!










Name
Password
Homepage
Secret
2012.07.21 14:12

후기가 밀리고 밀려 드디어 3번째 후기입니다.


Road to SanFrancisco for Google I/O 2012 #3


드디어 IT Conference의 메카! 성지! San francisco에 도착했습니다! 집떠나 거의 24시간만에 목적지에 ㅋ

특별한 문제 없이 입국장을 빠져나와 느껴본 샌프란시스코의 첫 인상은!


춥다;;;


분명 여기도 여름인데 공항밖에서는 칼바람이 붑니다. 지인의 말로는 좀 쌀쌀하다고 했지. 춥다고는;; ㄷㄷㄷ

가방에서 꾸역꾸역 후드티를 하나 꺼내 입습니다. 이게 유일한 긴팔인데 큰일이다. 샌프에 도착한 뿌듯함 보다는 앞으로 지낼 옷걱정이 앞섭니다.


공항에서 숙소까지는 SuperShuttle 이라는 Shared Van service를 미리 예약을 해서 처음 이용해보았는데 아주 좋습니다.

사실 샌프의 밤거리가 위험하단 이야기를 들어서 야간에 도착하는 것이 마음에 걸렸었는데 밴을 타니 숙소 입구까지 바로 데려다 줍니다.

아주 굳! 애용해줘야할 것 같습니다 ^^*


<웰컴 투 샌프란시스코! 철문을 나가면 바로 입국 검사장이~>


<저녁 하늘이 파랗습니다! 우와 대체 낮에는 얼마나 파란 하늘이 펼쳐질지!>


<늦은 시각에도 역시 공항이라 많은 사람들이 북적북적>


<정말 편하게 숙소까지 Pickup해준 슈퍼셔틀! 범용아 소개 고마워~ ㅋ>


숙소는 지인이 운영하고 있는 한인텔<http://www.hanintel.com>을 통해서 예약하게 되었습니다. 사실 처음에 Google에서 I/O참석자를 위한 Discount Hotel package가 있었지만 역시 호텔은 비쌉니다. 돈 탈탈털어서 다녀오는 저같은 사람들에게는 이런 저가 숙박시설이 최고입니다. 4박을 호텔 하루 숙박비로 해결했습니다 ㅋ. 제가 숙박하게된 Orange Village Hostel 은 한인텔 사이트에서도 인기가 샌프 숙소중 제일 높은 곳이 었고, 행사가 있는 Moscone Center와도 거리가 도보로 5분이라 아주 위치가 환상적입니다. 저예산으로 샌프에서 진행하는 컨퍼런스 참석 때는 아주 유용하게 이용할 것 같습니다. 단 흠이 있다면 창문이 내부로 열려있는데 창을 통해 밤마다 아주 다채로운 사운드와 함께 했던 점이 ㅋㅋ (이거 단점;;이겠죠??^^;;) 숙소에 짐을 풀고 출출한 배를 붙잡고 바로 앞의 슈퍼에가서 요깃거리를 사와 샌프란시스코의 첫 날 밤을 보냅니다.


<친절한 직원분과 깔끔한 호스텔. 저예산 여행객에게 강추!>


<책상, 냉장고, 렌지, 티비 있을거 다 있음. 근데 티비는 한번도 안틀어봤네. 오자마자 뻗어자느냐고 ㅋ>


<우리나라에서 파는 에너지 음료들과는 다르게 여기는 각양각색의 에너지 드링크들이! 눈에띄는 것은 역시 레드불! 레드불 무가당도 있다니! ㅋ>


<내가 제일 좋아하는 펩퍼박사님과 감자칩! 아 좋다~ 우리나라에도 어서 패트로 들어와라~>


설레이는 첫 여정을 눈 앞에 둬서인지 한국에서는 말도 안되는 시간인 새벽 5시반에 눈이 번쩍 떠졌습니다.(뭐 사실 시차 때문일지도 ㅋㅋㅋ)

오늘은 GDG 운영자 모임에서 의견이 나와서 마련된 Sillicon Valley Tour에 참여합니다.

말로만 듣던 실리콘 벨리에 직접 간다고 생각하니 두근두근 합니다. 이 설레이는 발걸음을 힘차게 내딛으려니 배가 고픕니다. ㅋ 호스텔에서 아침을 준비해주지만 제가 이번 여행에서 목표삼은 바가 있으니 그것은 바로 "햄버거" 입니다. 버거 매니아답게 모든 끼니를 가능한 햄버거로 ㅋㅋ 설마 영화처럼 뚱뚱해지지는 않을거야~라고 생각하고 아침부터 햄버거 가게를 찾아 떠납니다.


<호스텔 바로 앞의 길거리,새벽의 샌프란시스코. 여전히 쌀쌀합니다;>


<샌프란시스코의 명물, 케이블카가 운행중입니다! 안타깝게도 이것을 한번도 못타고 돌아왔습니다..ㅠ.ㅠ>


<여행 첫 햄버거가게, Carl's Jr. 사실 문연 곳이 여기 뿐이라서..ㅠ.ㅠ 정통 햄버거가 먹고 싶었지만 아쉬운데로 못먹어본 곳이라 ㅋ>


<의외로 엄청나게 많은 메뉴에 뭐를 고를까 망설이다가 추천을 받았더니 아침이라고 모닝 버거 셋트를 추천받았습니다. 패티+치즈+계란!?+베이컨 맛은 무난하였지만 그 엄청난 육즙의 햄버거를 기대했던 나로써는 좀 실망. 그래도 음료가 팹퍼박사님이라 만족 ㅋ 감자는 완전 기름덩어리;>


아쉬운 첫 버거와의 만남을 뒤로한체 가게를 나왔습니다. 하지만 너무 일찍 숙소를 박차고 나와서 약속시간 까지는 아직 1시간 반 이상이 남아있습니다. 그래서 근처까지 가서 주변을 좀 둘러보기로 생각하고 열심히 걷습니다. 한국에서는 지하철 반정거장도 걷지않는 제가 무려 3정거장의 거리를 단숨에 ㅋ 날씨도 좋고 풍경도 새로와서 그런지 걷는게 아주 즐겁습니다. 보는 것마다 신기합니다. 완전 관광객 모드 ㅋ. 도시에 처음와본 사람처럼 두리번 거리는데 아직 주무시는 노숙자분들이 거리에 좀 많습니다. 겁나기 보다는 자본주의의 어두운 면을 보고 있는 듯한 느낌입니다.


<햄버거를 먹고 나오니 Powell St앞에 다시 케이블카가 도착해있다. 케이블카를 회전시키는데 사람이 직접 수동으로 돌리고 있다는; 

클래식과 첨단이 짬뽕된 도시!>


<관광객인 나로서는 신기한 것, 길거리 전봇대 아래에 붙어있는 시계. 일단 신기해서 찰칵 ㅋ>


<커다란 애플매장. 애플답게 심플하고 멋진 외관. 여기서 레티나를 만져보고 침만 흘렸다는 ㅋ>


<모스콘 센터가 있는 4th St. 해가 들기 시작하면서 날씨가 이제 좀 살만해지네 ㅋ>


<약속장소로 가는 도중에 행사장을 미리한번 보고 갑니다. 아직 내부에서는 분주히 준비중입니다. 내일 모레보아~>


<여기는 월요일 아침. 다들 출근하면서 한손에 엄청나게 큰 사이즈의 커피를 들고 걷습니다. 저도 이에 질세라 제일 만만한 별다방 커피님을 하나 들었습니다. 맛도 똑같고 가격도 똑같고!>


<앙증맞은 샌프 소방서입니다. 제가 있는동안 몇번씩이나 출동하는 모습을 봤습니다. 하지만 불구경은 못했죠 ^^;>


<약속장소를 조금 지나 내륙 바다 쪽으로 나오니 멋진 경치가 펼쳐집니다~ 이야 구름봐라~>


<정말 우리나라에서 보기 힘든 도시 날씨 입니다~ 감탄사만 혼자 우와우와~>


<금문교의 동생뻘인 베이비 브릿지. 이것도 멋있습니다. 금문교는 얼마나 멋질지!>


환상적인 날씨에 넋을 놓고 이리저리 거닐다 보니 벌써 약속시간이 다되어 갑니다. 처음에 갔을때 4-5명이 모여 간단히 인사하고 이런 저런 이야기를 하다보니 하나둘씩 사람들이 모이기 시작합니다. 다들 구플이나 페북에서 사진으로 봤던 사이라 그런지 친숙합니다 ㅋ 안타깝게도 한국사람은 통틀어 혼자라 좀 외롭게 되었습니다. 절대 혼자가 되지 않으려고 열심히 인사하고 이야기하다가 놀라운 만남을 가지게 됩니다. 제가 처음 안드로이드 앱 관련해서 삽질을 할때 보게된 IME앱인 shimeji의 개발자를 만나게 되었습니다. 일본인인 그는 샌프에서 일하다가 지금은 shimeji의 모든 권리를 Baidu에 매각(금액은 2명이서 개발하고 1억엔을 받았다고 합니다)하고 Baidu에 취직하였다는데 부러운 상황이었습니다. 아무튼 이런 신기한 만남을 하면서 드는 생각이 역시 이바닥은 전 세계적으로 좁구나 란 생각도 하게되었습니다. 버스안에서도 이런저런 이야기를 나누는데 일본 안드로이드 개발 커뮤니티도 운영하고 있고 뭐 화려한 경력들의 소개와 일본 개발자들 모임에 대한 이야기들도 듣게 되었습니다. 그래도 일본이 아직 아시아의 강대국이라는 느낌을 받았습니다. 버스안에서는 각자 소개도하고 왁자지껄 떠들면서 첫 방문장소인 "500 Startups"으로 향했습니다.


<지금 다시 사진을 보니 이렇게 뻘줌하게 있던 사이였는데 몇일 동안 많은 이야기를 한 사람들이네요 ^^>


<오늘의 모임 Host인 안나 비숍양(?-혹은 미세스) 낭랑한 목소리의 구글러로 기억됩니다. ^^>


<버스안에서 돌아가면서 소개하는 시간. S전자 다닌다고 소개하였더니 다들 겔3에 관한 질문만. 난 Copier Guy야~ 쏘리~>


도착한 "500 Startups"는 실리콘 벨리의 유명 인큐베이터입니다. 아무래도 참석한 모두가 개발자들이다 보니 전세계에 불고 있는 Startup에 대한 관심을 반영한 첫 관광지(?)인 것 같습니다. 다들 호기심어린 눈으로 모든 것을 둘러보고 하나라도 더 알아가기위해 끊임없이 질문을 쏟아냈습니다. 아직도 영어가 익숙하지 않은 탓에 빠른템보의 질의 응답에 쫓아가지 못해 질문은 해보지를 못했습니다. 심지어 건물을 가이드해준 메니져가 한국사람!이었는데도 못물어봤다는; 잠시 내부를 구경하실까요?


<웅장하고 세련된 모양의 건물. 주변은 모두 3층 이하의 낮은 건물인데 반해 이것만 높게 솟아 있네. 그래서 위에서 본 경치가 아주~ 쫭~>


<현재 입주해서 관리(?)당하고 있는 업체들. 프로필 사진들이 다들 각양각색 ㅋ>


<한국인 분들로 의심되는 분들. 표정들이 너무너무 인상적 ㅋ>



<입구에서 스팍이 반갑게 한마디 해주네요~ "일이나해 색햐" ㅋ>


<말로만 듣던 오픈 오피스. 테이블이 다르면 다른 업체 ㅋ. 하지만 이런 열린 공간에서 서로 도와주고 바로 토론하고 즉석 합병도 이뤄진다고>


<500 startups의 인큐베이터 메니져분. 성함이..기억이;; 명함이라도 받아올껄>


<아무래도 한국인 분들이 있는 것으로 의심되는 물체 ㅋㅋ 반가와서 찰칵. 펜트리에도 hite가 많이 있던데 설마 hite가 후원을? ㅋ>


<바깥만 보고 있어도 리프레쉬가 되어 생산성이 팍팍 올라갈 것 같은 위치!>


<다들 열심히 작업중. 이렇게 구경하느라 돌아다니는게 미안할 정도로 분위기가 뜨겁다.>


<정말 자유스러운 공간 구조와 책상들. 깨끗한 책상이 없네 ㅋ>


<요기 빈자리에 제가 좀 오면 안될까요? ^^>


<진짜 환상적인 뷰를 놓치지 않는 자리 배치! 아 부럽다 이 자리~>


<멘토에게 발표중인 업체. 열심히 지적질 당하는 중. 하지만 분위기는 화기애애>


<인큐베이터의 실제 스폰서 업체들>


실제 인큐베이터의 공간을 본것은 이번이 처음이라 다른 곳과 비교는 못하겠지만 멘토/멘티 구조가 있는 것과 오픈된 하나의 공간에 여러업체가 자유스러운 사무실 구조를 꾸미고 여러 공동공간을 사용한다는 것이 신선하게 다가 왔습니다. 기밀유지와 정보보호를 위해 꽁꽁 숨겨서 일하고 있는 제 직장과는 큰 차이 이기에 저에게는 더 크게 다가왔던 것 같습니다. 이후 간단히 질문 답변시간을 가지고 다음 목적지를 향했습니다.


다음 목적지는 바로 실리콘벨리의 1900번지(?) Bd입니다 어디냐면 바로


Google!


입니다. 

<구글 스트리트!>


<구글 캠퍼스에 들어간 버스로 보이는 건물들의 간판이 모두 Google 표시입니다. 정말 빌딩 많고 넓습니다.>


<버스에서 내려보니 이미 우리에게 익숙한 색상들이 주변에 쭈욱~ ㅋ>


<헉..대낮부터 술파티를 즐긴 구글러분들이군요! ㅋ>


<구글입니다! 말이 필요없죠? ㅋ>


<오늘은 방문객의 입장에서 이렇게 임시 명찰을 받지만 언젠가는 이곳에서 일해보고 싶단 생각을 합니다.>


<이곳을 지나 오피스에 올라가면 촬영을 할 수 없어 최대한 찍어봅니다 ㅋ>


<SpaceShipOne 모형이! 여기에! 찾아보니 5개의 모형이 있는데 이게 그 중 하나라네요~>


<대형 넥서스S로 기념촬영 ㅋ. 메일로 전송을 했는데 도착을 안하는 것을 보니 이거 버그가 있는듯! ㅋ>


<이 앞의 친구가 조정하는 것은 새로 나온 구글맵의 시연. 앞에 트랙볼같은 컨트롤러로 조정하는데 완전 신기! 해상도도 ㄷㄷㄷ>


<여기저기서 사진으로만 보던 구글 1900BD의 입구 로비! ㅋ>


<크롬 자전거! ㅋ 손잡이에 브레이크가 없어서 타다가 당황했는데 페달을 거꾸로 돌리면 브레이크~ 이거 은근 좋네!>


<내부에서는 촬영이 안되는 구글스토어! 자 왔으니 기념품도 쇼핑쇼핑~ ㅋ>


<이건 왜 찍었는지 모르지만 그냥 캠퍼스 사진 ㅋ>


<근무시간 중에 열심히 비치발리볼인 구글러들 ㅋ 모두들 쳐다보면서. 여기는 언제 일하는거지? 하면서 부러움의 썩소를 ㅋ>


<드디어 먹어보는 구글의 유명한 푸드코트! 종류도 엄청 많고 사람도 엄청 많고;>


<음식 구경하느냐고 너무 돌아다니다가 정작 제대로 된것은 퍼오지도 못하고 ㅋ. 페퍼로니 피자와 두부셀러드. 그리고 치킨 브리또! 햄버거가 줄이 너무 길어서 포기..ㅠ.ㅠ>


일단 구글 식당도 자율배식이 기본이지만 몇몇 음식은 주문을 받고 번호표를 받아서 조리되면 찾아가는 식입니다. 바로 주문 받고 그자리에서 만들어주니 완전 레스토랑에 온 기분입니다. 그리고 일반 접시이외에 도시락 종이 팩에 담을 수 있게되어있어 들고 캠퍼스 바깥 아무데서나 먹을 수도 있습니다. 개인적으로는 우리회사도 몇번 도시락을 들고나가 먹게 시도 한적이 있었지만 지속적으로 유지는 되지 않아 아쉬운 감이 있었습니다. 먹는 것 마져도 딱딱한 공간인 빌딩안에서 이뤄져야하니 머리속도 딱딱해지는듯 ㅋ


신사 후에 두런두런 모여 이야기를 하다가 동유럽 GDG 친구들이 이야기를 꺼냅니다. "우리 안드로이드 피규어 찾으러 가보자~" 이 말에 헙.

구글 캠퍼스와서 그 유명한 장소를 잊고 있었다니! 거의 만장일치로 모두들 우루루 줄지어 나갑니다.


<배가 빵빵한 점심 휴식시간. 다들 약속이라도 한듯이 한장소로 이동 ㅋ>


<그곳은 바로 안드로이드 피규어가 있는 안드로이드팀 빌딩! 역시 식후에는 디져트!>


<이것을 혼자 다먹기는 무리! 그리고 아이스크림과 과자를 한입에 먹는 것도 무리! 하지만 실존하면 좋겠다 ㅋ 냠냠>


<앙증 맞은 생강빵. 하지만 아무리봐도 생강쿠키 ㅋㅋ>


이 때만해도 아직 젤리빈 피규어가 없었는데! ㅋ

구글 캠퍼스를 구글러마냥 활보하다가 다음 목적지로 출발합니다.

다음 목적지는 바로 Computer History Museum 입니다.

실리콘 벨리의 유명한 투어코스중의 하나로 컴퓨터 발전 역사를 정말 한눈에 볼 수 있는 곳입니다. 책에서만 봤던 천공 컴퓨터와 에니악,에드박에서부터 최신 기기까지 정말 시간가는줄 모르고 구경했습니다 ㅋ. 소프트웨어의 시작은 결국 하드웨어 스위치에서 시작! 이란 것이 매우 재미있는 구경이었습니다. 그래서 예전 컴퓨터는 엄청난 양의 스위치와 갈래선들이 ㅋ 대단합니다. 또 소프트웨어 발전사를 트리로 그려놓은 벽이 있었는데 몰랐던 사실들도 알았습니다. Ruby가 Java보다 태생이 먼저였다는 사실! 저만 몰랐던 것일지도 ㅋ 저에겐 살짝 충격이었습니다. 그외에도 여러 잘못 알고 있던 서열을 다시 확인했습니다.


밖에 나와 기념품 점에 가니 그 소프트웨어 히스토리 맵을 $35에 팔고 있었는데 그 커다란 둘둘말이를 한국까지 고이 모셔가기 힘들 것 같아 포기했습니다..ㅠ.ㅠ


한가지 아쉬웠던 점은 컴퓨터 역사의 발전 내용중에 메모리나 모바일 기기쪽에 우리나라 제품이 한두개 나와있을 법했는데 모두 미국 자국 제품과 일본 제품들만이 전시되어있었습니다. PDA에 Cellvic이야 국내에서 유명한 것이라 빠졌을 수 있지만 메모리 분야와 스마트폰 분야 역사에 아직 기록이 안된 점이 주최측의 농간아니야! 라는 망상이 들정도 였습니다.(어느 누구든 역시 자기나라가 뭐래도 제일 좋은가 봅니다.



<웰컴!>


<컴퓨터의 시작인 계산기! 그 계산기 역사의 한 획으로 주판이 있는데 제가 주판 실력을 좀 보여줬더니 주판을 잘 모르는 친구들이 다들 놀라더군요! ㅋㅋ 주판 배운지 거의 25년 만에 좀 써먹어 봤습니다. ㅋㅋ>


<엄청난 양의 점퍼들과 와이어들. 지금 우리가 키보드로 코딩하는 것을 진짜 선구자들에게 매우매우 감사해야할 일! 저걸 어케 디버깅하라고;;>


<최초 컴퓨터 게임을 체험중 - Spacewar! 일본친구인 Adam이 우승! ㅋ 나이먹은 아저씨들이 완전 옛날 오락에 불타올랐죠. ㅋㅋ>


<스트릿뷰용 자동차에서 한장 ㅋ>


<스트릿뷰 촬영기기중 자전거가 있었는데 엄청 큰 장비를 끌고 이동해야한다는 ㅋ 페달과 운전대를 이용해서 가상체험 중인 느뤼~ 아 힘들어!>


이제 시차의 부적응과 체력의 고갈로 점점 집중력이 떨어질때 쯤 마지막 투어장소로 이동합니다.

실리콘벨리 투어의 마지막 장소는 바로 "Hacker Dojo" 입니다. Dojo는 일본말로 우리나라 말로는 도장을 의미합니다. 그러니 헤커도장이라고 볼수 있죠. 헤커들이 기술을 연마하는 장소! 그래서 그런지 이 자유스러운 공간에 들어와있는 모두가 진지합니다. 이 도장은 창고를 개조(?)해서 사용중인 상태인데 거의 창고 그대로에 외부에서 중고로 물품들을 들여와 공간을 꾸며놨습니다. 대부분이 스타트업을 생각하고 아이디어를 모으거나 다른 개발자들과 네트워킹하면서 그 꿈을 구체화한다고 합니다. 여기서 스타트업을 시작하고 서비스를 시작해서 펀딩을 받으면 도장을 나간다고 합니다. 마치 다른 유파를 만들어서 나가듯이 ㅋ.


<처음에 간다는 곳이 해커도조라고 해서 난 대체 이게 뭔말인가 했는데 일본말이었네 ㅋ>


<헤커도조를 운영하는 운영자가 취지와 현재 상태를 설명해주고 있는 중. 이와중에 중간중간에 우리 관광객들말고 실제로 개발중인 분들과 섞여있다. 우리나라 라면 한 공간에 다른 무리가 와서 웅성이면 시끄럽다 어쩐다 하지만 여긴 일상처럼 자기할일도 하고 운영자의 유머에 같이 웃기도 하고 금새 같이 섞이는 것이 인상적.>


<역시 헤커들에게는 집중을 요하기 때문인지 어딜가나 에너지 드링크 자판기! 여기는 몬스터!!!>


<나름 공간을 이쁘게 꾸미려고 한걸까? ㅋ 난 이건 좀 별로 ㅋㅋ>


<백발의 할아버지가 열심히 코딩중!!(?)이어서 살짝가서 모니터 쳐다보다 이야기해보니 자기는 책쓰는 중이라고 ㅋ>


우리나라에도 스터디룸 형식의 세미나 대여공간들이 많이 있지만 이런 형식으로 개발자들을 위한 인프라를 갖춰서 자유로운 공간구조의 공간이 있으면 좋겠다라는 생각을 헀다. 내가 능력만 되면 수원에 하나 차리고 싶다란 생각을 했습니다.


이후에 몇몇은 페이스북 본사를 방문하러 떠나고 다른 사람들은 샌프로 복귀합니다. 저 역시 페북에 방문하고 싶었는데 저녁에 다른 약속이 있어서 다음을 기약했습니다.


이렇게 모든 관광일정을 마치고 샌프란시스코 시내로 돌아오는 버스에타니 완전 기절해서 잠이 듭니다. 저만 그런줄 알았더니 다들 드르렁 드르렁 ㅋ


오늘 저녁의 약속은 바로 샌프에서 직장생활 & 신혼생활 중인 최범용군 입니다. S회사에서 정말 저에게 많은 조언과 지적질(?)을 해준 나이어린 스승님입니다.우리 회사를 떠나 미국으로 돌아간 범용군의 잔소리 파워는 여전했습니다 ㅋ. 그래도 역시 타지에서 이렇게 만나니 너무 반갑고 유쾌합니다.


일단 만나자마자 우리는 배고픈 배를 채우러! 범용이가 추천하는 멕시칸 음식을 먹으러 출발~ 사실 햄버거가 먹고 싶다고 말했다가 여기까지와서 무슨 햄버거 타령이냐고 잔소리는 백만번 들은 것 같습니다 ㅋㅋㅋ 햄버거가 왜! ㅋ


<시크한 도시의 남자 포스로 앞장서는 범용>


<한국에 있는 범용 지인들에게 웃으면서 한 장 ㅋ>


<범용이가 추천한 멕시칸 음식점! 역시 음식은 이런 로컬인들에게 듣고 가야해!>


<퀘사디아, 치킨 타코, 비프 타코, 브리또! 나쵸는 서비스~ ㅋ 아 맛있겠다!>


<빨리 한장 찍고 먹어야하니 어서 찍어! 멕시칸 살사와 고유의 타코향기가 아주 허기 진배를 더 허기지게 하고 있어~!>


<좀 적게 싶었나 했지만 역시 밀가루 음식이라 배가 퐝퐝! 그래도 다 먹어야하니 브리또를! 우악 속이 이렇게 알차다니! 안에 치킨, 비프, 볶음밥에다가 요구르트 소스와 칠리살사! 아우 나 돌아가서 다시 먹고 싶다..ㅠ.ㅠ>


<사진으로는 잘 안나왔지만 엄청난 손놀림을 보여준 멕시코 주방장 아저씨! 잘먹었습니다~>


<지나가다 만난 케이블카. 모양이 아주 클래식한데~>


<샌프의 퇴근시간에 관광객 모드로 한장 찰칵! 사실 범용이가 저 뒤 케이블카에 타고 찍어야 진정한 관광객 모드라고 잔소리를 해댔지만 너무 쪽팔려서 그냥 이걸로 만족 ㅋ>


<관광객을 위해 열심히 다음 집을 찾고 있는 범용! ㅋ 고생이 많다~>


<샌프 직장인들에게 인기있다는 아이리쉬 펍. 기록을 위해 한장 찍으려는데 날 중국인으로 생각한건지 지나가는 한국 여자분들이 잘들리는 목소리로 "뭐 저런데서도 사진을 찍고있냐~"라고 빈정대셨음. 아놔 한마디 하면 더 쪽팔릴거 같아 그냥 조용히 ㅋ 사진찍는게 왜..ㅠ.ㅠ>


<기왕 펍에 온거 여기있는 맥주 종류별로 다먹어보자는 심산으로 바에 떡하니 않았다. 분위기 좋고 다들 야구보는 중~ 한국이나 여기나 야구 중계보고 떠드는 분위기는 똑같네 ㅋㅋ 자 뭘 마셔볼까~>


<사진 찍기 싫다는 범용이 강제로 찍기. 난 관광객이니까 많이 찍는거야~ ㅋ>


<기네스는 한국에서도 먹어봤으니 패쓰. 못먹어본 맥주!>


<하고 머피 아이리쉬란 맥주를 시켰는데 기네스 잔에다 주고 맛도 기네스랑 똑같음; 헉 근데 가격이 싸다 ㅋ 아 싼가격으로 기네스 먹는 기분 ㅋㅋ>


<맥주 이거 좀 쫭인데~ 자 달려보자고~>


<아까 멕시칸을 너무 먹어서 안주는 못먹겠어서 맥주만 계속~ 이번에는 또 다른 맥주! 이건 이름은 기억이 안나는데 라임을 꽂아서 그런지 향긋한 과일향에 카스 같은 캬한 탄산! 아 이거야말로 더울때 한잔 팍하면 정말 좋은 맥주! 또 마시고 싶다>


신나게 이런저런 맥주마시고, 그간 범용이의 근황도 들어보고, 회사 뒷담화도 나누고 즐거운 시간을 보냈습니다. 남자끼리 뭔 수다가 이렇게 많은지 ㅋㅋ. 지금 생각은 그때 수다를 좀 줄이고 맥주를 좀 더 마셨어야했는데 하는 아쉬움이 ㅋ. 이후에는 저에게 I/O의 참석 기회를 주신 권부장님, 커니태호, 일본 구글러분 등과 이어지는 수다를 떨다가 호스텔에 돌아와 잠이 들었습니다. 샌프에서도 맥주를 적당히 마셔서 좋은 기분에 호스텔로 돌아가는데 저녁 찬바람에 술이 확 다 깼습니다. 샌프에서 지낸지 24시간이 갓 지났음에도 완전 이동네 토박이가 된 기분으로 거리를 활보합니다. ㅋ 내일은 이제 종일 구글 본사에서 GDG Summit이 있는 날입니다. 전 아무래도 여행 체질인듯 ㅋㅋ 


<남자들의 수다는 밤이 깊은줄 모르고 계속~ ㅋ 권부장님과 커니 @메리엇>


이번 여행과 엮인 글










Name
Password
Homepage
Secret
prev"" # next

www.flickr.com
www.flickr.com