카테고리 보관물: Etc

구글 IO 2013 후기

구글 I/O의 첫날에 대한 간략한 후기를 적어봅니다.
구글 I/O는 구글이 2008년도부터 시작한 개발자 행사로, 구글 서비스 개선, 각종 개발자 툴 및 API 등을 발표해 왔다. 작년부터 실리콘밸리에 있는 회사에서 근무하고 있어서, 작년에 구글 I/O에 참가할 수 있겠다는 기대를 했으나 광클릭 신공이 부족해서 실패..

올해는 대표님의 광클릭 신공이 성공해서 겨우 1개의 티켓을 얻어서 대표(?)로 참가.. ^^


좌측 : 행사장인 모스콘 센터에 들어가기 전에 입구에서 한방
우측 : 등록을 하고 받은 명찰(?), NFC 칩이 내장되어 있어서 가져가기만 하면, 바로 친구 목록에 추가를 시킬 수 있다나(?).. 허나 네트웍이 너무나 느려서 잘 되는 꼴을 못 봄..

키노트

많은 행사에서 저명한 인사들이 키노트를 장식하지만, 애플도 그렇지만 구글의 키노트는 구글 자체로 만도 저명한 인사들이 실무를 해서 그런지 정말 잘한다는 느낌이 들었다. 키노트 행사장에 들어가는 과정은 꽤나 힘이 들었네요.. 8시 10분 가량에 도착해서 꼬리를 찾아서 줄을 서고, 기다리면서 그 큰 카페룸을 계속 걷고걷고. 하지만 키노트 행사장에서는 나도 모르게 박수치고 있다는..

왼쪽에는 별로 줄이 없어 보이지만, 꼬불꼬불 줄이 엄청나게 길었습니다.. 위는 커피에 우유(카페라떼?)를 타 마시라고 잔뜩 가져다 놓은 우유..

개인적으로는 안드로이드 4.3 발표나 설마 5.0 키라임의 발표가 있을지도 모른다는 일말의 희망을 품고 봤지만, 애석하게도 안드로이드 최신 버전에 대한 내용은 없었네요.. ^^;; 개인적으로 좋았던 내용을 나열해 보면..
– 안드로이드 스튜디오 : IntelliJ 기반의 안드로이드 개발 툴.. 아직은 알파버전이지만, 이제 안드로이드 개발은 이클립스를 떠나보내야 하나.. 그리고, 빌드 툴로 Gradle을 장착하고 있음.. 이제 Ant, Maven의 XML 시대는 저무는 구나.. DSL이 대세(?), 다운로드 : http://developer.android.com/sdk/installing/studio.html
– 구글 플레이의 강화된 서비스 : 이제 번역은 구글에 맞겨야 겠당.. 서비스 제공 업체와의 연동으로 가격이 엄청나게 싸 보임.. 이클립스 플러그인도 제공.. 알파, 베타의 스테이징을 지원하기 시작함.. 대박..
– 구글 메세징 서비스 : 단 방향의 푸시에서 양 방향이 된다.. 대박..
– 구글 플러스 OAuth 연동 : 구글 서비스의 진정한 SSO라고 해야 겠군.. 서비스 연동하면 앱도 설치해 줄 수 있음.. 엄청 편리해 보임..
– 게임을 위한 API 지원 : 여러 디바이스의 게임 데이터를 지원하기 위해서 제공하는 각종 API 들.. 이제 폰에서 2레벨까지 하고, 태블릿에서 3레벨부터 시작할 수 있다..
그 외의 검색, 맵의 개선은 내가 관심이 없어서 그런지 흥미 없음..


TheVerge에서 제공하는 3분 30초의 구글 키노트 정리 영상.

행사장 주변

키노트 룸과 세션룸 앞에는 각종 구글의 서비스와 구글에 연동해서 성공한 서비스 업체들의 부스가 있었습니다. 간단하게 살펴보면..

잔뜩 합쳐(?)논 크롬 픽셀.. 손가락질 하면 시간 보내기 좋음.. ㅋㅋ


