Google Android 개발자 간담회에 참석을 했다.


일시 : 2012년 9월 17일.

장소 : 강남 파이낸스 센터 21층 (구글코리아)



주요 내용은 아래와 같았다.


* Android Design Guide

* What's New in Android

* In App Billing / Subscription

* How to get featured in Play Store

* QnA


해당 세션들은 외국분들이 와서 영어로 진행하였다. - 정말 다국적 발표자들이었음.


기본적인 내용은 Google I/O 2012 행사에서 진행했던 세션들을 정리해서 다시 이야기하는 형식이었다.

( 유튜브에 가면 Google I/O 2012 행사를 모두 볼 수 있다! - 보러가기 )


나는 운 좋게도 Google I/O 2012에 직접 참석을 했었고, 회사에서 Google I/O 행사 발표 준비를 하느라 많이 본 내용이었기 때문에 몇몇 세션들은 어렵지 않았다.


그 중에서 내가 참석하지도, 유튜브에서 보지도 않았던 "In App Billing/Subscription" 관련 세션에서 재미나는 것을 알게 되었다. 이미 알고 있는 사람들은 뻔할 수도 있지만 말이다. Google Play 스토어에서 물건을 구매하면 총 금액의 30%를 구글측에서 가지고 가고, 나머지를 개발자가 가지고 간다고 알고 있었다.


(확대해서 사진을 찍었더니. 엉망이네 T_T )


하지만 정확하게 말하면 그 30%를 

텔레콤회사(통신사)

빌링회사(카드사)

구글

욜케 3군데서 나눠 먹는다고 한다. 어찌보면 당연한건데, 난 그냥 자연스럽게 구글이 다 먹는다고 생각하고 있었다.


나온 이야기중 몇가지 정리를 하자면.

1. 메뉴를 아랫쪽에 배치하지 말자.

허니컴과 ICS에서는 기본적으로는 하드웨어 버튼이 없으며, 스크린의 하단에 back, home 등의 버튼이 존재한다. 그러므로 App의 메뉴나 버튼이 하단에 존재하면 사용자가 잘못 누르게 될 가능성이 있다. 그러므로 하단에 버튼이나 메뉴를 배치하지 않도록 하자.


2. billing 시스템은 섞어 쓰지 못한다.

그러니깐 삼성AppStore에 올리면서 Google Billing system을 사용하지는 못한다. 만약에 삼성앱스와 구글플레이에 모두 올려야 한다면 삼성앱스에 올릴때는 삼성의 결재 시스템을, 구글 플레이에 올릴때는 구글플레이의 결재 시스템을 사용하는 두개의 apk을 각각 올려라.


3. 애플의 앱스토어에 있는 리딤코드 같은건 아직...(뒤에 앉아서 제대로 못 들어서 맞는지는 모르겠다. )


4. 구글 플레이에 나라별로 다른 스크린샷을 올릴 수 있을까? 없다.


5. 디벨로퍼 콘솔의 beta가 진행중( 난 안 들어가봐서 잘 모르겠네 ;; )


나머지는 I/O 2012 자료를 참고하는것이 좋겠다. ( 굳이 여기에 정리 안해도 찾아 볼 사람들은... ㅎㅎ )


생각보다 사람들이 질문을 많이 했다. 나도 궁금한게 한 3개쯤 됐는데 못 물어보고 말았다능.. 쩝.


그리고 한국말로 질문한 사람은 나 밖이다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

영어 공부를 해야 겠다고 느끼긴 했으나, 영어로 질문을 못했다고 부끄럽거나 하지는 않다. ㅋㅋ

( 그래도 영어 공부는 정말로 해야 겠다. -_- 질문은 커녕 말을 알아 먹기도 힘드니 T_T )


재미난 것은 한국말로 질문을 했는데도, 통역을 통하지 않고도 내 질문을 알아 먹었다는것!!!

"Google Plus App이나 Youtube App에서는 Home Button을 누르면 Menu가 왼쪽에서 나오는데, 이렇게 Menu가 나오는 방식이...." 이라고 한국말로 물었는데 -_- 단박에 알아 들었다는게... 하긴 한국말 절반에 영어 절반이니... ㅎㅎ


이런 행사가 있을때마다 회사의 파트장님이나 팀장님에게 허락을 받아야 하는데(업무시간이 마치지 않은 시간이니깐 허락을 얻는건 당연) 매번 참석하도록 해 주셔서 감사합니다.(라고 뜬금 없는 아부를 좀... ) 


