웹개발자를위한대규모서비스를지탱하는기술
카테고리 컴퓨터/IT > 프로그래밍/언어 > 웹프로그래밍 > 웹프로그래밍일반
지은이 이토 나오야 (제이펍, 2011년)
상세보기


일본에서 매우 유명한 웹 서비스 업체(쉽게 말해서 다음, 네이버와 같은 대형 포털)인 하테나(Hatena,はてな)의 CTO와 엔지니어가 쓴 "웹 개발자를 위한 대규모 서비스를 지탱하는 기술"이 한국에 번역되어 출간된다군요.

저는 커피닉스에서  [공동구매] 웹 개발자를 위한 대규모 서비스를 지탱하는 기술 링크를 보고 책을 구입하게 되었습니다.


이 책은 하테나(Hatena)사의 인턴들에게 인턴십과정중에서 수행되는 실제 기술 강의를 기반으로 구성되어 있습니다.

대규모 서비스 개발과 운영을 다룬 책인데 한국에서 이런 책을 찾기가 가뭄에 콩나물 보듯 어렵다 보니 관심이 갑니다.

(참고로 2009년 5월 12일자로 커피닉스 공동구매로 구입한 "서버/인프라를 지탱하는 기술"이란 책도 일본의 유명인터넷 업체인 하테나(Hatena,はてな)와 KLab의 서버 운영 노하우를 기술한 책으로 지금 소개할 책과 비슷합니다.)


서버인프라를지탱하는기술24시간365일
카테고리 컴퓨터/IT > 데이터베이스 > SQL서버 > SQL서버일반
지은이 이토 나오야 (제이펍, 2009년)
상세보기


아직 2011년 3월 2일 발매라 아직 책을 얻지 못했지만, 도서 설명 내용을 보니 네이버나 다음, 구글, 페이스북과 같은 대규모 웹서비스를 운영하는 회사의 노하우가 들어갔다는 생각을 합니다.

아래는 책의 목차입니다.


1 대규모 서비스 개발 오리엔테이션 -전체 그림 파악하기

강의 0 책의 근본 - 책에서 설명하는 것과 설명하지 않는

강의 1 대규모 서비스와 소규모 서비스

강의 2 계속 성장하는 서비스와 대규모화의

강의 3 서비스 개발의 현장


2 대규모 데이터 처리 입문 - 메모리와 디스크, 애플리케이션과 부하

강의 4 하테나 북마크의 데이터 규모 - 데이터가 많을수록 처리에 시간이 걸린다

강의 5 대규모 데이터 처리의 어려운 메모리와 디스크

강의 6 규모조정의 요소

강의 7 대규모 데이터를 다루기 위한 기초지식


3 OS 캐시와 분산 - 대규모 데이터를 효율적으로 처리하는 원리

강의 8 OS 캐시 구조

강의 9 I/O 부하를 줄이는 방법

강의 10 국소성을 살리는 분산


4 DB 스케일아웃 전략 - 분산을 고려한 MySQL 운용

강의 11 인덱스를 올바르게 운용하기 분산을 고려한 MySQL 운용의 대전제

강의 12 MySQL 분산 확장을 전제로 시스템 설계

강의 13 MySQL 스케일아웃과 파티셔닝


5 대규모 데이터 처리 실전 입문 - 애플리케이션 개발의 급소

강의 14 용도특화형 인덱싱 대규모 데이터를 능수능란하게 다루기

강의 15 이론과 실전 양쪽과의 싸움


6 [과제] 압축 프로그래밍 - 데이터 크기, I/O 고속화와의 관계 인식하기

강의 16 [과제] 정수 데이터를 컴팩트하게 가져가기

강의 17 VB Code 속도감각

강의 18 과제에 대한 상세설명과 응답 사례


7 알고리즘 실용화 - 가까운 예로 보는 이론ㆍ연구의 실전 투입

강의 19 알고리즘과 평가

강의 20 하테나 다이어리의 키워드 링크

