최초 작성일 : 2013/05/30 09:41


이 글은 네이버 맥부기 카페에 적은 글을 옮겨온 것입니다.

지극히 개인적인 이야기니까 참고하세요...^^;;;


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


어느덧 IT밥 먹은지도 11년차에 이르고있네요.

그래봐야 절반가량을 SM으로 있다보니 사실 제 경력에 갖춰야 할 많은 것들이

아직 모자랍니다.


각설하고!


11년 일을 해오는 동안 느낀 것이 있다면

다른 분야도 다르지 않겠지만 특히 이 IT 분야는 상당히 폭넓은 지식을 가지고 있어야 한다는 것이

매우 중요하게 느껴졌습니다.


이 것은 IT기술을 이해하는 '깊이'와 '폭'의 문제가 아닙니다.

'한 우물을 파라'든가 '관련 기술을 폭넓게 알아야 한다'든가 하는 문제가 아니라는 것이죠.


하다보면 어쩔 수 없이 이것저것 알아갈 수 밖에 없습니다.

간단한 예로 자바 개발자라 하여 WAS나 DBMS를 싹 무시하고 작업할 수는 없습니다.

마찬가지로 TA나 DBA라 할지라도 JAVA 언어의 기본적인 Exception 정도는 알아야 문제가 발생했을 때

원인 소재를 찾을 수 있겠지요.


심지어는 IT가 아닌 '업무' 또한 필수에 가까운 지식이니까요.


출발은 이렇습니다.

여기에 트렌드가 영항을 미친것이죠.


제가 처음 아이폰 앱 개발을 시작할 당시(2010년, 그 때도 이미 늦은 타이밍이었지요)만 해도 아직

앱 개발만으로 대박을 노려볼 수 있었던 시기였다고 봅니다.

그래서 시작한 것이구요.


하지만 3년이 지난 지금...

솔직히 말해 저는 실패했습니다...ㅠ.ㅠ

하지만 남은 게 없는 실패는 아니었습니다.


그래도 새로운 분야(아이폰 앱 개발, 그전엔 자바 개발자였습니다)에 도전을 시작하고 보니

새로운 많은 것들이 보였습니다.

새삼 많은 것들이 빠르게 변화하고 있다는 사실을 깨달았습니다.

내가 하고 있는 일을 좀 더 객관적인 시각에서 볼 수 있었죠.

금전적인 문제까지 포함해서...^^;;;


그 깨달음 이후 3년, 실패한 현 시점에서 제 일에 대해 다시 정리할 필요를 느꼈습니다.

그리고 내린 결정은 '개인 개발자로서 앱 개발에 올인하는 것은 무리다'라고

(사실 게임 카테고리에만 한정짓는다면 아직도 가능성은 많다고 생각합니다만 그 밖의 카테고리에서는 역시...)


잠시 과거로 돌아가보면 PC에서 소프트웨어의 흐름은 Application -> Service(인터넷을 이용한)라고 크게

볼 수 있겠습니다. 그리고 모바일에서도 벌써 오래 전에 이런 변화가 생겨버렸구요.

비록 모바일 앱/웹이 아닌 네이티브 앱으로 만들어진 앱일지라도 그 뒤에 서비스가 뒷받침 되지 않는다면

금방 그 한계가 드러나버립니다.

이제는 서비스를 이용하지 않는 앱을 찾기조차 힘들정도지요...


결국 '서비스'라는 요소와 그 서비스를 구성하는 백엔드의 인프라나 컨텐츠와 같은 요소를

깊이 고려하지 않는다면 제대로 된 앱을 만들기 어려운 시점이 된 것입니다.


웹 개발자가 TA나 DBA와 소통을 해야 하듯 앱 가발자도 TA나 DBA오 소통을 해야 하는 상황인 것입니다.

그러기 위해서는 그 분야에 대한 최소한의 지식은 갖추고 있어야 한다고 보여집니다.


더군다나 저같이 40대를 넘긴 사람들에게는 사람들이 막연한 기대를 합니다.