이런 행사에 참석을 하면서 느끼는건데, 무언가 목적을 가지고 참석하는 사람들은 부끄러움은 살짝 접고 참석하기 때문에 뭔가 더 활발한 모습을 볼 수 있는것 같다. QnA 시간에도 열의를 가지고 참석하고, 옆 사람에게 말도 쉽게 걸고. 그래서 보고 있으면 참 흐뭇하다. ㅎㅎ




질문에 대한 이야기가 나왔으니 잠시 다른길로 빠져서 예전부터 가지고 있던 생각을...

( 이걸로 다시 글을 하나 쓰자니... 좀 귀찮기도 하고 말야. ㅎㅎ )


가끔씩 세미나에 참석을 하면 이상한 버릇을 가지고 있는 사람들을 만날 수 있다. ( 이번 구글 세미나는 아니었으니 괜히 이번에 참석하신 분들은  신경쓰지 않아도 된다. )


세미나를 진행하면 어떤 수준의 사람들이 참석을 하는지 알 수 없고, 그렇기 때문에 세미나 발표자료를 만들 때 되도록이면 쉽게 만들기 위해서 노력을 하고, 그렇게 때문에 "정확하지 않은 내용"을 발표에 포함시키는 경우도 있다. 


그리고 나중에 질문의 시간에 "니가 뭘 모르는가 본데..." 라는 늬앙스를 잔뜩 풍기면서 질문을 던지는 사람들이 있다. 이런건 발표하는 사람에 대한 예의가 아니라고 생각된다. 소위 말하는 "우리끼리 하는 클래스명까지 나오는 디테일한 기술 세미나"도 아니고, 많은 사람들을 위한 공개 세미나에서 발표하는 건데... 설령 그 사람이 정말로 잘못 알고 있거나, 혹은 모른다고 해도 그런식으로 말을 해야 할까?


그 사람은 그 세미나를 준비하기 위해서 많은 준비를 했을 것이다. 실제 발표 내용을 조사하고, 발표내용을 다듬고, 실제 발표 연습을 해는것만으로 2-3일은 소비했을 것이다.

그런 사람들을 보면

"그럼 니가 해 보던가, 안 할 꺼면 닥치고 있어!" 

라고 외쳐 주고 싶다.



누군가가 이런류의 이야기를 했다. ( 잘 기억은 안 난다. )


"서로 잡아 먹기 위한게 아니라고"

"아무런 도움이 되지 않는다고"

"해결해 나가기 위한 것이라고"





암튼!

주저리 주저리 끝. ㅋ.



Google Android 개발자 간담회 덕분에 백만년만에 블로그에 포스팅 해 봄.

  1. 돼지왕왕돼지 2012.10.14 10:45 신고

    구글 아이오도 직접 다녀오셨어요? 좋으시겠어요 부럽부럽 ㅠㅠ

    • 2012.10.14 16:59 신고

      오잉~
      제가 언젠가 방문해서 댓글까지 남겼던
      돼지왕왕돼지 님이시다 ㅎㅎ

      완전 좋더라구요.
      내년엔 자비를 들여서라도 가볼려구요 ㅎㅎ

      방문 감사합니다 ㅎㅎ

근데 한국은 아니래.

http://www.altools.com/Home/News.aspx?&articleIdx=59&m=3




  1. 한빛가람 2014.05.13 06:27 신고

    역시 이스트소프트사는 뭔가 남다르네요.

넥서스7. 또 간단 사용기.

액정과 베젤 사이에 유격이 있다. 누워서 넥7을 쓰면 액정이 살짝 밑으로 처짐.

다들 베젤이 광활하다고는 하지만, 실제 손으로 잡고 사용해 보면 전혀 그렇지 않음. 그 정도 베젤이지만 가끔씩 잡다가 의도치 않게 터치되는 경우도...아마 더 좁았다면 조심해서 잡고 사용해야 될 정도?

동영상을 이어폰 없이 본다는건 좀 무리일듯. 넥7을 세웠을때 화면의 뒷쪽 아래편에 스피커가 있음. 실제 동영상을 볼 때는 가로로 눕혀서 보게 되는데, 이 때 스피커가 왼쪽 혹은 오른쪽 후면에 존재하게됨. 안 그래도 후면에 스피커가 있는데 그마저 한쪽 방향으로 치우쳐 소리 전달이 좀 어려움.