강의 21 하테나 북마크의 기사 분류


8 [과제] 하테나 키워드링크 구현 - 응용으로 가는 깨닫기

강의 22 [과제] 하테나 키워드 링크 만들기

강의 23 응답 사례와 사고방식


9 전문 검색기술 도전 - 대규모 데이터 처리의 노하우

강의 24 전문 검색기술의 응용범위

강의 25 검색 시스템의 아키텍처

강의 26 검색엔진의 내부구조


10 [과제] 전문 검색엔진 작성 - 기초, 상세부분 작성, 속도와 정확성 추구

강의 27 [과제] 하테나 북마크 전문 검색 만들기

강의 28 응답 사례와 사고방식


11 대규모 데이터 처리를 지탱하는 서버/인프라 입문 - 서비스의 백엔드

강의 29 엔터프라이즈 vs. 서비스

강의 30 클라우드 vs. 자체구축 인프라


12 확장성 확보에 필요한 사고방식 - 규모 증대와 시스템 확장

강의 31 계층과 확장성

강의 32 부하 파악, 튜닝


13 다중성 확보, 시스템 안정화 - 100% 근접한 가동률을 실현하는 원리

강의 33 다중성 확보

강의 34 시스템 안정화

강의 35 시스템 안정화 대책


14 효율향상전략 - 하드웨어의 리소스 사용률 높이기

강의 36 가상화 기술

강의 37 하드웨어와 효율향상 저비용을 실현하는 요소기술


15 서비스와 네트워크 - 서비스의 성장

강의 38 네트워크 분기점

강의 39 한층 높은 단계로


특별편 현대 서비스 구축에 필요한 실전 기술 - 대규모 서비스에 대응하기 위해서

Special 강의 1 작업큐(Job-Queue) 시스템 TheSchwartz, Gearman

Special 강의 2 스토리지 선택 RDBMS key-value 스토어

Special 강의 3 캐시 시스템 Squid, Varnish

Special 강의 4 계산 클러스터 Hadoop



일단은 책을 받아 읽고보고 나서야 소감을 쓸수 있을것 같다.


ps1. 책의 목차를 보니 체계적으로 정리된듯 하다. 인터넷에서 수박 겉핥기로 알고 있는 내용들이 정리된다는 느낌? 

ps2. 한국의 웹서비스 회사에서 이런 노하우를 책으로 공개할 수 있을까?


Buy me a coffeeBuy me a coffee


하루종일 Android OS에서 C/C++코드와 Java 코드를 연동하기 위해서 Android NDK를 사용하여 프로그래밍중입니다.

C/C++로 개발된 기능을 Java에서 쓰기 위해서 JNI(Java Native Interface)를 사용해야되긴 하지만 처음 접하니 어렵군요.

분명히 Visual Studio에서 빌드하여 성공한 코드가 JNI(Java Native Interface)로 빌드할땐 에러가 나니 짜증이 나군요.


ps. 2011년 2월 21일 오후 5시 18분경 컴파일 성공. 이제 마무리 작업만 하면 됩니다 ~_~





Buy me a coffeeBuy me a coffee

2011년 2월 17일.

2011년도 공과대학 신입생들의 기초학력평가의 시험감독으로 들어갔습니다.

며칠전, 사람이 부족하여 시험감독 들어가자는 모 형님의 권유로 바로 시험감독으로 발탁 되었지요.


공과대학 신입생들을 위한 기초학력평가가 왜 필요한지는 공학인증제(ABEEK) 때문이라군요.

다른 단과대학 신입생들은 입학전에 놀고 있을때에, 공과대학 신입생들은 입학전에 또 시험을 보게 되었구요.

아래는 학교 게시판의 "공과대학 신입생 기초학력 평가고사 실시 " 게시글입니다.


2011학년도 신입생을 대상으로 다음과 같이 예비학교 및 기초학력평가고사가 실시됩니다.

기초학력평가고사는 졸업인증을 위한 필수적인 절차이며 그 결과에 따라 수강신청에 제한을 받을 수 있으니 반드시 첨석해야 합니다.

