텀블러로 블로그를 이사합니다. 새로운 블로그 주소는 stevenyoo.tumblr.com입니다.

글쓰는 툴이 불편해서 글 수가 자꾸 줄어드는 것이 가장 큰 이유가 되어 블로그를 이사하게 되었습니다. 이 블로그에 있는 글들을 그대로 남겨둘 예정입니다. 하지만 새로운 글들을 옮긴 새로운 블로그 주소에 쌓여갈 것입니다. 

조금 더 양질의 글을 더 많이 쓰기를 자신에게 기대하며 블로그를 옮기게 되었습니다.  
신고
이름 :
비밀번호 :
홈사이트 :
비밀글 :

이번 학기를 잠깐 되돌아볼까 한다. 지난 가을에 스탠포드의 첫 학기를 겪고 나서 이번에는 학기 중에 휴일은 없다는 사실을 겸허히 받아들였다. 덕분에 목표로 한 일들을 몇 가지 달성했다. 

이번 학기의 목표는 아래 세가지이다.

1. 학점 
2. 여름 인턴쉽 
3. 좀 더 다양한 사람들과 교류하기 

이 중 2,3번은 달성했고, 1번을 위해서 방 안에 콕 들어박혀서 공부했는데 나의 노력이 반드시 더 나은 학점으로 이어질 것 같진 않다. 하지만 시간을 좀 더 들인만큼 더 많은 걸 배우고 있다. 그 동안 수학을 배우면서 회피해오던 증명 문제들도 이제는 조금 덜 낯설게 느껴지고, 내 세부전공 수업들을 다 들은 덕분에 나의 관심사도 분명해지고 있다. 

이번 학기 각 수업 별로 배운 점을 나열해 보자면, 

CS245: Database Principles
데이터 베이스 시스템이 어떻게 구성되어있는지 이론적으로 배우는 수업인데, memory에 데이터가 다 안 들어갈 때 사용하는 merge join, index join 의 다양한 변형에 대해서 배우고, B+ Tree, index 가 데이터베이스에서 어떻게 사용되는지 알 수 있어서 유용하다. 다른 내용들도 많지만, 위의 토픽들은 굳이 데이터베이스 전공이 아니라도 널리 사용되는 개념들이라서 꼭 알아두어야 한다. Garcia-molina 교수님의 comprehensible 한 수업 너무 좋다. 


CS221: Artificial Intelligence
유명한 구글의 Peter Norvig 연구소장님과 스탠포드의 Sebastian Thrun 교수님께서 가르치신다. Norvig 교수님의 글들은 어려운 개념들도 명료하게 써놓으셔서 항상 감탄했었는데, 직접 인공지능 수업을 배울 수 있어서 너무 좋다. 이 분이 쓴 글중에 GMail의 스팸 필터가 Bayesian Network를 이용해서 어떻게 작동하는지 설명한 글이 있었는데, 다시 찾으려니 안 보인다. 그 때는 Bayes Network가 뭐길래 이렇게 잘 작동하나 싶었는데, 수업에서 배워보니 근래의 인공지능은 확률/통계 기반이라는 걸 알게 되었다. 

이 수업에서는 숙제로 다양한 버전의 팩맨을 구현했는데 무척 재밌다. 버클리에서 만든 팩맨 프레임워크인데 꽤 잘 만들어서 수업에서 배운 내용을 그대로 팩맨에 적용해서 실제로 어떻게 작동하는지 살펴볼 수 있어서 이론을 이해하는데에 많은 도움이 되었다. 게다가 내가 좋아하는 파이썬으로 팩맨이 짜여져 있어서 언어를 좀 더 익히는데 도움이 되었다. 

Final Project는 multi-agent 팩맨. 학생들이 만든 팩맨 알고리즘으로 토너먼트를 벌인다. 