지하철이나 자기전에 웹서핑용으로는 대박. 갤탭 10.1인치는 아이패드에 비하면 가볍긴 하지만, 누워서 들고 조작하기에는 무거운편. 하지만 넥7은 누워서 들고 조작하기에도 힘들다 무겁다는 느낌은 전혀 없음.

성능도 빠릿빠릿. 젤리빈의 위력인지 cpu, gpu파워가 좋아서인지 버벅임을 거의 느낄 수 없음. H264 720p동영상은 돌려봤음. 아직 1080p는 안 돌려봤으니 패스. 기본 동영상 재생 프로그램이 동작하지 않는 포맷이 많은것 같음. 테스트시는 mx플레이어 사용.

젤리빈에서 내가 사용하던 프로그램은 거의 다 잘 동작했음. 슈퍼눈팅은 좀 문제가 있었음.

뒷면의 감촉이 좋음. 내가 받은게 화이트(한정판)이라서 실제 판매품은 어떨지 모르겠지만 뒷면이 약간부드러운 플라스틱이라고 해야하나? 암튼 맨질맨질하고 광택이 나는 느낌의 재질이 아님. 딱 잡았을때 미끄러지지 않게 되어 있는 촉감.

젤리빈의 새로운 노티바가 생각보다 편함. 예전엔 노티 내용이 한줄로 나왔었는데 이제 여러줄로 볼 수 있어 굳이 메일이나 sms로 가지 않게 됨. 카톡같은 메세징 서비스에서 활용하면 좋을 듯.

카메라는 전면 카메라 뿐. 그런데 전면 카메라를 따로 쓸 수 있는 앱이 깔려있지 않음. 구글 플러스에 행아웃때 쓸수있을듯한데... 간단한 메모 내용은 걍 카메라로 찍어 보기 때문에 후면 카메라가 없다는거에 좀 아쉬움이...

핸드폰으로 글을 적어서 이만.
이 글 쓰는 핸드폰도 구글IO에 가서 받은 갤럭시 넥서스 젤리빈 ㅋ.
자랑임. ㅋ

뜬근없는 인증. 


어떤 장비를 받을 수 있을까 설레였던 마음이었을까? 아침에 부리나케 일어났다.

는 개뿔 -_-


지금 한 방을 세명이서 쓰는데, 세명다 알람을 6시 30분 에 맞춰뒀다. 난 알람으로 mini(MBC라디오)를 틀어 놓았는데, 나머지 두 분들은 잘 일어 나셨고.. 난 라디오를 들으며 -_- 다시 30분 숙면 모드 ;;;


7시쯤 되니깐 밖에서 요란한 소리가 난다. "WAKE UP" 어쩌고 저쩌고 하면서 흑인 아저씨들의 노동요처럼 들리는 음악(보다는 소리)를 계속 낸다. 처음에는 "아~ 이 동네 신기하구나~ 아침에 일어나라고 씨끄럽게 하는구나~"헸다.


하지만 알고 보니 내가 묶은 호텔에 월급을 제대로 받지 못하고 잘린 사람이 있는것 같더라. 음악을 잘 들어보니 "WAKE UP" 하라고 하고, "지금 뭐할 시간~?", "CHECK OUT 할 시간" 뭐 이런 노래를 한다. 밖에 나가니 막 종이를 나눠주더라고. 그 분들은 아침 7시부터 중간에 잠시 쉬고 오후 4시 정도까지 그 짓(?)을 하고 계셨단다. (호텔 개객끼)


SAMSUNG | NX10 | Normal program | 1/45sec | F/2.0 | 0.00 EV | ISO-800 | Flash did not fire | 2012:06:28 04:22:20


SAMSUNG | NX10 | Normal program | 1/45sec | F/2.0 | 0.00 EV | ISO-800 | Flash did not fire | 2012:06:28 04:23:16




아침 일찍 1등으로 제일 앞에서 키노트를 보겠다는 것은. 젠장.


SAMSUNG | NX10 | Normal program | 1/100sec | F/2.0 | 0.00 EV | ISO-200 | Flash did not fire | 2012:06:28 06:23:57사실 키 노트 입장 사진이다. ㅋㅋㅋ 그냥 사람이 많았구나~ 라고 생각하자.


