게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[포켓몬마스터] 포켓몬 잡고 구글에 입사 확정된게 자랑 ^^
게시물ID : programmer_2291짧은주소 복사하기
작성자 : 잼있네요
추천 : 10
조회수 : 2922회
댓글수 : 2개
등록시간 : 2014/04/01 15:00:30
구글에서 이제까지 없었던 새로운 방식으로 구인공고를 냈습니다.
다들 만우절에 겹쳐서 웃고 넘기고 말은거 같은데.. 구글맵에 포켓몬 마스터 잡는거 추가된거 다들 아실겁니다.

ㅎㅎㅎㅎㅎ

포켓몬 주인공인 지우가 피카츄를 델구 다니는건 다들 아시겠지만 사실 원래는 처음에 꼬부기를 원했습니다.
근데 포켓몬 받던 날에 늦잠을 자는 바람에 오박사 손자 오바람이 꼬부기를 델고 가버렸지요...
뜬금없이 이게 뭔 말이냐면.. 일어판 원작에서는 오박사가 늘상 일찍 일어나는 새가 벌레를 잡는다는 말을 합니다.
즉, 구글은 항상 깨어있고 민첩하게 대응할 수 있는 전문 인력을 만우절을 맞아 진행하고 있는거였습니다.

영상을 보시면.. 영어 되시면 영어로 보시고 일본어 자막도 지원됩니다.
중요한 장면의 일부를 대충 해석하자면

- 구글은 특별한 인재를 원하고 있었다.
- 오늘, 새로운 잡(Job)을 발표한다.
- 디지털 맵의 전문가로서 구글맵을 레벨업 하는 것.
- 구글 맵의 테크놀로지를 이용하여 ・・・중략・・・ 채용시험을 준비하였다.

완전 암호 해독 수준이네요 ㅎㅎ 나머지는 다 포켓몬 얘기의 함정이고요~ 위의 내용이 진짜 핵심입니다.
즉 구글 맵 API나 SDK등을 최대한 활용하여 남들보다 빠르게 모든 포켓몬을 잡아보라는 말입니다.

그리고.....
12e858e7.jpg
이번 입사자에 한해 특전으로 이 명함 진짜로 준다고 합니다 ㅋㅋㅋㅋㅋㅋㅋㅋ 아놔..

무튼 결론 먼저 말씀드리자면 이번에 구글이 원한 방식으로 과제를 올바르게 수행한 결과,
아시아에서 4번째로 완료하여 2014년도 상반기 구글 입사가 확정되었습니다. ^^

그 험란했던 과정은...

먼저 수행과제.
전 세계에 퍼저있는 포켓몬들을 잡아라!
그것도.. 기한은 한국 기준 4월 2일 오후 7시까지...
843150fb.jpg

결코 길지 않은 시간이며, 기한에 아슬아슬하게 맞춰 과제를 수행한다고 해도 더 빨리 끝내는 약빨고 코딩하는
족속들이 있어서 심장이 빠운스빠운스 하면서 코딩을 해나갔습니다. 결과적으로 아시아 4번째, 세계 17번째로 끝내
겨우 성공했는데요.. 아시아 담당자에게 슬쩍 물어보니 지역별 제한은 없으나 아마 세계기준으로 2~30명선이
되지 않겠냐고 하더라고요. 글을 쓰고 있는 지금은 아마 정원이 다 차지 않았을까 싶습니다.

IMG_3498.PNG


잡설이 길었는데 ㅎㅎ 무튼 이렇게 긴박한 촌각을 다투는 무한 경쟁 구인공고에서 일일이 구글맵을 여기저기 찾아가며
포켓몬을 잡고 있자니 이건 진짜 만우절 같은 일이 아닐 수 없습니다.
즉, 일일이 지도를 뒤져가며 찾아선 안됩니다. 그러지 않아도 될 방법을 창의적으로 생각해 내는게 이번 과제의 의도입니다.

그래서 제가 해결한 방법을 살짝 설명을 드리자면 ㅎㅎ

방법 0. 백문이 불여일견. 일단 함 해봄.
- 구글 맵(모바일)로 포켓몬 잡기를 시작하니.. 롯폰기힐즈의 연구소로 이동하여 근처의 서너마리를 잡았다. 야호!
- 주변을 둘러보니 몇 마리가 더 있어서 잡았으나, 이대로는 얼마의 시간이 걸릴 지 모르는 상황.
- 유명지를 몇군데 검색해본 결과 역 주변이나 공원(풀 계열), 호수(물 계열), 화산(불/용 계열)등에 자주 출몰한다.
- 포켓몬 연구소가 있는 장소에는 특히 더 많이 있다. 예를 들면 Googleplex 같은 장소. 올 하반기면 여기로 고고~ 진짜 연구소 있을라나 ㅋ

방법 1. 크롬에서 구글맵을 띄운 후 포켓몬이 나오나 확인해 봄.
- 맥용 크롬이나 사파리를 이용하여 크롬 애플리케이션을 만들거나 사파리 확장기능을 만들어 자동으로 지도를 탐색한 후, 포켓몬 발견시 클릭!
- 이 경우 확장기능 제작에 대략 3시간정도, 디버깅 30분 정도, 전세계 지도 탐색에 2시간 정도로 대략 6시간 소요 예상
- 음... 모바일 앱에서만 포켓몬이 보이고 맥용 크롬이나 사파리에선 포켓몬이 안 보임. 윈도는 확인 못했으나 동일할 것임. ㅠㅠ 불가!