CS246: Data Mining
나의 주 관심 분야 데이터 마이닝 수업. 이 수업은 정말 흥미로운 내용들이 잔뜩 있다. K-means, Perceptron, DGIM method, Page rank, Decision Tree, Support Vector Machine, SVD & CUR, Collaborative Filtering, MapReduce 등 흥미 진진한 토픽들로 가득하다. 이번 학기 가장 많은 시간을 쏟아 붇고 있는 수업이고, 인턴쉽 인터뷰를 하면서 수강하기를 잘했다고 생각했던 과목이다. Scalability 문제가 나오면 Data Mining 시간에 배운 내용들을 적용하면 대부분 해결할 수 있었다. 웹이 방대해지면서 부각된 scalability problems들을 중점적으로 다뤄줘서 매우 유용하다. 다만, 2주마다 나오는 숙제들이 도발적(?!)이다. 증명도 잔뜩 껴 있고, 수업에서 배우지 않은 내용들도 다루고, implementation도 Matlab, Python, MapReduce 여러가지로 해야되서 시간을 엄청 쏟아부었고, 붓고 있다. 얼마나 시간을 썼는지 측정하는게 의미없을 지경이다. 하지만 덕분에 classmates 들과 친해졌다. 다들 이 수업의 숙제 때문에 헤매고 있어서 종종 모여서 논의한다. 각자의 배경에 따라 같은 문제에 대해 서로 다른 통찰력을 가지고 있어서 친구들과 논의하면서 많이 배우게 된다. 난 그다지 통찰력이 없다는 것도 배웠다. -_- 프로그래밍 숙제는 괜찮게 하는 것 같은데, 수학 수식들 나오면 정신 못차리겠다. 


이 외에도 이번 학기에는 느낀 점이 많은데 다음 편에 이어서 써야겟다. 


신고

'일상다반사' 카테고리의 다른 글

두번째 학기 중간 점검  (1) 2011.03.04
Bookstore에서 커피 한 잔  (0) 2011.02.11
글을 짧게 써 볼까  (0) 2011.02.09
NoSQL in Twitter  (5) 2010.12.19
wrote at 2011.11.17 16:59 신고
해야 이제 당신도 미정 수 :있는과 함께, 선택한 earbuds를 데리러 새로운 최고의 쿠페로 가서 당신의 문의는 Microsoft 준 이러한 사람을 선택하고 다음 음악 플레이어와 하나가 사람에게 바람직 생겼는지 발견 당신은 훨씬 더 보이게 프로그램을 켜십시오. 당신의 당신의 필요를 충족 인식됩니다.
이름 :
비밀번호 :
홈사이트 :
비밀글 :
어제 잠을 설쳐서인지, 7시간 가까이 잤는데도 유난히 정신 못 차리고 있다. 

브런치 먹고서 도서관에서 공부하는데, 너무 졸리길래 집에 갈까하다가 그래도 곧 오후 수업이 있으니 정신을 차려보고자 bookstore에 와서 커피 한 잔. 

학기가 시작했다 싶었는데, 벌써 중간고사가 끝나버렸다. 이번 학기는 이제 한달 남짓 남았고, 다음주에 on-site interview 보고, 그 다음주에 시애틀 가서 인터뷰 또 보고, 어느 회사에서 일할지 결정하고 나면 기말 프로젝트 내고서 바로 기말고사 돌입. 뭐 이런식으로 이번 학기는 마무리될 듯. 

그래도 이번 학기 목표한 3가지 중 2가지는 달성. 나름 괜찮게 흘러가고 있는 듯. 
신고

'일상다반사' 카테고리의 다른 글

두번째 학기 중간 점검  (1) 2011.03.04
Bookstore에서 커피 한 잔  (0) 2011.02.11
글을 짧게 써 볼까  (0) 2011.02.09
NoSQL in Twitter  (5) 2010.12.19
이름 :
비밀번호 :
홈사이트 :
비밀글 :
학기가 시작하고 바빠지니까, 정리된 글을 쓰려니 블로그에 손을 안 대게 된다. 

역시 대세는 트위터처럼 140자로 하는건가. 페이스북에 짧게 내 status 남기는건 하겠는데, 블로그에 길게 글 쓰는건 쉽지가 않다. 요 한 페이지 정리할 공간이 머릿속에 없다. 이미 수업에서 배우는 것만으로 꽉 찼다. 

블로그에 되도록이면 내가 겪은 것 중에 다른 사람에게도 도움이 될만한 걸 공유하려고 했었는데, 내가 다른 사람들의 블로그를 살펴볼 때를 떠올리면, 가끔은 그냥 다른 사람의 고민과 생각들을 편안히 나열한 글을 볼 때도 꽤 좋았던 것 같다. '다른 사람들도 나와 비슷한 고민을 하는구나' 이렇게 떠올리면서. 

그래서 이제부터는 그냥 가벼운 일상의 고민들을 짧게 자주 블로그에 남겨볼까 한다. 

한 번 시도해보고 반응이 별로면 다시 바꾸면 되지, 뭐. 
신고

'일상다반사' 카테고리의 다른 글

Bookstore에서 커피 한 잔  (0) 2011.02.11
글을 짧게 써 볼까  (0) 2011.02.09
NoSQL in Twitter  (5) 2010.12.19
한 학기가 끝났다  (7) 2010.12.11
이름 :
비밀번호 :
홈사이트 :
비밀글 :
근래에 널리 사용되는 NoSQL 이란 용어가 있다. 