이 차가 구글 맵의 스트리트 뷰를 찍는 차량입니다. 위에 둥근 넘이 카메라를 엄청 많이 달고 있음..


바다속을 촬영하는 수중 카메라..


이건 사람이 메고 댕기는 모델.. 차가 못 다니는 산같은 곳을 짊어지고 다니면서 찍을 수가 있겠음..ㅋㅋ


Street View Trekker를 짊어지고 가상 현실(?)을 걸어가는 모습..


점심에 먹은 타코와 음료수..

개별 세션에 대한 내용은 적지 않았지만, 개인적으로 쉽고, 빠른 네트웍 처리와 AsyncTask의 큐 스케줄링을 지원하기위해 구글 프레임웍 코드에 들어가 있는 Volley 프로젝트가 가장 관심이 가네요.. ^^

마지막(선물)은 다들 아시겠지만, 구글 I/O는 참가비보다 더 비싼 선물을 참가자들에게 앵기는 것(?)으로 유명한데요.. 이날 하루에 받은 선물(등록시 티 줌)을 보면.. 티, 크롬 픽셀 그리고 안드로메다 피겨 입니다.. 그리고, 각종 스티커는 덤으로 얻어왔구요.. 우리나라 업체로는 유일하게, 우아한 형제가 서비스하는 배달의 민족 부스가 있었습니다.

2012년을 보내며..

이제 올해인 2012년이 24시간 만이 남아 있다. 12월에 들어서면서, 올해에 대한 포스트 모텀을 써야겠다고 생각은 계속했지만, 이제 겨우 하루가 남은 시점에 겨우 쓰게 됐다. 포스트 모텀을 쓰다 보면, 올해에 대한 아쉬움, 성과 그리고 그에 따른 맘의 교차를 느낄 수 있어서, 1년의 마지막에 포스트 모텀은 올 한해를 되돌아보고, 반성해 보기에 좋다.

자, 그럼 올해 한 일과 변화에 대해서 얘기를 해 보자면..

1. 정규직으로 승진(?)했다

정식으로 H1 비자를 받아서, 실리콘 밸리에서 근무하게 되었다. 올 초의 한국에서의 비자 인터뷰는 생각했던 것보다 매우 싱겁게 끝나서 허무하기까지도 했다. 그래도, 미국에서 일하기 위해서 비자는 자신이 가지고 있는 스킬이나 능력보다, 더 중요하다는 것을 깨닫게 되었다. 넘 비약적이긴 하지만, 우리나라에서 3D업종에 근무하시는 많은 외국인 근로자들을 생각해 봤을 때, 참 감사하고 있다.

2. 새로운 앱을 런칭하다

기본적으로, 작년에 런칭한 앱을 개선하는 일과 더불어, 사진 관련한 새로운 앱을 기획하고 런칭을 했다. 최근에 한 프로젝트 중에 가장 힘이 많이 들었던 프로젝트이고, 개인적으로 매우 아쉽게 됐다. 아쉽다는 표현을 직설적으로 표현한다면, 내 개발실력이 부족해서 이 앱의 서비스는 실패했다고 반성을 하게 된다. 물론, 조만간 기회를 잡아서 우리 아이들(내 작업물)을 멋지게 업데이트를 해 줄 예정이다.

3. 새롭게 준비한 서비스를 좌초시키다

현재 근무하는 곳이 스타트업이다 보니, 새롭게 생기거나 사용하지 않아서 없어지는 기능들이 빈번하게 발생한다. 나는 이런 것들이 쫌 좋다. 서비스가 살아 있는 느낌(예전 N모사에서 유지하던 빌링 사이트의 개선이 거의 없어서, 서비스는 잘되고 있지만, 죽은 느낌이었음)이고, 고객이 원하는 방향으로 진전하고 있다는 방증이라고 느껴진다.

여름 즈음에, 매우 볼륨있는 프로젝트를 진행했었다. 이 프로젝트에 구성원들 모두 공을 많이 들였고, 나는 서버의 모듈을 개발하였고, 클라이언트의 진행을 지인을 통해서 좋은 방향을 바라보고 있었으나, 결론적으로 다 드랍해 버렸다. 드랍한 후에, 개인적으로 실망과 좌절도 느꼈었지만, 지금은 인연이 아닌가 하고 있다. 스타트업이다 보니 많이 일들이 일어날 것처럼 하다가도 안되는 것이 일상이니..