일시 : 2011년 2월 17일 (목요일) 

         예비학교 1부 : 09:00 - 12:00 / 예비학교 2부 : 16:00 - 20:00

         기초학력평가고사 : 13:00 - 16:00 (수학, 물리, 화학 각50분)

장소 : 본교 체육관 및 각 학부(과) 지정장소

준비물 : 신분증, 수험표

* 시험과 관련한 상세한 내용은 기초과학과(02-320-1134)로 문의하시기 바랍니다.



시험감독자들을 12시까지 공대 본부 건물로 집합하라고 하여, 집합을 하였습니다.

공대 석/박사과정 분들이 집합하여 시험감독에 대한 사항에 대해 듣고, 빵과 우유를 받고는 시험감독에 들어갔습니다.

신입생들이 C동,  R동에서 시험보던데, 저는 C동 8층 817호에서 타과 석사과정의 2분과 같이 시험감독을 보았습니다.


1시부터 4시까지 수학,화학,물리 3과목 시험감독할때 계속 시험지 배부하고, OMR카드를 교체하고 등등 화장실에 가지도 못하고 계속 서서 있었답니다.

시험이 끝날때마다 기초과학과 업무하는 사람이 찾아와 시험지과 OMR카드를 수거를 하였지요.


수학, 물리, 화학 시험지를 보니 예전 고등학교때 배웠던 내용인데도 다 잊어먹어서 어떻게 풀지를 모르겠더군요 @.@


3시간 내내 계속 서서 있다보니 다리가 아프더군요. 마지막으로 물리 시험이 끝나고는 물리 시험지와 OMR카드를 수거하여 공대 본부 건물에 가서 제출하고 돌아갔습니다.


2011년도 신입생들 보니 참 부럽다는 생각을 많이 한 하루였습니다.

Buy me a coffeeBuy me a coffee

출처: Apple CEO Steve Jobs photographed at dinner with President Obama

백악관 공식 Flickr 계정에서 2011년 2월 18일 저녁에 모임에서 스티브 잡스가 오바마 대통령 옆에 앉은 사진을 오늘 공개하였다. 

(President Barack Obama joins a toast with Technology Business Leaders at a dinner in Woodside, California, Feb. 17, 2011.)

아래 사진은 오바마 대통령의 왼쪽에 스티브 잡스(Steve Jobs)의 뒷 모습, 오바마 대통령의 오른쪽에는 마크 주커버그의 모습입니다.

P021711PS-0705

위의 사진을 보니 만찬을 참석 할 정도로 스티브 잡스의 건강은 문제 없다는 알 수 있습니다.

6주밖에 살수 없다는 루머는 루머로 판명. 스티브 잡스은 금방 죽을 사람은 아니고 몇 년동안 계속 건재할것이라는 추측을 해봅니다.

(위의 사진을 보면 IT업계에서 날고 기는 사람들은 다 볼수 있습니다. ㅎㅎ 다만 MS사의 Steve Balmer는 제외)


아래 사진은 오바마 대통령이 마크 주커버그(Mark Zuckerburg)를 만나 이야기 하는 모습입니다.

P021711PS-0659

위 사진을 보면 마크 주커버그(Mark Zuckerburg)가 엄청나게 긴장한 모습을 볼수 있습니다.

소문대로 쓰레빠 끌고 다니던 분이 큰집(?)에 연락받고 부랴부랴 양복 챙기고 온듯?

'끄적거림' 카테고리의 다른 글

홍대앞에 밥 먹을 곳이 없어.  (1) 2011.03.27
리비아 사태를 지켜보며  (0) 2011.02.25
11월 22일 밤, 차타고 집으로 가는길.  (0) 2010.11.22
답답한 아버지  (0) 2010.10.24
이상한 꿈을 꾸었음.  (0) 2010.10.15
Buy me a coffeeBuy me a coffee

2011년 2월 15일