도착하니 이미 줄은 백만년치서 있고, Name Tag을 받는데만도 만만치 않았다. 등록 과정을 모두 마치고 나면 QR코드가 메일로 하나 오는데, 중간 과정까지만 진행을 해서, 확인 코드만 딸랑 있었던 일행이 있어서, 여기 저기 돌아 다닌다고 바빴다. 등록 과정은 간단했다. General Attendees 라고 적힌 곳에 가면, 노트북에 QR 코드 리더기가 있고, 거기다가 QR코드를 가져다 대면 끝. 더 쉬운건 거기 옆에 서 있는 Staff 에게 QR코드를 보여주기만 하면 알아서 스티커를 뽑아 준다. ㅎ. 그 근처에 시간표와 각종 안내가 되어 있는 소책자의 앞 뒤에 이름이 적힌 스티커를 붙이고 Name Tag으로 만들어 목에 메면 끝!


등록 과정을 마치고 T셔츠를 받을때는 여기서 금방 발급받은 NameTag과 Photo ID(여권)를 달라고 한다. 난 그때 여권을 가지고 오지 않아서, "Photo ID를 안 가지고 왔다, Name Card 면 안되겠니?" 했더니 확인하고 주더라. 근데 회사에서 오신 몇분은 원래 참석하려고 했던 사람 대신에 참석을 해서 신청한 이름과 Photo ID(여권)에 있는 이름이 같을 리가 있나? 그 분들도 "Name card ok?" 했지만 "No" 라는 답이.... ;;;



이번 여행엔 내가 운이 좋은가 보다. 이번에 SFO에서 입국심사를 할 때, "이렇게 물어 보면 이렇게 해야지~" 하면서 많은 시나리오를 머리속에서 만들어 두었다. 그리고 입국 심사에 가기 전까지도 많은 생각을 해 두었다.


아저씨 : "Hello~, Welcome to San Fransisco."

나 : "Hi~"

아저씨 : ( 5초간 여권과 내 얼굴을 본다. ) 

아저씨 : (손가락 4개를 펴서 모으며) "오른손"

나 : ?!


아저씨가 정말로 "오른손"이라고 말했다.

사실은 그건 하나도 충격적이지 않다. 한국 사람이 많이 오면 한국말도 할 수 있는거지 뭐..


그것보다 더 충격적인건.... 단 1개의 질문도 하지 않았다는거다 ;;;;; 정말. 단 1개도...

( 속으론 많이 준비해 뒀는데.. ;; 영어 연습하려고 했는데 ;;; 약간 아쉽기도 ;;; )



SAMSUNG | NX10 | Normal program | 1/50sec | F/2.0 | 0.00 EV | ISO-200 | Flash did not fire | 2012:06:28 08:20:03계속 세이브린 게이라고 말하게 되는 세르게이 브린. 

키노트는 정말로 괜찮았다. 완전히 완전하고, 액티브하게 액티브했고, 익사이팅 하게 익사이팅했다.

특히, 세르게이 브린이 구글 글라스를 끼고 헐레벌떡 뛰어 온 다음. 그때부터는 정말로 정말했다.(응?)

SAMSUNG | NX10 | Normal program | 1/40sec | F/2.0 | 0.00 EV | ISO-800 | Flash did not fire | 2012:06:28 07:53:36 


SAMSUNG | NX10 | Normal program | 1/50sec | F/2.0 | 0.00 EV | ISO-320 | Flash did not fire | 2012:06:28 07:54:31비행선에서 쩜프를~~

갑자기 Hang Out(구글의 단체 회상 채팅)을 시작하는데, 화상채팅에 참석한 사람들이 비행선을 타고 있고, 얼굴에는 구글 글라스를 착용하고 있다. 그리곤.. 어쩌고 저쩌고... 하더니 비행선에서 점프~ ;;


비행선에서 점프해서 지상에에 도착할때까지 행아웃은 계속 되었다. 바닥에 착륙해서는 자전거타고 건물을 넘고, 줄을 타고 건물을 내려오고, 다시 자전거로.... 


오오! 키노트 세션이 있는 장소까지!


완전히 재미 있었다. 저런 짓을 해 볼 수 있다니~ 짱이얌~ 이럼서. ㅎㅎ.

권순선님 말씀대로라면 "말 그대로 Hang Out on the air"를 했다나~ (정확히 워딩은 pass~ pass~ )