4. 좋은 인연과 바이바이 하고, 좋은 인연을 시작해 본다

내가 처음 이곳에 올 때는 4명이 함께 왔고, 다 좋은 친구들이고 능력이 좋았다. 하지만 지금은 2명이 이곳에 같이 근무하고 있고, 2명은 한국에서 창업을 했다. 개인적으로는 같이 온 친구들과 같이 이곳에서 계속 능력을 펼쳤으면 했지만, 그래도 지금의 결과가 한국에 있는 2명에게는 더 좋은 기회인 거 같다. 그리곤, 오늘 이곳에 온 친구를 포함해서 또다시 2명이 합류를 했다. 아주 능력들이 좋은 친구들이라서, 내년이 더 기대된다.

이제 올해부터 비자로 온전히 실리콘 밸리에서 개발자의 삶을 살고 있다. 올해는 작년보다 영어를 듣는 게 조금은 수월해 졌다(정말 개인적인 느낌). 영어에 대해서는 고민 상담자(정말 믿을만한 좋은 분)의 말을 들어서 길게 봐야겠다. 작년의 포스트 모텀에서 언급했듯이, 시간은 고정이고 영어 <-> 개발, 둘 중의 집중을 선택하라면 다시 한번 개발을 택해보고 싶다.. <– 이러다 망하는 거 아닌지 몰라..

다시 한번, 실리콘 밸리는 개발자의 천국이 아니라, 노력한 만큼 능력이 되는 만큼 좋은 결과를 내는 기회의 땅임을 생각하며.. 내년도 홧팅.. ^^

2011년을 보내며..

올해가 벌써 한 달이 가까워지게 지나가고 있다. 세월은 엄청 빠르게 지나가고 있다. 특히, 내가 나이가 먹으니 더 느껴진다.. ^^;; 작년에 대한 포스트 모텀이지만, 작년을 얘기하려면 제 작년에 N사를 그만두면서 느꼈던 시간의 아까움에 대해서 얘기를 해봐야겠다..

시간, 정말 중요한 거 같다. 경력이 주로 N사다 보니 참 편하게 회사에 다녔던 거 같다. 마지막(?) N모사를 나오면서 롤 모델로 삼고 싶은 CTO님을 만나게 된 것이 행운이었다. 어찌 보면 아이러니 하지만, 그분을 보면서 시간의 아까움과 동시에 뭔가를 해봐야겠다라는 생각을 강렬하게 받았기 때문이다. 그래서, 결국 N사를 퇴사하고 비교적 고행(?)길로 들어서게 되었다. ^^

그래서, 작년에 한 일에 대해 살펴보면..

1. 전 직장에서 퇴사하다

잘한 결정이고 후회는 없다. 이 곳에서의 아키텍처링과 백엔드에 대한 경험은 매우 좋았다. 당연히, 좋은 경험은 좋은 분들을 함께 일하면서 느낀 감정이라서, 좋은 분들을 알게 된 것이 가장 큰 소득이겠다.

2. 카산드라 완벽 가이드를 번역하다

개인적으로 작년에 최대의 산출물이라고 생각한다. 그 이유는 번역을 하면서 오랜만에 집중해서 공부를 해본거 같다. 선배 형하고 같이 진행을 하면서, 서로 바쁜 업무로 인해서 쉽지는 않았지만, 정말 편집자(한동훈님)를 잘 만나서 만족스러운 책이 나온거 같다. 업무에서 사용자의 데이터 스냅샷에 카산드라 서버를 사용하고 있었고, 번역하면서 카산드라에 대한 경험치를 많이 터득할 수 있었다.

3. 안드로이드 앱을 런칭하다

