Author Archives: skpark

[파이썬 데이터 분석 입문] 으로 파이썬 & 데이터 분석 동시 입문하기

파이썬데이터분석입문

한빛미디어의 나는 리뷰어다 이벤트로 "파이썬 데이터 분석 입문(Foundations for Analytics with Python)"을 리뷰하게 되었다.

2011년, 대학생 때 친구들과 스크립트언어 하나를 공부하기로 하면서 파이썬을 처음 접한 이후로 지금까지 파이썬을 매우 유용하게 사용해오고 있다. 처음에는 간단한 웹 프로그램을 만들면서 시작했고, 대학원에 와서는 Flask를 이용한 연구용 웹 프로토타입 개발이나 데이터 분석을 위해 사용중이다. 파이썬 이외에도 데이터 분석을 위해 R도 가끔 쓰고, ggplot을 이용하여 그래프도 그리는 수준이라, 분명 이 책에서 대상으로 하는 데이터 분석 초보는 아니다. 그래도 당장 눈앞에 닥친 과제를 해결을 위해서 초급부터 한단계씩 오르기보다는 온 몸으로 부딪혀가며 거칠게 배워온터라 데이터 분석 입문시 반드시 알아야 할 기본기가 부족한 것은 아닐까라는 생각은 항상 하고 있었는데 우연한 기회에 이 책을 접하게 되었다.

파이썬데이터분석입문_1

이 책은 책 제목을 잘 따르고 있다. "Foundations." 일단은 데이터 분석이전에 파이썬의 기초부터 시작한다. 실제로 책 전체 350페이지 중 첫 100페이지가 파이썬 설명에 할애되었다. 단 100페이지로 파이썬을 전부 다루는 것은 당연히 불가능하므로, 데이터 처리에 필수적인 부분만 집중적으로 공략한다. 그리고 CSV/Panda를 이용한 데이터 분석, 엑셀 데이터 분석, 그리고 SQLite3/MySQL를 이용한 데이터베이스 기반 데이터 분석 등을 하나씩 다루고 있다. 데이터 분석 입문으로 필수적인 내용들이다. 하나하나 예제소스와 출력 결과를 보여주고 있기 때문에 이해하기도 쉽다. 단, 이 책을 통해 데이터 분석에 입문하고자 하는 사람은 반.드.시. 예제를 다 따라쳐보길 권한다. 그리고 이 책을 읽으면서 놀란 점은 번역이 매우 깔끔하다. O'REILLY 표지만 아니었다면 국내에서 새로 낸 책인줄 알았을 정도다.

아쉬운 점으로는, 이 책에서 csv 라이브러리 이외에 Pandas까지 같이 언급하고 있는데, 이제 프로그래밍도 처음 접하는 초보에게 pandas까지 가르치는게 맞는지 잘 모르겠다. 어차피 여기서는 csv로도 할 수 있는 일을 판다스로도 해보는 수준이라. Pandas의 강력함이 전혀 보여지지 않는다. 또한 좀 더 실전적인 예제들이 들어있었다면 좋았을 것 같다. 카테고리별 평균구하기 정도의 예제가 아니라 실제로 독자들이 읽으면서 공감할만한 예제, 예를 들면, 고객 구매 데이터에서 가장 많이 구매된 항목순으로 랭킹 보여준다던가, 특정 물품과 함께 구매될 때 가장 많이 같이 구매된 물품 예상하기 등의 예제였다면 더 재미있게 따라할 수 있지 않았을까 싶다.

"이 책은 데이터 분석을 위해 스프레드시트를 자주 이용하지만 프로그래밍 경험은 전혀 없는 독자를 대상으로 한다." p9

여기서 "스프레드시트를 자주 이용하지만"이 포인트인 것 같다. 특히 주위에 엑셀을 계속 써오던 사람은 엑셀만으로도 데이터 분석과 그래프 그리기가 충분하다고 말하지만, 데이터 양이 엑셀에서 커버할 수 있는 범위를 넘어서기 시작하면 엑셀만으로는 다루기 힘들다. 엑셀에서 다양한 함수를 제공한다하지만, R이나 파이썬 패키지에 비할 바도 아니다. 결국 데이터 분석을 해야하는 사람이라면, 엑셀로 다 할 수 있다고 혼자 끙끙앓지말고 당장 R이든 파이썬이든 이용해서 본격적인 데이터 분석으로 들어와야한다. 진입장벽이 좀 높긴하지만, 그 진입장벽을 낮추는데 이 책이 도움을 줄 수 있을 것 같다.

