기본 콘텐츠로 건너뛰기

좋은 책을 고르는 방법


책을 읽기 위해 대형 서점에 왔다. 작은 서점에서는 만족스러운 책을 찾을 수가 없다는 판단에서이다. 인터넷 서점에서는 책의 내용을 볼 수가 없고..
지금 이순간에도 무수한 책들이 전 세계에서 쏟아져 나온다. 대형서점에서는 이 많은 책들 속에 내가 원하는 책이 있을까 생각하며 찾아보지만, 분량에 압도되어 몇 권을 읽어보고는 이내 그 다음 책들은 보지 않게 된다.
결국 난 책을 덮고 다시 나온다..

쉬는날이면 어김없이 서점에서 책고르기를 수십년..
시간을 버렸다고 볼 수도 있지만, 그 시행착오 속에서도 삼인행필유아사언(三人行必有我師焉)이라고 할까.. 나쁜책은 왜 안읽히는지를 알 수 있게 되고, 책들이 가지는 공통점도 알게되고, 책을 접했을때의 거부감도 사라진다. 그게 나에게는 득이 되어 다양한 책을 접하게 되는것 같다.

그렇다면 지식을 얻기 위해, 또는 간접경험을 얻기위한 목적은 달성했을까?
이건... 반정도 랄까?
왜 내가 원하는 책을 못찾았을까?
이건 책이 안좋아서는 아닐 것이다.
대충 책을 쓴 사람들도 있을테고, 돈을 목적으로 책을 쓰는 사람들도 있지만, 이들의 공통점은 책으로 나올때까지 많은 노력을 통해 책이되어 나왔다는 것이다.

하지만, 책을 만들기위한 장벽이 낮아진 일인출판시대.. 어떻게 하면 사람들이 읽을까 하여 자극적인 유행어를 남발하며 사창가의 창녀들처럼 손짓을 하는것이 보인다.
사창가의 그들 또한 알고보면 좋은 사람들도 많은 것처럼, 편집자의 강요에 좋은 책이었던 것들이 한 번이라도 돌아보게 하기위해 빨간 립스틱을 짙게 바르고 야한 치장을 하며 손짓을.하게 되기도 하고, 자발적으로 나서서 그렇게 하기도 한다. 

여기서 생각을 했다.
책이란 고가의 물건이 아니기 때문에 큐레이터도 붙지 않는다.
단지 돈을 위한 파워블로거들의 매출을.위한 바이럴 광고정도..

어떻게 하면 읽히는.책을 만들 수 있을까?

나 뿐만 아니라 많은 사람들이 책의 제목을 보고 최소한 앞의 몇장은 들추어본다.
이내 휘리릭 책을 넘겨보고는 내용도 모르고 덮는다.
이게 요즘의 '책' 이고 책을.찾는 '사람'들의 모습인.것이다.
그럼 내가 만약 책을 낸다면 어떻게 낼까?
그렇다고 많은 사람들이 봐주길 바라면서 다양한 단어들로 꾸며보면 될까?

정직한 책은 스테디셀러가되고, 자극적인 책은 베스트셀러가 될수 있다. 이건 좋은 책이 가질 수 있는 가능성이지 모든 책에 대한 이야기는 아니다. 

내용이 좋은 책을 많이 읽도록 하는 방법이 있는 것이다.