전 회사에서 아이폰 앱을 런칭하려고 시도했으나, 매우 힘들게 진행되는 것을 보고 답답했었다. 그래서, 지금 회사에 남는 TO가 모바일이었고, 커리어에 대한 고민은 하긴 했지만, 우선 고하기로 했다. 작년에 첫 타블릿 앱이 출시가 되었다. 처음 개발한 앱이라서 힘도 들긴 했지만, 그럭저럭 좋은 앱을 개발한 거 같아서 좋다. 작년부터 지금까지 새로운 안드로이드 앱을 준비하고 있다. 이 앱은 우여곡절이 좀 있다. 일 하기가 매우 힘들었고, 난항도 많았다. 그래도, 거의 개발이 완료가 되서 출시를 목전에 두고 있다.

이제, 제 작년부터 준비를 했던, 실리콘 밸리에서의 개발자로서의 삶을 목전에 두고 있다. 어찌보면 영어도 못 하면서 실리콘 밸리에 있는 회사를 들어갔으니, 나름 성공적으로도 보일 수 있겠다. 개인적으로, 미국에 있었던 반년은 매우 힘들었다. 정말 몰랐으니 덥썩 덤벼든 거였다. 가족이 있다보니, 가족과 떨어져 있는 것이 이렇게 힘들다는 것을 뼈져리게 느끼게 되었다.

앞으로 누구한테도 가족과 떨어져서 일을 오래해야 하는 형태는 추천하지 않겠다..

그리고, 영어가 부족하다 보니, 일할때 문제가 생기곤 한다. 소프트웨어 개발은 다양한 컨텍스트 상황에서 어떻게 처리를 해야 하는지 명확하게 짚어야 하고, 결정된 내용을 잘 구현해야 좋은 소프트웨어를 개발할 수 있겠다. 그런데, 명확하게 이해를 하지 못하는게 간혹 있기도 하다. 다행이 나는 옆에서 일하는 개발자가 영어를 잘해서 통역도 해준다.. 땡큐.. ^^ 영어는 생존이 걸려 있기 때문에 열심히 해야될 필요가 있겠지만서도 개발과 영어 둘 다 집중할 시간에 대한 선택을 한다면 또 다시 개발을 잘하기 위한 시간에 투자를 할것 같다..

한국에서는 실리콘 밸리가 개발자들의 천국이라고 말하고 있다. 과연 어떤 것들이 개발자들에게 어필할 수 있기에 천국이라는 표현을 과감하게 썼을까 하는 고민을 해 본다. 천국이라.. 너무 과분한 표현 아닌가? 과분을 떠나 단지 미국에서 일하는 것에 대한 환상 아닐까? 요즘은 국내 개발자들에 대한 대우도 좋아지고, 인식도 매우 좋다. 그리고, 기술력도 미국에 비해서 그렇게 나쁘지 않다고 생각한다.

다만, 국내의 유수의 기업에서는 소스에 대한 공개와 유지에 대한 비용문제에 대해서 좋지 않은 견해를 가지고 있는 회사들이 많고, 회사 내부에서도 기득권에 대한 유지를 위해서 소스공개를 터부시하는 문화도 한 목 하기 떄문일 것이라 생각한다.

실리콘 밸리에서 개발자로서의 삶을 살아가기 위해서, 다시금 맘 가짐을 잡자면, 잘 할수 있는것에 집중을 하자이다. 단지 수요에 비해서 공급이 못 따라가는 것이라는 느낌이라서, 경쟁력을 가지는게 현명할 대처일 수 있다는 마지막 소견이라는.. ^^

고성능 앱 서비스를 위한 아키텍처링..

아래 내용은 제가 테스트한 내용이 아니라, 경험을 기반으로 제가 생각하는 고성능의 서비스를 위한 아키텍처링에 대한 내용이고, 아래 내용은 앱<->API 서버 간의 성능향상을 위한 방안에 대한 내용이다.

요즘 상당히 많은 앱들이 네트웍으로 데이터를 전송받아서 랜더링하고, 유저가 만들어낸 데이터를 전송하기도 한다. 그래서, 네트웍으로 데이터를 주고 받는 앱들은 서버(보통 웹서버)와의 통신에서 JSON을 표준(많이 사용하는 추세) 프로토콜처럼 사용하고 있다. JSON을 사용하는 아키텍처가 가지고 있는 성능저하 요소를 살펴보면, 아래의 목록을 예상할 수 있습니다.