SQL을 사용하는 Oracle, MS SQL, MySQL, Sqlite 와 같은 기존의 관계형 데이터베이스와 달리 SQL을 사용하지 않는 데이터베이스를 일컫는 용어이다. 구글의 BigTable, 아마존의 Dynamo, 그리고 아파치의 Cassandra(카산드라)가 대표적인 예이다. 

구글의 BigTable과 아파치의 Cassandra에 대해서는 여기저기 글들에서 언급하는 걸 들었지만 실제로 기존의 데이터 베이스와 어떻게 다른지, 어디에 사용되는지 알지 못했었다. 지난 학기에 들은 데이터 베이스 수업 (CS 145)의 마지막 수업에 Twitter에서 일하는 Kevin Weil이 초빙되어 강연을 했는데, 트위터에서는 대량의 데이터를 어떤 데이터베이스 시스템을 이용해서 다루는지 설명해주어서 많은 도움이 되었다. 

강연의 슬라이드는 이곳에서 볼 수 있다. 

강연을 간단히 요약해보자면 아래와 같다.

Tweeter에서는 MySQL을 주로 사용하는데, 많은 트윗의 양을 다루는데 생기는 문제점과 해결책들은 

- 하나의 머신에서 다루기에는 데이터가 너무 많다: 나눠서 해결해야 한다.
- Join은 너무 오래 걸린다: Join과 관련된 부분은 안 할 수밖에 없다
- Index가 없는 column에는 쿼리가 거의 불가능하다: key lookup만 허용되어야 한다.
- Query가 보내진 시점에서 disk access는 지나치게 오래 걸린다: 어플리케이션에서 캐쉬를 적절히 다뤄줘야 한다.
- 서버가 고장났을 경우 유연한 대처가 불가능하다: 고장난 머신을 사용하지 않는 대안책이나, 적절히 다른 쿼리로 대체해줘야 한다.

그래서 사용하는 것 중의 하나가 Cassandra이다. 그 이유는
 
- Decentralized, fault-tolerant
- 어플리케이션에서 조작할 수 있는 다양한 캐쉬 레이어가 존재
- 유연한 스키마
- 쓰기가 빠르다 


NoSQL 데이터 베이스 시스템에 대한 이 강연의 결론은 "목적에 가장 적합한 툴을 골라 쓰기"이다. 데이터가 대량이 아니라면, MySQL이 대부분 잘 작동하지만, 데이터가 많다면 (high volume) CPU/disk/memory/latency 등 요구 사항에 맞는 데이터베이스 시스템을 골라 써야 한다. 

NoSQL 시스템의 예로는 Cassandra, HBase, MongoDB, CouchDB, Riak, FlockDB, Memcache, Redis, Neo4j, Voldemort, Tokyo Cabinet 등이 있다.


각 데이터베이스 시스템은 trade-off가 있고, 본인의 요구 사항에 맞춰서 써야 한다는 점이 흥미로웠다. 

신고

'일상다반사' 카테고리의 다른 글

글을 짧게 써 볼까  (0) 2011.02.09
NoSQL in Twitter  (5) 2010.12.19
한 학기가 끝났다  (7) 2010.12.11
스탠포드에서의 첫학기 (in Computer Science)  (15) 2010.11.01
 
wrote at 2011.01.04 07:53
비밀댓글입니다
wrote at 2011.01.06 12:45 신고
네, 이 외에도 세미나 수업에는 다양한 분야의 사람들을 많이 초빙하더라구요. 예를 들면 Cloud Computing (CS309A) 같은 경우가 그렇지요.
http://cs309a.stanford.edu/
wrote at 2011.01.31 19:13 신고
야 요고 정말 잼있는 주제이네~
트위터에서는 이렇게 처리를 하는구나 정말 흥미로와~
아마 네이버에서도 이런게 필요할듯
너에 블로그에서 정말 흥미로운 주제를 보게 된다.
좀 더 알고 싶은데 ㅋㅋ 설명 해줘 ㅋㅋ
 
wrote at 2011.02.16 18:58
비밀댓글입니다
wrote at 2011.02.17 18:58 신고
네 초대장 보내드렸습니다.
이름 :
비밀번호 :
홈사이트 :
비밀글 :
*1  *2  *3  *4  *5  ... *21 
count total 249,695, today 15, yesterday 46
달력
«   2017/01   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
알립니다
I am
분류 전체보기
일상다반사
책 리뷰
On the Web
무술 수련
About me
꼴지 동경대를 가다를 통해..
글 보관함
2011/03, 2011/02, 2010/12, 2010/11, 2010/09,
rss

티스토리 툴바