특정 언어를 활용한 뭔가 해내기 종류의 책을 볼 때마다 느끼는 것이지만, 그 책을 10번 읽어도 소용없다. 추가적인 공부가 더 필요하다. 처음 프로그래밍을 하는 사람이 이 책을 통해 100페이지 분량의 파이썬 설명을 공부한다고해서 파이썬을 이해하기는 굉장히 어렵다. 이 책을 읽고나면 이제 말 그대로 데이터 분석에 "입문" 한 수준이다. 이 책에서 배운 내용들을 더 잘 활용하기 위해서 다음과 같은 내용들을 추가로 공부해보길 권한다.

  • 점프 투 파이썬: 파이썬 분야의 베스트셀러 책이다. 책을 구입해도 좋고, 책 내용이 온라인에 완전 무료로 공개되어있으니 https://wikidocs.net/book/1로 접속해서 하나씩 보면서 공부해도 좋다.
  • 데이터베이스: 이 책에서 데이터베이스로 SQLite3와 MySQL을 다루고 있다. MySQL은 "Head First MySQL"이 데이터분석을 처음 접하는 사람에게 적합한 책으로 권한다. 나도 MySQL을 막연하게 알고 있을 때, 이 책을 통해 기본을 다졌다. 책사는게 싫다면 생활코딩에서 MySQL 기본 강의가 있으니 참고해도 좋다: https://opentutorials.org/course/195
  • R: R은 데이터 분석 및 통계를 위한 언어이다. 이 책에서 다루고 있는 파이썬용 ggplot 라이브러리 등은 사실 R에서 먼저 쓰였던 것들이다. 데이터 분석에 본격적으로 뛰어들면 결국 R과 만나게 될 것이다. 코세라에서 무료로 공개되어있는 R강의를 추천한다: https://www.coursera.org/learn/r-programming

<파이썬 데이터 분석 입문>의 자세한 내용은 한빛미디어 홈페이지에서 확인 하실 수 있습니다."

[NodeJS] npm run setup 또는 npm run start 윈도우 에러 문제 해결

ReactJS 관련 패키지들을 이것저것 설치해보려는데 아래와 같은 에러가 자꾸 발생했다.

npm ERR! Windows NT 7.x xxxx
npm ERR! ...
npm ERR! ...

이럴 땐 다음 명령어로 해결가능하다. 뭔가 마구 설치를 하면서 정상 해결된다! 해결은 했지만 이유는 아직 잘 모르겠음.

npm install --registry http://registry.npmjs.org/

nodejs_Error

[신경망 첫걸음]과 함께하는 신경망으로의 첫걸음

신경망첫걸음알파고 이후로 인공지능과 관련된 책이 쏟아지고 있다. 기계학습, 딥러닝, 강화학습...

처음 인공지능을 접한 것은 2009년 학부 3학년 때, 4학년 전공과목으로 열린 기계학습이라는 수업을 들었을때다. 당시 수업 이름이 왜 인공지능이 아니라 기계학습이라는 희안한 이름일까라고 생각했는데... 지금 기계학습이 이렇게 폭발적인 인기를 끌 것이라고는 생각하지도 못했다. 수업 내용은 [신경망 첫걸음]과 매우 비슷했던 것 같다. 인공지능의 기본에 대해서 배우고, 신경망 알고리즘의 동작원리. 그리고 프로그래밍으로 간단하게 신경망 알고리즘 동작을 실습. (아마도 C언어로 실습했던 것 같다.) 거~의 10년 정도가 지난 지금, 현재 컴퓨터과학과 관련된 전공으로 박사과정을 하고 있지만 신경망 알고리즘의 상세 동작 원리는 이미 잊은지 오래였다. 이 책을 통해 다시 신경망 알고리즘의 기본에 대해 다시 복습해보고, 실제 실습까지 해보기 위해 이 책을 선택했다.