– JSON의 사용은 파싱에 드는 비용, 데이터 사이즈로 인한 전송(3G 대비)속도 저하가 예상이 된다.
– HTTP/HTTPS 프로토콜을 사용하는 서버(웹 서버)를 사용해서, 연결과 데이터 전송과 수신에 오버헤드(HTTP 프로토콜의 헤더만 읽어봐도 이해가 되실 듯)가 발생한다. 

그래서, 위의 성능저하 요소를 걷어내고 고성능의 앱을 개발하기 위한 방법으로, 아래의 방식을 고려할 필요가 있다. 아래의 형태로 개발하게 되면, 개발 비용이 증가하는 단점이 있다. 하지만, 네트웍을 많이 사용하는 앱(예로 카카오톡이나 채팅앱)이라면 연결기반의 프로토콜을 서버가 제공하고, 앱이 그 프로토콜을 사용한다면, 매번 연결하지 않고 네트웍으로 데이터를 보내고 받는 것이, 위의 비 연결지향의 프로토콜인 HTTP/HTTPS와는 비교할 수 없을 정도로 빠른것을 알게 될 것이다.

– JSON 보다는 고 성능의 데이터 직렬화 라이브러리(MessagePack, Thrift, Google Protocol Buffers)를 사용한다.
– 소켓(SSL 적용) 서버(Netty 프레임윅 등으로 개발)로 연결지향 프로토콜 기반에서 데이터를 처리한다. 이 방식의 경우에는 소켓 서버에서 클라이언트의 idle time을 적절하게 계산해서 주기적으로 클라이언트의 소켓을 제거해 주는 로직이 필요합니다.. 이 로직이 없을 경우, file descriptor가 부족해 지겠죠.. ^^

당장은, 필요하다고 느끼지 못하거나, 너무 오버한다고 생각할 수 있으나, 기본적으로 유저가 많은 포털의 앱이나, 이미 많은 유저가 사용하는 앱들은 프로토콜과 데이터 형식만 바꿔도 상당한 성능향상을 가져올 수 있을 것이라 생각한다. ^^

전 직장(M사)에 대한 포스트 모텀

전 회사(M사)를 퇴사하면서 생각했었던 내용을 끄적여 보는 포스트 모텀이다. 앞으로 M사라 칭함.
M사는 스타트업 회사로 재직 기간은 대략 10개월 정도로 경력에서 제일 짧은 회사생활을 했다. 짧게 근무를 해서 그런지 M사에서는 긴 프로젝트 했다는 느낌이다.

요즘 아이폰이나 안드로이드 앱의 개발주기가 2개월로 싸이클이 도는 지금의 상황을 보면, 스타트업에서 10개월은 긴 시간이라고 생각한다. 10개월의 시간 동안 일은 끊임없이 계속되었으며, 그 와중에 개인적으로는 싸이클을 짧게 끊어서 작업을 진행했었다.

이 프로젝트에 대한 성공 vs 실패의 관점에서 질문한다면, 개인적으로 45 vs 55의 점수를 주겠다. 이 점수는 주관적인 점수로 퇴사를 했고, 9년 동안 주로 서비스를 개발했던 경험상 서비스의 승패는 기술력이나 아이템보다 다른 요소로도 서비스가 성공할 수도 있다고 생각하기 때문이다.

다른 요소가 무엇이냐고 물어보면.. 모르겠다. 경험에서 오는 막연한 기대감일 수도 있고.. ^^;; 
퇴사하기 2달 전 개발팀을 맡게 되었지만, 미국 일정으로 제대로 생각한 바를 이끌어보지 못하고 나오게 되었다. 나오기 전에 조직과 업무와 일하는 스타일에 대해서 전체적인 개편을 통한 나이스한 형태로, 짧은 기간의 마일스톤으로 프로젝트의 사이클을 원했다. 그러기 위해서는 대표의 마인드와 기존에 없어 보이지만 나름 기득권을 쥐고 있는 사람들의 희생이 필요했지만, 기득권을 쥐고 있던 사람들은 희생을 싫어하는 것 같았다. 서비스를 핑계로..