미국에서 유학갔다 오신 레몬가게님을 뵈었습니다.

홍대입구역 8번출구앞에서 고등어 이야기를 하다 레몬가게님이 스시집을 지나다 "고등어"이야기를 꺼냈습니다.

< 레몬가게 > : "고등어는 노르웨이에서 잡은 고등어가 맛있데요"

< 나 > : "그런가요? 노르웨이에서 잡은 고등어라 어떤 맛인지 궁금하네요"

< 레몬가게 > : "노르웨이산 고등어를 먹어본 적이 있는데 정말 맛있어요!"

< 나 > : "노르웨이 하니깐 비틀즈의 "Norwegian Wood"가 생각 나요"

< 레몬가게 > : "노르웨이의 숲 하면 비틀즈 노래인 노르웨이의 숲과 무라카미 하루키(村上春樹,  Haruki Murakami)의 소설 상실의 시대가 떠오르죠. 혹시 노르웨이의 숲 하면 어떤게 떠오르신가요? 하루키 소설인 상실의 시대? 비틀즈 노래?"

< 나 > : "저는 비틀즈 노래가 제일 먼저 떠올려져요. 하루키 소설인 상실의 시대를 먼저 봤긴 해도 노르웨이 숲하면 비틀즈 노래가 더 오르죠,"

< 레몬가게 > : "노르웨이의 숲을 가지고 한국인은 하루키 소설인 상실의 시대를 먼저 떠오른데요. 일본인은 하루키 소설보다 비틀즈 노래인 Norwegian Wood가 먼저 떠오르구요. 저도 상실의 시대를 보고 나서 책에 나오는 비틀즈 노래인  Norwegian Wood를 호기심차원으로 듣긴 하였지요. 그렇지만 상실의 시대가 먼저 떠올라요."

< 나 > : "예 저 일본인 사고방식을 가졌나요??"

< 레몬가게 > : "보통 하루키가 일본의 국민 소설가이긴 한데, 그렇다고 소설을 먼저 떠오르지 않아요. 비틀즈가 일본인들에게 신으로 추앙 받는 가수이기 때문에 그렇죠. 한국 사람들이 하루키 소설을 많이 읽어서 떠오를까요? 제 생각엔 대현님이 약간 일본인 사고방식에 비슷하게 사고를 하신것 같아요."

< 나 > : "......"

 

나의 사고방식이 약간 평범한 일반인과 좀 달라서 그런가... 일본인 사고방식과 비슷하다는 이야기를 듣고 있다니.

아래는 상실의 시대(부제: 노르웨이의 숲)

상실의시대:원제노르웨이의숲
카테고리 소설 > 일본소설 > 일본소설문학선
지은이 무라카미 하루키 (문학사상사, 2010년)
상세보기

아래는 비틀즈가 부른 노르웨이의 숲

The Beatles - Norwegian Wood

 

아래는 일본에서 제작된영화 노르웨이의 숲 

영화  「ノルウェイの森」Norwegian wood Trailer

 

Buy me a coffeeBuy me a coffee

2월 14일 월요일.

그 날은 발렌타인데이지만, 몸이 안좋아서 일찍 집에 도착하였습니다. (감기가 꽤 오래가더군요)

집에 도착하여, 집청소를 한 후, 오후 9시경 바로 이불 덮고 잤습니다.

방에서 잘 자다, 2011년 2월 15일 화요일 오전 12시 19분경 갑자기 전화가 왔습니다.

아버지와 여동생이 제가 집에 안온줄 알고, 제 휴대전화번호로 전화를 걸었습니다.

저는 휴대폰에 울리는 벨소리에 깨어서 누구냐라고 외치며 받았습니다.

<아버지> : "너 어디가?"

<나> "제 방이요"



이후 전화가 끊어졌고, 아버지와 여동생이 제가 방에 있다는 것을 보고 깜짝놀랐습니다.

(참고로 저는 방문을 활짝 열고 잡니다.)

 