가격은 $1500(우리돈으로는 세금포함하면 170만원 정도? ). 그 정도면 신기한 물건에 투자 할 수 있을듯 도 하지만, 구글 글래스는 미국 개발자에게만 선 주문이 가능하단다. -_-;;

SAMSUNG | NX10 | Normal program | 1/50sec | F/2.0 | 0.00 EV | ISO-640 | Flash did not fire | 2012:06:28 08:21:48 



새로운 장비도 소개 되었다. 구글의 7인치 젤리빈 레퍼런스 장비인 "넥서스 7".

그리고 하나 더 소개 되었는데, 그게 바로 "Nexus Q".

넥서스 큐는 장비에 있는 멀티 미디어 데이터를 이곳 저곳으로 sharing 할 수 있도록 해 주는 시스템 정도 되는 것 같다. (틀리다면 나도 모르겠다. -_-; 책임감 ㅇ벗음. ㅋ )


근데 좀 의문인게, 구글이 이전에 구글 TV를 만들때 셋탑박스 형태로 만들었는데, 넥서스큐와 좀 시장이 겹치는게 아닌가 싶다. 전시 되어 있던 구글 TV들은 화면과 일체형인것 같기는 했지만... 그럼 구글 TV 셋탑 박스쪽은 어떻게 되는건가?? 흠...


그리고  새로운? 업데이트괸? 갤럭시 넥서스를 한대 받았다. 처음에는 잘못 알아 들어서, 기존 갤럭시 넥서스와 하드웨어 사양이 다른가? 라고 생각했는데... 옆에 분들 말을 들으니, 젤리빈이 업데이트 되어 있다는 말이었다고 하더라. (아직 안 뜯어 봐서 모름. ㅋ.)


요렇게 3종 셋트 사진.





각종 세션에 대한 이야기는 다음으로 미루고. 오늘 있었던 메인 이벤트!

Name Tag에 이름 바꾸기 ;;;;

이전에 말했다시피 회사에서 원래 오려고 했던 분들이 오지 못해서 몇분은 다른 분들이 참석을 하셨다. 그러니 Name Tag에 있는 이름과 Photo ID 가 같을 리가 있나. 처음에는 꼼수를 몇번 부렸다.


우선 나는 당당하니깐(구글코리아느님께서 제공해주신 Ticket, 한글과컴퓨터 씽크프리느님께서 제공해주신 교통편과 숙박비 - 회사느님 사랑해요~) 우선 내가 먼저 이것저것 물어 본다.


처음에는 구글 계정의 사진을, 보여주며 "봐~ 여기이 계정에 내 사진이 올라와 있잖아. 이 구글 계정이 내 계정임을 증명하고 있으니 괜찮치 않니?" 라고 질문을 던질려고 사진도 정면 사진 올려 두고, 말도 머릿속으로 막 생각하고 했으나...

장비를 나눠주는 곳에서는, 정확하게도 Name Tag과 Photo ID의 이름이 같은지를 꼬박꼬박 확인하고 있었다. 그래서 fail.


일행중에 한명은 "성"만 같고 이름은 영어이름을 NameTag에 적어 두었지만, 잘 통과 했다. 그래서 이런 식으로 해결 해 볼까 했지만, 원래 참석하실 분들과, 대신 참석한 사람들의 성이 달랐다. 그래서 fail.


그래서 이번에는 Photo ID 를 가지고 오라고 했으니, 우리나라 주민등록증은 어떨까 생각했다. 거기는 영어로 이름이 안 적혀 있으니깐 걔네들이 알게 뭐야. 라면서...


"내가 여권을 안 가지고 왔어, 근데 저건 가지고 싶어. 어떻게 해야 할까?"

"여권이 없으면 안돼~"

"그러면 한국 주민등록증은 안되겠니?, 근데 주민 등록증에 이름이 영어로 안 적혀 있어, 대신 얼굴은 같잖아. 안 되겠어?"

"그럼 저기 등록 도우미 분들에게 가봐~"

그래서 fail.



결국 -_-  registration support(맞나?) 에 가서 사실대로 말했다. 원래와야 할 사람이 오지 못하고 다른 사람이 참석을 했다. 우리가 "참가자 변경" 신청을 했지만, 니네(구글)들이 이미 시간이 지났다면서 처리를 안 해 줬다. 그래서 그러니, 우리는 저 장비들을 받고 싶다. 