예를 들어 난 소위 '빨간책' 이라고 하는 wrox사의 책을 선호한다. 
오라일리(O'Reilly)의 책은 너무 딱딱하고 정석같은 느낌의 책이 많은 반면, wrox사는 집필자의 경험을 바탕으로 여러가지 내용을 적어놓아 기분좋게 읽어내려갈 수 있다. 

그리고 난 특정 저자의 책은 읽어보지도 않고 산다. 
그건 그의 책을 위한 열정이나 책에 주고 싶은 정보에 대한 신념을 믿기 때문이다. 

하지만 처음 책을 출간할 때는 어떻게 하는 것이 좋을까?
단지 '한푼만 줍쇼' 하고 구걸이라도 해서 읽혀지게 하는 것이 좋을까?

요즘 찾고 있는 책은 빅데이터에 관련된 책이다. 
몇 주전에 갔을때는 한 두권 보이던데 지난주에는 갑자기 늘어 열 권 정도가 되었다. 
갑자기 바람이 불어 나타난 책들.. 
서두엔 역사, 그리고 빅데이터의 활용사례, 마지막에는 R등의 툴 소개.
결국 저자만 다르고 거의 비슷한 흐름이었다. 
무엇이 다르고, 대체 그들은 무엇을 전달하고자 책을 썼던걸까?
어떤 책을 사면 나에게 도움이 될까?
여섯 권쯤 읽었을까?
'똑같은' 책의 내용에 식상해져 한 권도 사지 않게 되었다. 

제목만 제각각이다. 
'전쟁', '혁명' 이란 단어들로 자극을 하는가 하면, 
'플랫폼', '클라우드' 등의 요즘 쓰이는 단어만을 섞어서 내용중에는 없지만 임팩트를 주고자 하기도 하고, 요즘 유행하는 유행어를 섞어 쓰는 책도 있다. 반면, 정직하게 '빅데이터' 만을 가지고 제목을 쓰기도 한다. 
정직하다고 많이 팔릴까? 자극적이나 요즘 유행어를 사용하는게 많이 팔릴까?
아직 판매부수에 대해서 정확한 자료가 없지만, 
들은 이야기로는 편집자들이 유행어나 자극적인 단어를 쓰면 평범한 것보다 더 임팩트가 남아서 많이 산다고 한다. 
이것 때문에 저자들은 싫어도 사창가의 그녀들처럼 손짓하는 책을 만들게 되는지도 모른다. 
우리나라에서는 안팔리는 책은 직 간접적으로 모두 저자의 부담이 되기 때문이다. 

그렇다면 책을 고르는 방법은 어떤 것이 좋을까?
내 방식이 정석이라고는 말할 수는 없지만, 
책을 고르는데 참고가 되었으면 해서 적어본다. 

난 책을 볼 때 우선 내가 찾고자 하는 주제가 있는 비슷한 책들을 한곳에 몰아넣는다. 
그리고 저자, 머릿말, 목차 순으로 본다. 
저자정보는 이 책이 좋거나 좋지 않았을 때 참고가 되는 정보이다. 신념을 가지고 만들었느냐에 대한 이슈이다. 
머릿말은 꼭 읽어본다. 왜 이 책을 썼는지를 알 수가 있고, 그 저자의 머릿속을 어느정도는 볼 수 있기 때문이다. 가끔 이 책을 대상으로 하는 사람들에 대한 내용도 있지만, 맞지 않는 경우도 종종 있다.
목차에 내가 원하는 내용이 얼마나 있는지를 본다. 
그리고 나서 내가 원하는 정보를 먼저 찾아보고, 나머지를 한 번 빨리 훑어본다. 
내가 원하는 정보의 분량이 몇 페이지 인지?
내가 원하는 정보를 이 책에서만 얻을 수 있는지?
만약 이 책에서 전부는 못얻는다면 또 다른 책에서 같이 얻을 수 있는지?
내가 원하는 정보만 생각했을 때 이 책의 가격이 적합한지? 두 권 이상이라면 합한 금액이 내가 원하는 정보의 가격이 된다.
이게 합당하면 구매를 한다. 

결국 난 책 제목을 보지 않는다. 
이게 내가 지금까지 해왔던 시행착오를 거쳐 만들어 낸 이론이다. 
시간이 많이 걸릴지도 모르지만, 
많은 책을 보고 그에 맞는 책을 선택할 수 있어 이 방법을 많이 택하곤한다. 

댓글

이 블로그의 인기 게시물

Alter table 에서 modify 와 change 의 차이 :: SQL Server

두 개의 차이를 모르는 경우가 많아서 정리합니다.  modify는 필드의 속성값을 바꿀때 사용하구요.. change는 필드명을 바꿀떄 사용합니다.  alter table tbbs modify bNote varchar(2000) NULL; alter table tbbs change bNoteOrg bNoteNew varchar(2000) NULL; change에는 원래 필드와 바꾸고 싶은 필드명을 넣어서 필드명을 바꾸는 것이죠~ 더 많은 SQL Server 팁을 보려면  https://github.com/LowyShin/KnowledgeBase/tree/master/wiki/SQL-Server giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

책에서는 안 알려주는 대규모 트래픽을 위한 설계

음성 버전 :  https://www.youtube.com/watch?v=ZZlW6diG_XM 대규모 트래픽을 커버하는 첫 페이지 만드는 법..  보통 DB를 연결할 때 대규모 설계는 어떻게 하시나요?  잘 만들었다는 전제 하에 동접 3000명 이하는  어떤 DBMS를 사용해도 문제 없이 돌아갑니다.  여기서 이미 터졌다면 이 콘텐츠를 보기 전에 DB의 기초부터 보셔야 합니다.  아.. 개발 코드가 터졌다구요? 그럼 개발자를 때리셔야지요..  만약 3000명을 넘겼다면? 이제 Write/Read를 분리해서  1 CRUD + n개의 READ Replica를 만들겠죠?  보통 Read Replica는 5개가 최대라고 보시면 됩니다.  누가 연구한 자료가 있었는데...  6번째 레플리카를 만든느 순간 마스터가 되는 서버의 효율 저하 때문에  5번째에서 6번쨰로 올릴때의 성능이 급격히 줄어든다는 연구 결과가 있습니다.  때문에 Azure에서도 replica설정할 때 5대까지 밖에 설정 못하게 되어 있지요.  유저의 행동 패턴에 따라 다르긴 하지만,  1 CRUD + 5 Read Replica의 경우 동접 15000명 정도는 커버 합니다.  즉, 동접 15000명 에서 다시 터져서 저를 부르는 경우가 많지요..  이 때부터는  회원 DB, 게시판DB, 서비스DB, 과금 DB 등등 으로 성격, 서로의 연관도에 따라 나누기 시작합니다.  물리적으로 DB가 나눠지면 Join을 못하거나 Linked Table또는 LinkDB등의 연결자를 이용해서 JOIN이 되기도 합니다.  그에 따라 성능 차이가 생기지만 가장 중요한 포인트는  서로 다른 물리적 테이블의 JOIN은 인덱스를 타지 않는다!  라는 것입니다. 즉, JOIN할 테이블들을 최소한으로 만든 뒤에 JOIN을 걸지 않으면 NoSQ...

BI의 궁극판! Apache Drill을 써보자!

사실 Apache Drill 은 BI(Business Intelligence)라고 부르는 것 보다는 단순 데이터 연결 엔진이다. https://drill.apache.org/ 하지만 내가 왜 극찬을 하느냐면.. DBA로서 항상 문제가 되어왔던게, 이기종 데이터의 변환이나 처리였다. 포맷을 맞추는데 엄청난 시간이 걸리고, 데이터 임포트 실패가 무수하게 나고.. 한 번 잘못 데이터를 추출하면 다시 조정, 변환, 추출하는데 시간이 많이 걸린다. 그런데! Apache Drill은 그냥 RDB를 CSV랑 연결해서 조인해서 통계를 낼 수 있다. 그것도 표준 SQL을 사용하여! 예를 들어, CSV의 세 번째 컬럼이 price 이고, 물건의 판매이력을 PG사에서 CSV로 출력 받았다. 우리 DB와의 검증을 위해서는 수동으로 Import를 한 뒤에 포맷이 안맞아 잘리는 데이터가 있다면 다시 맞춰주고, 재 임포트를 수십 번, 그리고 나서 겨우 들어간 데이터를 조인하여 빠진 데이터를 분간한다. 숫자가 적다면 개발자가 개발로 처리할 수도 있지만, 건수가 하루에 300만건 짜리라면.. 한 달 온 파일은 9천만 건이다. 프로그램으로 고작 처리하는 것이 초당 500건. 거의 20만초, 에러 없이 약 56시간.. 에러가 생기면 다시 56시간.. ㅠㅡㅠ 이런게 현실이기 때문에 쿼리 말고는 방법이 없다. apache drill 의 진면목을 보자! 이번에는 좀 범용 적인 MySQL DB와 붙여 보자. . 난 이번에는 Mac에서 작업을 했기 때문에 그냥 다운 받아서 풀었음.. https://drill.apache.org/download/ 여기서 자기 OS에 맞는 버전을 받아서 설치하시길.. 압축을 풀고 나면 MySQL 커넥터를 붙여야 한다. https://dev.mysql.com/downloads/connector/j/5.1.html 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만...