이 책은, 제목 그대로 신경망 알고리즘의 기본 동작원리에 대해 아주 상세하게 다룬다. 신경망 알고리즘이 왜 생겼으며, 신경망 알고리즘이 무엇인고 어떻게 동작하는지 처음부터 아주 차근차근 가르쳐주고 있다. 학부 수업 때는 에러보정과정까지는 배우지 않았던 것 같은데, 이 책에서는 어떻게 신경망 알고리즘이 동작해서 결과값을 예측하며, 틀린 경우에 어떻게 에러를 스스로 보정해나가는지 차근차근 알려줘서 흥미있게 읽을 수 있었다. 이해하기 매우 어려울 수도 있는 부분들을 수학적인 내용도 아주 자세하게 설명해줘서, 끊기지 않고 읽을 수 있었다. 신경망 알고리즘을 이해하고 나서는 파이썬을 이용하여 손글씨 데이터를 스스로 학습하고 예측하는 프로그램을 실습한다. 다행히 나는 파이썬에 매우 익숙해서 코드를 이해하는데는 전혀 지장이 없었다. 하지만 파이썬을 잘 몰라도 걱정할 필요는 없어보인다. 파이썬을 잘 모르는 사람들도 일단 실습에 사용된느 프로그래밍 코드는 적당히, 신경망 알고리즘이 우리가 배운대로 동작한다는 것 정도는 이해할 수 있을 정도로 파이썬의 기초에 대해 한 챕터를 할애하여 잘 설명해주고 있다. 다만, 프로그래밍에 대한 기초가 아예 없다면 이해하기 힘들수도...

책이 300페이지가 채 되지 않고, 크기도 작아서 휴대하기도 편하다. 첫걸음이라는 제목에 걸맞게, 전공 관련 책을 봤을 때 느껴지는 무게감은 전혀 없다. 표지에서부터, 수포자도 이해하는 신경망 동작원리와 딥러닝 기초라는 말이 있어서 더 다가가기 쉽도록 해준다. 괜히 쓸데없이 두꺼우면서, 초급로 시작해서 책 말미에는 어려운 내용으로 가득한 책보다, 이렇게 가벼우면서 처음 입문하는데 충분한 수준의 내용을 적절하게 다뤄주는 것이 훨씬 좋다고 본다. 이제 인공지능의 기초 첫걸음을 내딛었으니, 다음은 텐서플로 첫걸음을 사봐야겠다. 텐서플로 첫걸음도 이렇게 부담없이 쉽게 이해할 수 있기를 바라면서.

본 리뷰는 "한빛미디어 나도리뷰어 이벤트"를 통해 [신경망 첫걸음] 도서를 지원받아 작성되었습니다.

Category:

만약 헤밍웨이가 자바스크립트로 코딩한다면

만약 헤밍웨이가 자바스크립트로 코딩한다면

본 서평은 한빛미디어로부터 책을 증정받아 읽고 쓴 글임을 알립니다.

작년 말에 팟캐스트 "나는 프로그래머다" 자바스크립트 편을 들을 때, 만약 헤밍웨이가 자바스크립트로 코딩한다면 이라는 재미있는 책이 나왔다는 말을 들었다. 프로그래밍 관련 서적은 대부분이 특정 언에에 대한 입문 서적인데, 특이하게 문학의 거장들의 프로그래밍을 주제로 책이 나왔다니. Yes24에 접속해서 미리보기로 처음 몇 장을 읽어보니 정말 특이했다. 첫 이야기가 바로... 헤밍웨이가 피보나치 수열을 짠다면?

이 책은 자바스크립트에 대한 책이 아니다. 자바스크립트가 어떤 언어인지, 문법은 어떠한지에 대한 설명따위는 없다. 고로, 자바스크립트를 모르는 사람은 이 책을 이해할 수가 없다. 나도 자바스크립트를 잘 하는 것은 아니지만, 학부때 컴퓨터를 전공했고, 웹 프로그래밍 경험이 몇 번 있다보니 자바스크립트에 대해 어느 초급 이상의 지식은 충분히 갖고 있다고 생각하고 있었다. 이 책을 읽기 전 까지는...

이 책에서는 헤밍웨이를 포함한 총 25명의 문학거장들이 자바스크립트를 이용하여 피보나치수열 등의 간단한 알고리즘을 코딩한다면 과연 어떻게 코딩했을까? 에 대해 다루고 있다. 직접 자바스크립트 코드를 보여주고, 왜 해당 문학거장이 이런 식으로 코딩을 했을지에 대해 설명해주는 패턴이다. 절대 잘 짜여진 코드는 아니다. 철저하게 해당 문학거장의 스타일만을 담고 있다. 심지어 무슨 말인지 알아볼 수 없는 코드도 있다. 괴짜같은 문학 거장이 코딩했다면 당연히 코드리뷰따위는 고려도 하지 않고 자기만 알아볼 수 있게 짰을테니까. 해설을 한참 들여다보고서야 겨~우 이해가 될 법 한 코드도 많다. 코드골프 같기도 하고.