잠이 깬 후에 다시 잤다만, 다음날 오전 학교 가기전 기분이 약간 묘했습니다. 집에서 존재감이 없는 자식이였나는 생각을 하였죠.

항상 방문 열고 자기 때문에 방에 가면 자는 모습 볼수 있을텐데도 밖에 있는 줄 알고 전화를 했다는건 -_-;;

내가 가족에게 존재감이 있는 사람인지, 사회에서 존재감이 있는 사람인지 많은 생각을 하였습니다.

내가 존재의 이유가 있는 사람일까?

Buy me a coffeeBuy me a coffee

출처: Android DevelopersWhat is the NDK?


Android NDK는 안드로이드 어플리케이션(앱)에 Native code(C,C++등)을 이용한 임베딩 요소들을 사용할수 있는 툴셋입니다.

참고로 NDK는 Native Development Kit의 약자입니다.

안드로이드 어플리케이션(앱)은 Dalvik Virtual machine(VM)에서 돌아갑니다. NDK는 C나 C++같은 Native code를 어플리케이션에서 구현할수 있게 허락해줍니다.


NDK를 쓰는 이유

  1. Garbage Collection이 무서워서
  2. 메모리가 너무 많이 필요해서 (over 16M~24M of JVM)
  3. 다른 C/C++ 라이브러리를 사용하고 싶어서
  4. ㅂㅌ인증을 받고 싶어서...(농담입니다 @.@)

영상처리쪽이나 음성처리같이 메모리를 많이 필요하는 어플 구현에 NDK를 써야 최상의 결과를 낼수 있을겁니다.
ps. 그러나 용량이 엄청많이 늘어나겠지.. (먼산)
Buy me a coffeeBuy me a coffee

Nokia CEO Stephen Elop and Microsoft CEO Steve Ballmer announce partnership during press conference at Nokia Strategy and Financial Briefing on Friday February 11, 2011


Nokia사와 MS사간 장기 파트너쉽 체결. 

Nokia사와 MS사간 손잡는건 몇년전에는 상상도 못했던 일입니다. 

Nokia사 사장이 전 MS사 임원이라서 그런건가? 이제 모바일 천하삼분지계(Apple iPhone + Google Android + MS+Nokia Windows Phone)가 완성되는군요? 모바일 시장의 격동이 예상됩니다.


구글 부사장인 Victor Gundotra가 “Two Turkeys Do Not Make an Eagle”(두 마리의 칠면조로는 독수리를 만들 수 없다)라고 하였지만 (두 마리의 칠면조는 Nokia사와 M$사) 제 생각엔 아닐수도 있다고 생각합니다.

출처: Google’s Gundotra On Nokia/Microsoft Rumors: “Two Turkeys Do Not Make an Eagle”

Nokia사와 MS사가 한배를 탔습니다. 두 회사는 지금 Apple사와 Google사의 파상공세때문에 서로 도박을 하게 되었지요. 도박에서 성공할 것인지, 망해서 망할지는 지금 알수 없다만, 모바일 업계의 빅뱅은 이제 시작되었다고 볼 수 있을겁니다.

모바일 춘추전국시대 아니 모바일 천하삼분지계가 드디어 완성(?)되었습니다.


이제 슬슬 모바일 업계의 미래를 예측해보는 것도 흥미진진할듯 합니다.


ps. Symbian은 이제 죽었구나.

ps2. Intel과 Nokia와 합작해서 만들던 Meego는 이제 어쩔?

ps3.Nokia에서 밀고 있던 Opensource project인 QT와 KDE, Meego 등등의 미래가 암울해집니다.

ps4. Nokia사가 단순힌 모바일 하드웨어 제조 업체에서 Apple사처럼  제조업+서비스업체까지 점유하려고 했다만 실패하였습니다. MS사와 손잡고 MS사의 서비스를 이용한 MS사의 플랫폼을 받춰주는 하드웨어 제조 업체로 다시 회귀한 것 같습니다. 그동안의 Nokia의 전략이 거의 실패했다는 것이지요. Nokia사의 사용자로서 아쉽습니다.