다음으로, 개발팀 구성과 CTO의 역할에 대한 내용을 적어볼까 한다. 네가 어쭙지 않게 CTO의 역할에 대해서 끄적일 수 있느냐에 대한 질문에는, M사에서의 바로 위가 CTO였고, 개발팀은 1개였고, 팀장을 했으니 적어볼 만하다고 생각한다. 추가로, 퇴사하고 다른 스타트업에서 CTO 제의도 받아 봤으니 적어봐도 되지 않을까 한다.

초기 개발팀 구성이 완전히 실패했다. 개발을 잘 모르는 대표님과 CTO님의 선구안은 여지없이 볼에 방망이를 휘두른 격이라고 생각한다. 중간에 매우 좋은 타자와 투수를 영입도 했었다. 하지만, 선수 관리를 못해서 이런 분들 다 나가버렸다. 나도 내 업무를 쉽게 쉽게 맡아 가시던 그 좋은 타자분이 나가실 때 나가려고 생각을 했었다. 흠.. 하지만, 초창기 개발팀 멤버로, 책임(?)감 같은 것에 메여서 못 나갔다.

3-Tier와 Scalable한 시스템을 기본으로 설계와 개발을 하였지만, 현실적인 문제로 2-Tier의 형태를 취하게 되었고, 웹 서버 뒷단의 백엔드만 Scalable한 시스템으로 개발해서 서비스가 돌아가게 되었다. 10개월 동안 개발해서 서비스 하는 게 지금의 서비스 정도라면 문제가 있었을 것이라고 웬만한 개발자들은 감을 잡을 것이다. 굉장히 큰 문제가 있었다. 바로 서비스의 중심인 웹을 개발하시는 분들이 초보시다. 그런데 경력들이 많다. 경력들이 많다는 것은 나이가 많다는 거라서 회사의 자원 투입대비 산출물들이 영 마음에 들지 않았다. ^^;; 지금이야 괜찮다라고 생각을 하고 계실지 모르겠지만, 내가 보기에는 아직도 멀었다. 국내 N모사들의 웹 개발의 반도 따라가지 못하는 느낌인데.. 반도 못 따라간다는 것은 HTML + CSS로 맨 바깥의 UI가 만들어지고, 만들어진 UI에 대한 고민이 기술적으로 없다는 것이다. 하다못해 javascript나 css를 왜 합쳐야 되는지도 잘 모르는 느낌.

그래서, 퇴사하면서 느낀 개발자로 스타트업으로 이직하는 데 필요한 내용(돈은 모르겠다)을 적어보면, 대략 아래와 같다.

– CTO가 정말 능력 있는 사람인지 보자.
– 몇명 안되기 때문에, 개발자들의 레퍼런스를 확인하고 들어가자.
– 면접을 볼 때, 당하지만 말고 면접을 봐 보자.
– 기 제품이 있으면, 제품을 보고 쓰지 않을 것 같으면 들어가질 말자.

개인적으로 참 아쉬운 10개월을 보낸 것 같다. 정말 세상 물정 모르고 있었다는 딱 그 느낌이랄까? 이제는 이런 시행착오 없고, 훌륭한 개발자들과 일을 할 예정이다. 현재 일에 대한 기대와 우려는 다시 한번 긴장감으로 일을 마주하게 하는 원동력인거 같다. 어떻게 하다 보니, 전 회사에 대한 안 좋은 점만 부각한 것 같은데, 포스트 모텀의 주된 목표가 안 좋은 점을 개선하자기 때문에, 개선방향은 여기서는 적지 않겠다. 이미 퇴사하기 전에 10번 정도 회의하면서 얘기했으니 말이다.

이상, M사의 퇴사에 대한 포스트 모텀을 적어봤다. 앞으로 진행되는 프로젝트는 이런 식으로 포스트 모텀을 하는게 아니라 동료와 맥주 한잔 마시면서 자유롭게 회사의 시스템으로 녹여봤으면 좋겠다.