최근에 셜록홈즈 전집을 읽었던 터라, 책 내용 중에 코난 도일의 계승 알고리즘 코드가 매우 마음에 남았다. 코난 도일이 작성한 코드는 "주어진 인수의 계승(팩토리얼)을 반환하는 함수". 셜록홈즈는 관찰한 내용을 기반으로 철저하게 과학적으로 접근한다. 이런 셜록홈즈의 스타일이 반영된 코난 도일의 코드는 첫 줄 부터 남다르다.

"use strict";
고백하건데, 자바스크립트에서 "use strict"; 가 뭘 뜻하는지 몰랐다... 그냥 코드 처음부터 쌩뚱맞에 문자열이 나왔구나 라고 생각만 했는데 해설을 보면서 "use strict";를 이용하여 strict mode로 코드를 실행하도록 했다는 사실을 알았다. 이 뿐만 아니라, 매우 개성이 강한 문학거장들의 코드답게 이해하기 어려운 부분들이 몇 군데 있었다. 덕분에 깨달았다. 나는 아직 자바스크립트 한참 초보이구나...

최근에 "대통령의 글쓰기"라는 책이 인기가 있었다. 청와대에서 연설비서관으로 일했던 저자가 김대중, 노무현 전 대통령의 연설문을 이야기하면서 글쓰기에 대해 이야기하는 책이라 매우 재미있게 읽었던 기억이 난다. 문득, 한국 문학가들 스타일로 자바스크립트로 코딩을 한다면?! 또는, 상상해보자. 박근혜가 자바스크립트로 코딩을 한다면? 문재인이 자바스크립트로 코딩을 한다면? 굳이 자바스크립트가 아니어도 괜찮을 것 같다. 유재석이 파이썬으로 코딩한다면? 설현이 자바로 코딩한다면? 이 또한 재미있지 아니하겠는가.

이 책에 나온 코드들이 좋은 코드가 아닌 것은 분명하다. 하지만 그 코드의 의미를 하나하나 생각하며 읽는 재미가 매우 쏠쏠하다. 심지어 주석마저도. 이 책을 읽고나니 이 책에 나온 피보나치, 팩토리얼 등의 간단한 알고리즘을 짜보고 싶어졌다. 궁금하다. 남이 보는 나의 코딩은 어떤 스타일일까? 내 코드에는 내 개성이 얼마나 묻어날까?

function review(book) {
    if (book==="만약 헤밍웨이가 자바스크립트로 코딩한다면") return "Read it, Right Now"
}
Category:

어서와~ 머신러닝은 처음이지?

본 서평은 출판사로부터 책을 증정받고 썼음을 미리 밝힙니다.

"어서와~ 머신러닝은 처음이지?"

최근 계속해서 나오는 머신러닝 관련 서적들 틈에서 특이한 이름, 특이한 표지의 책이 페이스북 R 사용자 모임에서 홍보되는 것을 발견하였다. 여기저기서 머신러닝이란 말을 쉽게 접할 수 있지만, 정확하게 머신러닝이 무엇인지, 인공지능, 강화학습이랑은 어떠한 관련이 있는지 궁금했었다. 이 책에서 제목부터 강조하고 있는 "초보"를 위한 머신러닝 입문이라니. R기초와 통계 기초의 배경지식이 있으면 훨씬 이해하기 쉽다고해서, 논문연구를 하며 기본적인 R과 통계를 계속해서 접해온 나는, '아, 이 책이 바로 나를 위한 책이구나' 싶었다.

책에 나온 소스코드를 다 실행해보지는 못 했지만, 굳이 소스를 다 실행해보지 않고서도 이 책의 대략적인 내용을 이해하는데는 어려움이 없어 다 읽는데 일주일이 채 걸리지 않았다.

이 책의 최고의 장점은 초보자들에게 여러 알고리즘(데이터마이닝기법/통계기법)들이 왜 필요한지, 어떤 분석을 할 때 필요한지 실례를 아주 잘 들었다는 것이다. 각 챕터마다 해당 챕터에서 설명하고자 하는 알고리즘의 필요성부터 확실하게 강조하고 넘어가니, 공부하고자하는 욕구가 절로 샘솟는다. 그리고 그 예시를 이해하기 쉽게 설명하기 위해 기초자료(엑셀자료)들도 매우 적절하게 사용하였다. 또한 알고리즘을 통해 분석된 결과를 그래프로 보여주어 한 눈에 이해할 수 있도록 도와준다. R을 설치하고, 간단한 통계분석을 해 본 경험이 있다면, 책에서 설명하고 있는 R코드를 따라하면서 실습도 바로 가능하다.