큰 그림을 보면서 판을 짤 줄 아는 능력을 기대합니다.

거기에 능숙한 개발 스킬은 필수죠.


결국 이러한 요소들이 제 시선을 다른 곳으로 돌리게 만들었고

그 시선에 걸린 것이 바로 '빅데이터'라는 이슈였죠.


새삼 '빅데이터'라는 새로운 개념을 들이 대지 않더라도 IT하는 사람들이면 데이터의 중요성은 잘 알고 있습니다.

IT가 뭔가요? 다 데이터 처리하고 분석해서 보여주자고 하는 일이  IT죠...^^


그런데 이제 그게 커져버리고 형태도 다양화 되다보니 새로운 패러다임이 필요하게 된 것이고

그래서 관련 기술들이 각광을 받게 되는 것이고...


이건 뭐 트렌드고 뭐고를 떠나서 당연한 진화의 과정이고 당연히 걸어야 할 길인 것처럼 보이더군요.

그래서 빅데이터 관련 프레임워크 중 가장 유명하고 널리 쓰이는 하둡을 공부하기로 마음 먹은 것입니다.


잡설이 좀 길었네요.

불필요한 내용이 될지는 모르겠지만 하둡 학습을 위한 제 계획을 간단하게 적어보겠습니다.


우선 간단하게 네임노드 1대와 데이터노드 1대로 구성한 아주 조촐한 클러스터에서 하둡 설치와

샘플 예제(word count)를 돌려보는 것 까지는 진행을 해보았습니다.

하지만 뭔가 아쉬워 현재 맥미니 한 대를 더 추가하여 제일 사양이 좋은 맥북프로를 네임노드로

그리고 맥미니 2대와 펜티엄 4급 PC 2대를 데이터 노드로 하는 클러스터를 구성하여 본격적인

학습을 시작하려고 하고있습니다.

모든 노드를 맥미니로 하고 싶지만 비용이...^^;;;

맥미니를 선호하는 이유는 아이폰 앱 개발자이어서기도 하지만 맥미니의 탁월한 절전 기능 때문입니다.

스펙상으로는 sleep시 1.6W정도 아이들시는 11W정도 풀로드시는 80W 정도더군요.


현재 교재는 예전에 사둔 한빛미디어의 Oreilly판 Hadoop 완벽 가이드와 네이버에서 이북으로 구매한

책 한 권을 참고하고 있구요.


그리고 저는 개발자이기 때문에 사실 SA나  TA의 역할에 해당하는 클러스터 구성이나

시스템 설정등은 너무 깊이 들어갈 필요가 없다고 생각합니다. 하둡의 반쪽인 MapReduce를 통한

데이터 분석쪽에 집중해야겠죠.


그 과정에서의 제약사항은 개인 개발자가 얻을 수 있는 BigData는 거의 없다고 봐도 된다는 것입니다.

하지만 그래도 방법은 있습니다.


첫째 하둡의 창시자인 더그 커팅이 하둡 이전에 진행하던 프로젝트인 nutch를 이용하는 것입니다.

nutch에 포함된 웹크롤러를 통해 무작위 데이터를 무작정 쌓는 것이죠...^^;


둘째는 트위터입니다.(API가 공개된 다른 SNS도 가능하겠죠)

이미 twitter API는 많이 써보기도 했고 또 쓸만한 라이브러리도 많이 돌아다니고...

처음에는 특정 계정의 트윗들을 모아보려고 했는데 계획을 좀 수정해서 특정 검색어에 의해

검색된 트윗들을 분석해보려 합니다.


계획은 이렇지만 갈길이 멉니다.

그냥 '하둡'으로 통틀어 말했지만 관련해서 필요한 프레임워크들만해도 HBase나 Hive, Pig 등등 많고

아직 아는 것은 빙산의 일각이고...


여기다 회사 업무나 개인 앱 개발까지 겹치면....

과연 성공할 수 있을지 의문이네요...^^;;;


쓰잘데기 없이 글이 길어졌네요.

혹시 여기까지 다 읽으셨다면...진심으로 감사드립니다...^^

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^