Buy me a coffeeBuy me a coffee

도구가 좋아야 생산성이 높아진다?

웬 쌩뚱맞는 말일까? 실력 있는 사람은 연장, 도구 탓 전혀 안한다는 말도 있던데 말이다.


대학 4학년때 대학 2학년때 구입한 Fujitsu C1320이란 노트북을 열심히 쓰고 있었다.

그러다 4학년 1학기 말경 메인보드가 나가는 일이 생겨버렸다.

여름방학내내 노트북 수리때문에 용산에 자주 왔다갔다 하면서 노트북으로 작업할 일이 많음에도 거의 활용을 못하였다. (다행이도 연구실 컴퓨터를 이용하여 작업을 하였기 때문에 노트북을 대체하였다.)

그러나 노트북이 있을때 작업할때의 생산성보다 연구실에 컴퓨터를 놓고 작업하는 생산성이 생각보다 차이가 많았다.

노트북이 있었을때엔 항상 돌아다니면서 생각나는 게 있으면 언제 어디서든 작업을 하였다. 그러나 연구실에 컴퓨터를 놓고 작업할때엔 필요할때에 왕복 3시간정도의 거리의 학교까지 가야하는 불편함과 버리는 시간이 많다는 단점이 있었다.

그리고 4학년 여름방학때 많은 여러 가지 기회가 있었다만 휴대해야할 노트북이 고장나는 바람에 그 기회를 제대로 활용을 하지 못하였습니다.

임시방편으로 아버지에게 얻은 ThinkPad R52를 사용하게 되었다만, 2005년도에 IBM이란 이름으로 사용된 기종이라 성능이 그닥 필요할 만큼 나오지 않았습니다.

그러다 보니 연구실에 나와서 컴퓨터로 작업하는 것 이외엔 전혀 컴퓨터로 사용하는 작업이 힘들어서 생산성이 올라가지 않았습니다. 컴퓨터를 사용하려면 항상 학교에 가야했지요. -_-;;

결국은 생산성의 저하(?)가 일어나서 제가 개인적으로 컴퓨터로 하고 싶은 일은 포기한 상태였습니다.

그러다 시간이 지나 2011년 1월 19일. 

드디어 새로운 노트북(맥북)을 구입하게되었습니다.

2005년도에 생산된 ThinkPad와 비교도 안되게 성능이 좋고, 디자인은 예쁘고, 들고 다니기 편하면서, Mac OSX 10.6 Snow Leopad라는 처음 접하는 OS를 탑재한 노트북이였습니다.

이 노트북 구입한 이후로, 저의 생산성이 높아진것 같습니다.

연구실에서 컴퓨터를 사용하는 것 이외에, 집에서도 컴퓨터를 사용하여, 빠른 처리를 할수 있고, 원하는 결과를 빨리빨리 낼 수 있습니다.

2011년 1월 중순이후부터 노트북을 교체후 예전과 다르게 저의 생산성이 높아진걸 느끼게 되었습니다.


장인은 도구 탓을 하지 않다는 속담이 있다만, 도구도 일정 수준이상의 성능을 발휘해주어야 장인이 생산성을 높혀 좋은 물건을 만들수 있다는 생각을 하였습니다.

Buy me a coffeeBuy me a coffee

이번에 Android에서 디코딩관련해서 C++코드를 사용해야할 일이 생겼다.

그래서 디코딩관련 C++코드와 Android 어플과 연계하는 방법을 찾다보니 JNI을 알아야겠다는 결론이 나왔음.

The Java Native Interface Programmer's Guide and Specification

간단한 Java Native Interface 예제

위의 링크에 나오는 Java Native Interface 관련 문서를 읽고 있다만 아직도 이해를 못하겠다.
너무 익숙하지 않아서 그런가?

Java 코드와 C++ 코드만 쳐다보니 어질어질..  

Buy me a coffeeBuy me a coffee

+ Recent posts