하지만 안타깝게도, 이렇게 큰 장점만큼이나 큰 단점이 존재한다. 이 책을 잘 따라가기 위해서는 기본적인 R과 수학적 지식이 필요하다. 이 책의 절반이 R코드와 수학식이라해도 무방할 정도인데, R과 수학을 모르면 이 책의 절받밖에 얻지 못하는 것이다. 하지만 아이러니하게도, 이 책을 잘 이해할 수 있을 정도의 R과 수학실력이 있는 사람이면, 이미 여기서 다루는 알고리즘들은 너무 쉬운 내용이라는 생각이 들었다. 실제로 초보를 위한 책답게, 내용에 깊이가 없다. 이 알고리즘이 이런 것이며, 이런 때에 쓰일 수 있다 정도를 이해하는데 도움이 되는 수준이라, 조금 더 난이도를 높였으면 하는 아쉬움이 있었다. 또한 왜 여기서 다루는 알고리즘들이 머신러닝과 관련이 있는지에 대한 설명이 없다. 제목은 머신러닝이란 말로 주목을 끌었는데, 막상 열어보면 여러 데이터마이닝 기법들만 소개되어 있을 뿐, 머신러닝이 무엇이며 이 기법들이 어떻게 머신러닝을 다루는데 초석이 되는지 초보자는 알 수가 없다. 개인적으로는 그냥 데이터마이닝 요약집이라는 느낌을 받았다.

R을 다뤄봤고, 약간의 통계지식이 있는데 데이터마이닝을 접해 본 경험이 없는 독자가 쉽고 빠르게 그 필요성과 내용을 이해하고 싶을 때. 이 책은 적절한 선택이 될 수 있을 것이다.

끝으로, 이 책의 완성도에서 조금 아쉬운 분들이 있어 남겨본다.

  • 핵심 용어에 대해서 한글과 영어가 계속 혼용된다. 예) 최근접이웃법, K-Nearest Neighbors, KNN 등의 용어 혼용
  • 책 끝의 Appendix에서 수학 증명이 있는데 쌩뚱맞게 손으로 쓴 수학 증명을 카메라로 찍은 사진이 실려있다. 그냥 깔끔하게 타자로 치지 않고...
  • 몇몇 챕터에서는 R대신 파이썬 코드를 썼다. 파이썬을 알아야 된다는 말은 책 소개에 없었던 것 같은데... 이 책을 이해하기 위해서는 파이썬 지식까지 필요하다.
  • 오타: p116에서 챕터 시작할 때, "앞의 7장에서 풀었던 스팸메일 문제는" => 7장이 아니라 8장이다.
  • 인용 문제: 이건 좀 민감할 수 있는 문제인데, 위키피디아나 다른 논문을 인용 및 논문의 그림을 그대로 가져와서 쓰면서 제대로 인용 표시를 하지 않았다. 그냥 단순하게 위키피디아에서 가져왔다 라던가, 논문의 저자명, 연도, 논문제목만을 언급 했을 뿐, 공저자나 학회명과 같은 정식 인용표기가 없어서 문제가 될 소지가 있어보인다.
Category:

파이썬 2차원 배열 생성하기

Coursera에서 알고리즘 수업을 진행하며 코딩 숙제를 풀던 중 2차원 배열을 만들어야 할 일이 생겼다. 아무 생각 없이 2차원 배열을 생성하고 코딩했더니 자꾸 배열에 값들이 원하는대로 들어가지 않더라. 알고보니 아래와 같은 차이가!!!

 
# 3*3의 2차원 배열 생성하기

#방법 1 - 나의 실수
list1 = [[0]*3]*3
list1[0][0] = 1
print list1 # [[1,0,0],[1,0,0],[1,0,0]]

#방법 2
list2 = [[0]*3 for i in range(3)]
list2[0][0] = 1
print list2 # [[1,0,0],[0,0,0],[0,0,0]]
 

실리콘밸리 견문록

컴퓨터과학 전공을 하고, 지금도 대학원에서 컴퓨터와 매우 밀접한 공부를 하고 있는 입장에서 실리콘밸리는 꿈의 무대가 아닐 수 없다.