당근 저렇게 영어를 말 했어야 했으나, 오늘내로 해결해야 겠다는 생각에, 머릿속에 말을 만들지 않고 가서.. 완전 버벅대고... 완전 "쏘리~" 를 연발하면서 이야기를 진행했다.(저렇게 간단한 이야기를 5분이나 ;; )


인상 좋으신(사실 처음에는 그냥 평범했지만...) 아저씨-할아버지가(도대체 이 나라 사람들은 몇살 부터 흰머리가 나는거냐 ;;) 에게 가서 사정사정 했다. 사실 내가 이야기를 한 시간 보다 그 분이 이야기를 하고 내가 못 알아 들었다고 하고, 또 그 분이 이야기 하고, 또 못알아 들었다고 하고, 또 이야기를 하고 또 못알아 들어 미안하다고 하고... 했더니. 괜찮데. 다시 천천히 이야기 해 준다. ㅋ. ( 뒤 늦게 생각해 봄에 정말로 쉬운 말이었음을 깨닫는다. 왜 그걸 못 알아 들었는지... 휴... )


결국 이전에 transform을 신청하고 거부 당했던  메일들의 기록을 뒤져서 겨우 참가자 이름을 변경할 수 있었다. ( 엉엉. 영어 잘 하고 싶어요... T_T )

잡담이지만, 그 아저씨는 메일 프로그램을 T-rex 라는걸 쓰는것 같던데.. 그게 좋은건가? 왜 Gmail 안 쓰고??



암튼 이러한 일로 하루가 많이 복잡했다. T_T


다음에 구글 I/O에 참석하실 분들은 꼭! 본인이 직접 가던지 아니면 일찌감치 등록자 변경을 신청을 하던지 하자. 그리고 영어 이름 써 두지 말고. 걍 여권에 적혀 있는 한국 이름으로 신청하도록 하자.



이렇게 해서 이번 글은 끝.

응? 장비구경은 안 시켜 주냐고?

그건 다음글에 할 껀데.. 지금 피곤해서 다음글을 적을지 말지 고민중 ;;;


모양 잡아서 사진을 찍고, 컴퓨터로 옮기고, 블로그에 삽입하고 하는 것 보다 글만 이렇게 주저리 주저리 하는게 시간이 훨씬 더 덜 걸리거든.. ㅎㅎ


그리고 졸린다~ 그래서 끝!

( 진짜 완전 졸려서 ;; 실수로 공개를 해 버렸다. ;; 그래서.. 공개로 걍 놔둠,. ㅎㅎ )

  1. Jeongmin 2012.06.28 17:50 신고

    재밌게 읽었습니다 ^^
    젤리빈 얼른 써보고 싶네요 ㅎ

  2. 유겸애비 2012.06.28 23:31 신고

    Name card란 말을 안 쓰는걸로 아는데.. business card 혹은 그냥 card

예전에 회사에서 Java One 참석으로 인해 샌프란시스코에 간 적이 있다.

그리고 그 글을 아직 채 정리하지 못하고 있다. ( 무려 3,4년 전인데 ;; )

 

그리고 올해 Google I/O 2012에 참석을 하기 위해서

지금 샌프란시스코다.

 

우엉~ T_T

그 글 정리는 모르겠고. 이 글 정리도 모르겠다.

 

우선 Google I/O 2012에 대해서 잘 정리하고, 여행관련 글은 따로 적어야겠다.

 

올만에 안부인사~ 끝~

 

아.

얼굴 없는 인증

 

SAMSUNG | NX10 | Landscape mode (for landscape photos with the background in focus) | 1/500sec | F/5.6 | 0.00 EV | ISO-100 | Off Compulsory | 2010:02:04 12:32:12

  1. Eminency 2012.06.28 12:45 신고

    부럽네요~ 저는 작년 초에 SF에 갔었긴 합니다만 또 가고 싶군요 ㅎ

아직도 살아 있다는것을 보여 주기 위해서 오랜만에 사진 몇장. 

회사에서 사이판 월드리조트로 워크샵을 갔음.


찍은 사진의 대부분이 인물 사진이라 허락을 받지 않은 상태이므로.
대충 몇장만 급하게... ㅎㅎ.

 

SAMSUNG | NX10 | Normal program | 1/160sec | F/9.0 | 0.00 EV | ISO-200 | Off Compulsory | 2012:03:10 17:36:32