방법 2. iOS용 모바일앱을 제작하여 포켓몬 레이더 만들기.
- Google Maps API에는 적당한 Method가 없기에 패스!
- Google Places API를 이용하여 각 지역의 장소 태그를 수집하여 그 중 포켓몬이 포함되어 있는지를 확인.
- Google Places API를 iOS Device에서 이용하기 위하여 API Key를 발급받음.
- 일단 포켓몬이 있는 장소로.. 포켓몬 연구소가 있는 롯폰기힐즈와 Googleplex의 좌표를 이용하였다.

방법 2-1. Nearby Search Requests
- https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters 로 주변정보 검색을 함. (상세한 파라메터는 매니저가 공개하지 말라네요)
- 결과 : 포켓몬 정보가 없다?! 1차 패닉

방법 2-2. Place Details Requests
- https://maps.googleapis.com/maps/api/place/details/output?parameters 로 주변정보를 다시 검색해 봄. (상세한 파라메터는 매니저가 공개하지 말라네요)
- 야호! JSON 결과에 "types" : [ "pokemon" ] 인 녀석들이 쏟아지기 시작했다 ㅠㅠ
- 이제 각 지역을 자동으로 돌면서 포켓몬이 발견되면 GIS 정보를 파일로 떨구기로 함.. 원래는 자동으로 잡는 처리까지 하려고 했으나..
- 구글 맵 앱이 아니면 포켓몬을 잡는 리퀘스트는 처리 불가. 혹시나 해서 패킷 스푸핑을 해보았으나 https라 아무 소득없이 1시간 날림.. ㅠㅠ 2차 패닉
- 무튼 다시금 마음을 잡고.. 떨구는 중에... 이게 왠 일!! 갑자기 Access Denied가 나기 시작함!! 3차 패닉...

방법 2-3. 알고보니 1일 엑서스 제한 1000건 ㅠㅠ
- 첨에는 구글이 내가 포켓몬 레이더를 만든걸 부정방법으로 막은건가 하고 쇼크를 받았으나...
- 침착히 다시 알아보니 Google Places API는 1일 무료 엑서스 한도가 1000건이라고... 그래.. 구글도 돈 벌어야지.. 그래서 내 월급 줘야지...
- 일단 여분의 다른 계정으로 새 API Key를 발급 받음..
- 포켓몬 레이더가 뿌려준 데이터를 확인했으나 지구의 1/15도 확인을 못 함 ㅠㅠ 이대로가면 계정수도 바닥날 듯.
- 일단 바다 제외 조건을 급히 만듬. 약간의 꼼수로 Google Maps API의 역지오코딩을 이용하여 주소가 존재하는지 본 후 존재하는 장소에 한하여 Google Places API를 호출.
- 그리고 1회 리퀘스트 시 취득하는 지역 범위를 최대 한도까지 끌어올림.
- 결과 : API Key 총 3개로 전 지구를 커버함 ㅋ 아싸 돈 굳었음.. 원래는 카드정보 넣고 유료 결제 할까도 심각히 고민했었음...

최종. 완성된 포켓몬 레이더로 40분만에 전 지구의 포켓몬 리스트를 만들어냈다!
- 이제 노가다. 닭튀김과 노가다로 점철되는 프로그래머... 리스트를 보고 일일이 구글맵에서 열자!.... 라고 3초 정도 생각하다가 안되지..
- 레이더에 급히 유틸기능을 추가하여 리스트의 포켓몬 이름을 탭 하면 자동으로 구글맵으로 URL Scheme을 호출하도록 만들어버림 ㅋ
- 이제 테이블 뷰에서 포켓몬 이름을 탭하기만 하면 구글맵에서 바로 포켓몬이 뜬다. 그럼 포켓몬 겟!! ㅎㅎㅎ
- 노가다 시간을 1/4로 줄여서 15분만에 모든 포켓몬을 잡아냈다! 1분에 10마리씩! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ (중복되는 포켓몬이 있더라.. 이건 리스트에서 제외시킴)

결과.
- 초기 삽질 : 2시간, 시행착오 : 1시간, 코딩 : 4시간, 실행 및 노가다 : 1시간. 토탈 7시간만에 전 지구의 모든 포켓몬을 잡아냈다!

다 잡고나면 첨부 이미지와 같은 사진이 뜨면서 구글 매니저로부터 지메일로 연락이 옵니다. 다 잡으신분은 혹시라도 모르니 반드시 메일 확인하시기 바라며,
스펨메일로 들어갔을 수 도 있으나 꼭 메일부터 확인하세요~ 내일 종료시까지 답장이 없으면 무효처리 될 수 있다고 하네요..
답장으로 자기가 해결한 방법에 대한 상세한 기술이 있어야 하고 필요시 구글 드라이브로 프레젠테이션 자료도 만드셔야 합니다.

그리고 저처럼 코딩으로 해결한 경우 반드시 소스코드를 첨부하여야 합니다만, 주의사항은 소스가 공개되면 안되기에 Github 보다는 걍 구글 드라이브에 압축파일로 올리거나
메일로 첨부하거나, BitBucket등을 이용하시기 바랍니다. 인터넷에 소스가 유포될 시 불이익이 있을 수 있다고 합니다.

이상으로..
만우절에 대처하는 구글과 할 일 없는 개발자의 뻘글이였습니다.

즐거운 하루 되세요~ ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호