2009년에 같은 학과 동기이자 같이 삼성소프트웨어멤버십 회원이었던 친구들과 학교 해외 탐방 프로그램에 지원했었다. 실리콘 밸리에 직접 가서 이런 저런 최신 기술 등등을 조사해오겠다는 거창한 계획을 갖고, 서류전형과 면접을 무사히 통과! 일정 금액의 비용을 지원받아 진짜로 실리콘밸리에 가게 되었다.

실리콘 밸리에 가기 전에 미리 연락드렸던 안모 박사님의 도움을 받아 구글 내부를 구경도 하고, 구글 식당에서 밥까지 먹었다. 당시 안박사님께서 구글은 학벌이고 뭐고 필요없이 진짜 실력을 보고 채용을 하는데, 뽑고 나니 좋은 학교를 졸업한 사람들이 많다는 말을 해주셨다. (이 책에서도 저자는 똑같은 말을 했다.) 그리고 실리콘밸리에 있는 새소망교회에 들렀다가 운좋게 실리콘밸리의 유명 기업들에 다니는 한국인 분들과 간단하게 질문/답변 및 조언을 받는 시간을 갖기도 했다. 그 자리에 현재 실리콘밸리 베이에어리어 (Bay Area) K-Group 대표인 윤종영씨도 계셨었고, 작년에 우리 학교에 강연 오셨길래 가서 인사도 드렸다. 물론 날 기억하고 계시진 않으셨지만 ㅎㅎㅎ

10여일 정도의 일정이 끝나고 한국으로 돌아왔고, 내가 실리콘밸리로 가기 위해서 무엇을 노력해야하는가에 대해 생각해봤다. 일단은 영어. 당시 내 토익 점수가 약 500점 정도 되었던 걸로 기억한다. 영어가 너무 부족하고, 전공 실력도 주위에 워낙 쟁쟁한 친구들이 많다보니 딱히 내세울 정도가 아니라고 느껴졌다. 일단 휴학하고 어학연수를 떠났다가, 어학연수따위로는 영어 실력이 오르지 않음을 깨닫고 일찍이 한국으로 돌아왔다. 그리고는 꾸준히 영어공부를 하면서 대학원 진학을 준비했고 지금까지 오게 되었다. 처음 석사과정을 시작할 때는 대학원을 와서 더 실력을 갈고 닦아 실리콘밸리로 진출하겠다! 라는 생각이 강했는데, 석사과정 2년은 너무나 순식간에 지나가버렸다. 그리고 현재 박사과정에 있으면서도 내가 계속해서 성장하고 있는지 잘 모르겠다. 이러한 고민을 가득 안은 상태에서 이동휘씨의 실리콘밸리 견문록을 읽게 되었다.

실리콘밸리 견문록은 총 3파트로 이루어져있다.
1. 왜 실리콘밸리인가: 실리콘 밸리와 관련된 잡다한 이야기들로 엮은 파트이다. 스티븐잡스, HP 등.
2. 구글은 어떻게 일하는가?: 저자가 구글 본사에서 일하면서의 보고 느낀 구글의 문화, 구글의 채용 과정 등에 대해서 다루고 있다.
3. 좌충우돌 미국생활 적응기: 한 40페이지 정도로 짧은 파트인데, 저자가 처음 면접을 보고 현지에서 적응하면서의 에피소드에 대한 이야기다.
사실 파트1, 2는 내게 너무나도 익숙한 내용들이다. 나는 실리콘밸리에 깊은 관심이 있으니까, 기사든 뭐든 실리콘밸리와 관련된 것들은 자주 읽었으니까. 아무래도 실리콘밸리가 핫하다보니 제목을 이렇게 지은 것 같은데, 사실 내용을 살펴보면 차라리 구글 견문록이 더 어울릴 것 같기도하고... 오히려 파트3가 내게 더 와 닿았다. 아 이런 구글본사에서 일하는 분도 영어때문에 어려움을 겪었고, 다른 쟁쟁한 실력자들을 보며 위기감(?)을 느낄 수도 있구나라는 것들을 알 수 있어서 한 편으로는 안심이 되기도 하고, 또 한편으로는 걱정이 되기도 했다. 저자도 뭔가 나와 완전히 다른 세계에 계신 분은 아니었지만, 어쨌든 자신을 당당히 증명해내셨다는 점에서 나도 할 수 있다는 자신감!... 그리고 그 어마어마한 사람들이 있는 곳에 진짜 갈 수 있기는 할까? 가더라도 얼마나 버틸 수 있을까? 와 같은 걱정이다.