SAMSUNG | NX10 | Normal program | 1/1000sec | F/6.7 | 0.00 EV | ISO-800 | Off Compulsory | 2012:03:10 17:33:32

SAMSUNG | NX10 | Normal program | 1/50sec | F/2.0 | 0.00 EV | ISO-800 | Flash did not fire | 2012:03:11 11:56:21

SAMSUNG | NX10 | Normal program | 1/1000sec | F/6.3 | 0.00 EV | ISO-100 | Flash did not fire | 2012:03:11 10:33:57

'여행' 카테고리의 다른 글

201203 - 회사 워크샵. 사이판. 월드리조트.  (0) 2012.03.19
안드로이드의 타겟은 모바일 환경이기 때문에, 프로그램을 만들거나 실행할때 몇몇 제약이 있다.

이야기 할 내용은 왠만해서는 접할 수 없는 안드로이드 프로그램의 메소드 갯수 제한에 관한 이야기다.

안드로이드 프로그램을 작성하기 위한 순서를 보자.

1. "자바언어"로 프로그램을 작성한다.
2. "자바 컴파일러"로 JavaVM의 Bytecode를 생성해 낸다. 
3. JavaVM의 Bytecode를 DalvikVM의 Bytecode로 변경하면서
4. .dex 파일을 만들어 낸다.
5. .dex 파일과 xml 파일과 각종 이미지들을 zip포맷으로 묶고, 확장자를 apk로 바꾼다.
( 5번 항목은 더 복잡한 내용이 있지만 여기서는 굳이 말할 필요가 없어서 대충. ㅋ )


안드로이드에서는 많은 class 및 jar들도 모두 한꺼번에 묶어서 .dex 파일로 묶어 주게 되어 있는데, 안드로이드 프로그램 배포 파일인  .apk 파일을  .zip 으로 확장자를 변경한 뒤에 압축을 풀어 보면 classes.dex 파일을 볼 수 있는데, 이것이 바로 DalvikVM의 Bytecode가 들어 있는 .dex 파일이다. 모든 class 파일과 jar 파일을 단 1개의 .dex 파일안에 다 넣게 되어 있다. ( 틀렸다면 제보해 주세요. )

이때, 발생 할 수 있는 문제가 바로 메소드 갯수 제한이다.

큰 프로그램을 작성하다 보면, 혹은 많은 양의 라이브러리를 가져다 쓰다 보면 당연히 프로그램의 덩치가 커지게 될 것이다. 이때 빌드를 돌리게 되면 위의  순서에서 2번 class파일이나 jar파일을 만드는데는 문제가 없으나, 3번 과정에서 dex 파일을 만들때 "format == null" 따위의 도저히 예측 할 수 없는 에러를 발생 시키고 죽어 버린다.

모바일프로그램이라 큰 프로그램을 짜지 않을것이라고 생각했는지, 아니면 가난한 리소스때문에 일부러 그렇게 설계했는지 몰라도 dex 파일에는 64k(6.5만개) 이상의  메소드가 정의 될 수 없도록 되어 있다. dex 파일 포맷에서 method index를 저장하는 공간이 16bit로 되어 있으므로 당연히 6.5만개 이상의 메소드를 만들게 되면, method index table의 공간이 부족하여 dex 파일을 못 만드는 것이다.

혹시나 6.5만개 이상의 메소드를 사용하는 프로그램을 만들게 되면 거기에 대한 대비책을 만들어야 한다.

1. 안드로이드에서 기본적으로 제공하는 라이브러리를 쓰자.
2. 프로그램 빌드시 실제로 사용되지 않는 라이브러리들을 제거 하자.
3. 필요 없는 메소드들을 생성하지 말자.
4. 그렇게 큰 프로그램은 모바일 프로그램으로 만들 생각을 하지 말자.


하지만, 프로그램에서 필요 없는 메소드들이 어디 있으랴? 좀 더 구조적이고 아름다운 코드를 짜기 위해서 메소드 갯수가 늘어 나는것은 어쩔 수 없는 일이다. 그러므로 좀 더 우아한 방법을 찾아야 하고, 그 방법이 바로 바로 ProGuard 이다.

ProGuard는 Java Bytecode를 난독화, 사용하지 않는 코드 제거, 최적화 등을 수행해 주는 오픈소스 툴이다. 구글 안드로이드측에서도  2.2 인가 부터 이 놈을 추천하고 있다. 해당 툴을 사용하여 최적화 및 사용하지 않는 코드를 제거하게 되면, 메소드 갯수가 많이 줄어 든다. 단, 최적화를 거쳤다면 메소드가 사라지기도 하고, com.ggaman.A.java 파일의 내용 및 메소드가 com.ggaman.B.java 으로 이동되어 있는 경우도 있다. 
그러므로 실제 출시된 제품의 디버깅이 힘든 점이 존재한다. 물론 옮겨진 위치나 변경된 정보를 로그로 남겨주지만 그거 비교하는 것도 얼마나 짜증나는 일이겠는가? 또한 ProGuard 역시 사람이 많든 프로그램이라 버그가 있어, 제대로 빌드를 만들어 주지 못하거나, 빌드는 되나 실행시 제대로 수행되지 않는 경우도 있다. 

하지만 6.5만개 이상의 메소드를 사용할 수 밖에 없는 경우에는 어쩔 수 없이 선택해야만 한다. 

ProGuard에 대한 설명을 하기 위해서 글을 적은것이 아니기 때문에  ProGuard에 관련된 더 자세한 사항은 아래 링크를 이용해 주시라.

구글의 ProGuard 검색 결과
http://www.google.co.kr/#q=proguard&newwindow=1



또 다른 방법도 있다. 문제 상황에 대해서 한번 더 생각해 보면 프로그램의 덩치가 크기 때문에 dex 파일을 만들때 메소드 갯수가 많아서 dex 파일을 못 만들어 내는 것이다. 그렇다면 dex 파일을 여러개 만들면 안될까?

몇 일 전 안드로이드 개발자 블로그에 이 문제를 해결 할 만한 방법이 올라 왔다.

dex 파일을 쪼개서 만들고, Custom Class Loader를 이용해서 dex 파일에 있는  class를 사용하는 방법이다. Android에서는 dex 파일을 읽기 위해서 DexClassLoader를 제공해 주고 있다. 이를 이용해서 파일로 저장되어 있는 dex파일세서 class를 읽어와서 사용할 수 있음을 보여준 예제이다.

다만 해당 방법은 항상 dex파일을 로컬 스토리지에 두고 사용해야 하므로 최초 수행시 dex파일을 로컬 스토리지로 복사해야 하는 점, 그리고 자바의 리플렉션을 이용해서 Class를 찾고 객체는 생성해주어야 하기 때문에 동작이 느린 이슈가 있을 수 있다. 

하지만 로컬스토리지 복사나 동작이 느린것것이 프로그램이 아예 빌드가 되지 않는 것 보다는 훨씬 더 좋은 선택으로 생각된다.

해당 블로그 글은 아래의 링크를 클릭해서 따라 가면 된다.



오랜만에 포스팅 끝. ㅋ.
(검색이 잘 되도록 제목 수정. ㅋ )
  1. 닉쑤 2011.08.03 03:23 신고

    저도 안드로이드 폰 씁니다 ㅎㅎㅎ

    하지만 개발 내용은 알고싶지 않은..ㅎㄷㄷ;

어제 워크샵으로 워터파크ㅡ오션월드에 갔다 왔었다.

몸이 뻐근하여 지금은 찜질방.
오기전에 회사에 들려 와서 읽을 책을 몇권 골라왔는데 그 중에 한권.

samsung | SHW-M250S

법정스님의 산문집 홀로 사는 즐거움.

책을 펼쳐서 한편을 읽고서는 이내 곧 책을 덮는다.

이 책 첫번째 글인 "산방에 비친 달빛에 잠이 깨어"에서는 법정스님이 자연에서 느낀점을 적어 두었는데, 이곳에서 읽는것은 정말로 맛이 나지 않는다. 에어컨 돌아가는 소리에 사람들 소리...

이제까지 읽을 기회를 잡지못하고 있었는데, 이렇게 허무하게 이 책을 이런곳에서 읽어 버릴순 없지.

내일 적당히 운치 있는곳에 앉어 느긋하니 읽어 보아야겠다.

꼬리.
폰에서 글쓰기 어렵구나.
  1. 닉쑤 2011.07.11 13:28 신고

    저 보내주심 되겠네요~
    딱 읽기 좋은 환경이에요ㅎ

+ Recent posts