이 책을 읽으면서 다시금 예전에 실리콘밸리를 밟을 때의 기억이 새록새록 나면서 나태한 나를 반성하는 시간을 가질 수 있었다. 구글 본사에서 일하고 계신, 지도교수님의 후배분께서 한국에 들렀다가 지도교수님을 만나러 학교에 들린 적이 있다. 그 때 그 분께서 구글의 개발자들을 묘사하였던 이야기가 생각난다.

"다들 천재들인데 일을 즐기기까지 하니까 따라가기가 너무 힘들다."

아, 나는 천재도 아닌도 일을 제대로 즐길 줄도 모르는 것 같은데... 날벼락 같은 한 마디였다. 지금의 나를 제대로 반성하고, 천재는 이미 늦었으므로 지금의 내 일부터 즐기줄 아는 사람이 되어야겠다. 그리고 나중에 실리콘밸리 입성록으로 책 하나 내야지.

하버드 새벽 4시반

harvard

 

도서관 가는 길에 서점에 들렀는데 하버드 새벽 4시반 이라는 책이 진열되어있는 것을 보았다. 최근 이 책이 YES24 베스트셀러에 꽤 높은 순위에 올라있었던 것이 어렴풋이 기억났다. 책 첫 장에 들어가는 글을 읽어보고 나서 바로 구매를 결정! 나는 이때까지만 해도 인터넷에 떠도는 하버드 도서관의 새벽에 수많은 학생들이 공부하는 사진을 떠올리며, 하버드 학생들의 살아있는 열정이야기를 기대했다. 하지만, 이 책이 하버드의 이름을 빌린 평범한 공부 관련 자기계발서라는 것을 깨닫는 데는 10분도 채 걸리지 않았다. 군대를 전역하고 막 복학하였을 때 쯤, 하버드 스타일이라는 책을 본적이 있다. 어떤 기자가 직접 하버드에 머물면서 들려주는 생생한 하버드 이야기가 매우 재미있었는데, 이런 스타일의 책을 기대했던 것이 잘못이다.

어릴 적에 보던 탈무드 책에서 공부 관련 내용만 그대로 빼 온 느낌. 이야기 하나하나마다 억지로 하버드를 언급하고 있기는 하다. 하버드의 어느 교수가 이런 말을 남겼다. 또는 하버드의 어느 교수가 강의시간에 했던 이야기이다. 라는 식으로 인터넷에서 많이 접해봤음직한 글들이 짜깁기 되어있는데, 일단 신뢰자체가 가지 않을 뿐더러, '하버드'를 이용한 것을 제외하고는 기존의 다른 자기계발서에 비해 내세울 것이 없기에 책을 읽으면서도 내가 책을 읽고 있는 것인지 시간을 버리고 있는 것인지 헷갈리기도 할 정도였다.

물론 나를 반성하게 만드는 글들도 적지 않게 있긴 했다.

어느 시간 관리 전문가가 이런 말을 했다.
"순서도 목표도 없는 무차별적인 일들은 대부분 끔찍할 정도로 효율이 낮습니다" (p.125)

마치 나를 보고 하는 소리 같아 반성을 하게 되긴 하는데... 어떤 시간관리 전문가가 언제 이런 말을 했지? 라는 의문이 드는 건 어쩔 수 없다. 이 책에선 이런 패턴이 계속된다. 이 책의 출판사인 '라이스 메이커'를 검색해보니 최근 자기계발, 취미 관련 서적을 출판하고 있는 것 같은데, 책에 오타도 몇 개 보이고... 자기계발서에는 별 관심이 없는지라 이 출판사 책은 앞으로 읽을 일이 없을 것 같다.

Category:

(사용자를) 생각하게 하지마!

새 학기 시작을 며칠 앞두고, 다음 호 Power English를 사러 서점에 들렀다가 재밌는 제목의 책을 발견하였다. (사용자를) 생각하게 하지마! 라고 검은 글씨로 크게 써져 있는 표지가 심플함을 좋아하는 내 마음에 딱 들었다. 목차를 훑어보니 더 마음에 들었다. 학부에서 컴퓨터과학을 전공하였지만 간단한 개발 스킬을 갖췄을 뿐, 어떻게 이런 것들을 디자인해야 하는지에 대한 감이 한참 부족했던 나이기에 더 이상 생각하지 않고 바로 이 책을 구매했다.

하루에도 수백 번씩 이런저런 웹사이트에 접속하면서 가끔씩 거지같은 사용성에 대해 짜증이 솟구칠 때가 있다. 제일 대표적인 예가 바로 쇼핑몰에 접속할 때다. 일단 접속할 때부터 뭘 그리 비밀번호를 바꾸라고 난리인지, 해킹은 자기들이 당해놓고 남 탓을 하고 있다. 그리고 계속해서 복잡해지는 비밀번호 조합 때문에 이제는 내 비밀번호가 뭐인지도 헷갈린다. 로그인하고 나서 원하는 물건을 찾는 것도 그리 편하지 않고, 이 불편함과 짜증의 절정은 결제단계에 이르러서 최고점을 찌른다. 뭔가 이상한 프로그램을 설치하고 설치하고 재부팅하고 나면 에러...

내 학부 전공이 컴퓨터과학이기에, 나 자신을 일반적인 사용자로 보기엔 무리가 있다. 그냥 일반 사용자들은 어떻게 웹을 사용하고 있을까? 이 책에 따르면, 사용자들은 내가 생각하는 것보다 훨씬 적은 시간 동안만 머무르며, 웹의 내용을 다 읽지도 않는다고 한다. 그냥 훑.을.뿐. 그리고 어떠한 방법으로든 그냥 자신이 원하는 목적만 달성하면 끝이다. 쇼핑몰에서는 원하는 상품을 구매만 할 수 있으면 끝이다. 최적을 생각할 필요가 없다. 당연히 동작 방식을 이해하려 하지도 않는다. (나는 이해하려 한다...)

(사용자를) 생각하게 하지마!는 웹과 모바일 사용성 원칙에 대해서 기본적으로 지켜야 할 내용들, 좋은 사용성을 제시 하기 위한 방법 들을 설명하고 있다. 먼저 사람들이 실제로 웹을 어떻게 사용하는지에 대해 먼저 설명을 하고, 이러한 사용패턴을 바탕으로 어떻게 웹과 모바일을 디자인해야 할지 하나하나 설명해준다. 그리고 더 나은 문제점 발견 및 대책 마련을 위해 어떻게 사용자 평가를 실시해야 하는지 까지도 중요하게 다루고 있다.

나같이 웹, 모바일 앱/웹의 개발과 관련 있는 사람이 더 나은 사용성을 제공하는 서비스를 만드는데 관심이 있다면, 특히 나처럼 컴퓨터를 전공하고 HCI에도 관심이 있는 사람이라면 이 책을 강력 추천하고 싶다.

Category:

아이디어가 들썩이는 사용자 경험 스케치 워크북

나는 주로 새로운 서비스 관련 아이디어가 떠오르면 에버노트에 글로 기록해 놓곤 한다. 하지만 임시방편으로 한 두 문장의 글로만 남겨놓다보니 나중에 다시 봤을때 정확하게 기억이 나지 않을 때가 있다. 그리고 제대로 기억이 난다 하더라도 아이디어를 계속해서 발전시켜나가는 그 과정을 기록하기에는 단순한 글쓰기는 큰 한계가 있다.

아이디어가 들썩이는 사용자 경험 스케치 워크북은 어떻게 아이디어를 디자인하고, 더 좋은 아이디어를 이끌어낼 수 있을지에 대해 다양한 방법들을 알려주고 있다. 이 책은 계속해서 특정 아이디어를 새로운 스케치 방법을 이용해 디자인해내는 과정을 보여주면서, 독자로 하여금 해당 스케치 방법을 이용하여 자신만의 스케치를 만들어내도록 하고 있다. 사실 이 책에서 설명하는 여러가지 아이디어 스케치 방법들이 어마어마하고 대단한 방법들은 아니다. PPT나 포스트잇을 이용한 목업 또는 스토리보드 만들기 등, 일상생활에서 쉽게 따라할 수 있는 방법들이다.

이 책을 통해 다양한 아이디어 스케치 방법에 대해 알게된 것 보다는, 아이디어 스케치 방법의 중요성과, 아이디어는 기회를 탐색하는 확장과 의사를 결정하는 수렴을 반복하는 디자인 프로세스를 통해 계속해서 발전될 수 있다는 것을 직접 예시를 통해서 확인한 점이 훨씬 의미있게 다가왔다.

갤럭시 노트같은 좀 큼지막한 스마트폰이 있으면 간단히 글로만 아이디어를 남기기보다는, 대략적은 스케치와 함께 아이디어를 남길 수 있지 않을까 싶다.

Category: