My Books

My Slides

rss 아이콘 이미지

PostgreSQL 9.6 성능 이야기 미리보기

NOTICE 2017.02.24 01:32 Posted by 시연아카데미

한 달 동안 십여 차례에 걸친 교정과 편집 작업 끝에 다음 주면 책이 나올 것 같습니다.


책은 "부크크" 를 이용해서 출시할 예정입니다.


책 구매는 일단 부크크 사이트 또는 교보문고 온라인에서만 가능하다고 합니다. (일정 부수 이상 팔리면 Yes24에 유통 신청 가능) 


책이 출시되는 대로 블로그에 공지할 예정입니다.


그리고 책 출시와 함께 새로운 사이트를 하나 만들었습니다.


티스토리나 네이버 블로그등은 원칙적으로 책에 대한 소개나 판매 사이트 링크가 안된다고 하네요.


그래서 겸사겸사 책 소개, 교육 자료, 세미나 소개 전용 포털 사이트를 하나 만들었습니다.

 

앞으로 아래의 사이트로 조금씩 이전할 예정입니다.


http://siyeonacademy.wordpress.com



위의 블로그에서 책 소개 (서문, 목차), 1장-아키텍처, 2장-Shared Buffer 동작 원리, 테스트를 위한 재현 스크립트를 다운로드 받을 수 있습니다.


사실, 1장은 너무 쉽고, 2장은 원론적인 내용이 많습니다.


3장 Query Optimizer 동작 원리부터가 재미있는데, 이 부분은 책을 통해서 확인해주시면 좋겠습니다. :)




감사합니다.


김시연 올림.


2017.2.24







저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

PostgreSQL 성능 이야기 집필이 완료되었습니다.

NOTICE 2017.01.22 17:56 Posted by 시연아카데미

4개월간의 부단한 연구를 통해 집필 작업을 마무리했습니다. 책 시작부터 끝까지, 같이 고생한 최두원 선생께 감사하다는 말을 먼저 전합니다. 앞으로 교정, 교열, 윤문, 인덱싱, 표지 디자인 작업을 마무리하면, 대략 3월 중순 이전에는 세상의 빛을 볼 수 있을 것 같습니다.



책 제목은?


책 제목은 "PostgreSQL 성능 이야기"로 정했습니다. 제목에 "이야기"를 넣은 이유는, 비록 딱딱한 IT 서적이지만 독자들이 쉽게 읽을 수 있는 (물론, 이해하는 것과는 별개이지만) IT 서적을 집필하고 싶다는 필자의 희망 사항을 대변한 것입니다. 아직은 미흡하지만, 언젠가는 이야기를 읽듯이 흥미진진하게 읽을 수 있는 IT 서적을 집필하고자 합니다.



무슨 내용이고 어떻게 집필했나?


이 책은 PostgreSQL 성능을 논할 때 필요한 대부분의 내용을 다루고 있습니다. 성능을 논하려면 DBMS 아키텍처, 버퍼 매니지먼트, 옵티마이저 동작원리, 액세스 방식, 조인 방식, 서브 쿼리, 쿼리 재 작성, 히스토그램 및 인덱스 활용 등에 대한 단편적인 지식들을 성능 관리라는 하나의 틀안에서 상호간에 연결된 상태로 이해해야 합니다.


필자는 이러한 주제에 대한 자료를 수집한 후, 소스분석과 테스트를 병행함으로써 실용성을 가미한 정확한 지식을 제공하려고 노력했습니다. 그리고 집필 과정에서는 독자의 입장에서 “왜? 이런 내용을 알아야할까? 라는 자문을 통해, 내용의 깊이를 조정

했습니다.


가령, PostgreSQL의 버퍼 매니지먼트 기법을 정확히 이해하면, 다른 DBMS를 익힐때 도움이 됩니다. 이러한 부분은 소스 레벨에서 정확하게 분석을 수행했습니다.


반면, 동작 원리의 핵심을 이해하는 것이 중요한 부분들이 있습니다. 특히 Vacuum은 PostgreSQL MVCC 특성때문에 필요한 오퍼레이션입니다. 이처럼, PostgreSQL에 국한된 내용은 핵심 위주로 다뤘습니다.  하나 하나의 디테일한 부분에 매몰되면 실제 중요한 큰 흐름을 놓칠 수 있기 때문입니다.


책의 전체 목차는 아래 첨부 파일을 참조하시면 됩니다.


PostgreSQL 성능 이야기 - 목차.pdf




누가 읽으면 좋은가?


저자의 입장에서는 많은 사람이 읽으면 좋겠지만, 이 책은 PostgreSQL 경험이 1~2년인 분들과 ORACLE에 익숙하면서 PostgreSQL의 전반적인 성능 부분을 알고 싶은 분들께 권합니다.


PostgreSQL 전문가들이 읽기에는 내용이 쉽고, 입문자들이 보기에는 매우 어려울 수 있기 때문입니다.


그 외에, 동작 원리에 관심이 있으신 분들도 읽어보시길 권합니다.


버퍼 매니저, Hybrid 해시 조인, Skew 데이터 처리를 위한 HistoJoin, Right 해시 조인, NL 조인 성능 향상을 위한 Bitmap Index Scan, Frequency, Height-Balanced 히스토그램 및 Top-N Freq, Hybrid 히스토그램 기법, Subquery Collapse, Lateral 인라인 뷰를 이용한 JPPD 구현 등의 동작 원리에 대한 내용을 매우 심도 깊게 정리했습니다.



시연 아카데미의 궁극적인 목표는?


아인슈타인의 명언 중에 "지식보다 중요한 것은 상상력이다" 라는 문구가 있습니다.


저는 “상상력”의 다른 말을 “통찰력”이라고 생각합니다. 시연 아카데미의 궁극적인 목표는 독자들의 통찰력 향상에 도움이 되는것 입니다.


혹자는 튜닝 전문가를 예술가라고 칭하기도 하고, 튜닝을 통해 극적인 성능 개선을 이룬 경우에, "예술이다"라고 표현하기도 합니다. 이는 드라마틱한 성능 개선을 의미하는 것뿐만 아니라, IT에 대한 상상력을 통해 남들이 접근해보지 않는 방식을 적용한 결과를 의미하는 것이기도 합니다.


이처럼, 전문가가 되기 위해서는 실무적인 경험을 통한 필드의 지식도 필요하지만, 동작 원리와 현상에 대한 끊임없는 문제 제기를 통한 맥락의 이해 및 이를 통한 입체적인 사고가 가능해야 합니다 즉, 단편적인 지식과 현상들의 파편을 큰 맥락 내에서 입체적으로 분석할 줄 아는 사고를 키우는데 도움이 되도록 하는 것. 이것이 제가 하고 싶은 일입니다. (너무 거창하죠? :)



앞으로 출간될 "PostgreSQL 성능 이야기"가 이러한 목표의 신호탄이 되길 희망합니다. 많은 관심 부탁드립니다.


김 시연 올림.


2017.1.22

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

MySQL, PostgreSQL 카테고리가 추가되었습니다.

NOTICE 2016.08.27 21:07 Posted by 시연아카데미

MySQL 및 PostgreSQL 카테고리를 추가했습니다. 블로그를 처음 개설했을 때의 생각은 오라클 분야의 연구를 최대한 고도화한 후에 다른 DBMS로 범위를 확장하는 것이었습니다만, 세상이 너무 빠르게 변하고 있고 더 이상 오라클만으로는 밥벌이하기가 쉽지 않다는 위기 의식이 점차 현실화되고 있습니다. 속도의 문제가 있겠지만 클라우드 세상으로 변모할 것이고, 이미 현실화되고 있는 탈 오라클 움직임은 오픈 소스 DBMS들의 활약으로 인해 점차 속도를 더할 것 같습니다. 이런 변화 속에서 살아남기 위해서는 오라클 이외의 새로운 무기를 가지고 있어야합니다. 이런 맥락에서 새롭게 연구를 시작한 DBMS는 MySQL과 PostgreSQL입니다. 오라클과 더불어 새로운 DBMS 역시 최선을 다해서 컨텐츠를 준비하려고 합니다. 그럼 많은 관심 부탁드리겠습니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

"EXADATA Simulator 설치 가이드" 작성을 완료한 후, 대략 2주 동안 RAC 관련 연구를 진행 중입니다. 이번 연구의 목표는 RAC와 관련된 국내 서적 및 외국 원서를 모두 읽은 후에, 통찰력을 가지고 RAC의 동작원리를 이해하기 쉽게 정리하는 것이었습니다. 하지만 RAC 관련 외국 서적의 양이 방대합니다. :) 따라서, 현재까지 학습한 내용을 바탕으로 연구를 병행하면서 "RAC 동작원리의 이해" 연재를 진행하는 것으로 방향을 선회했습니다.


사실, RAC 동작원리를 연구하는 것이 시대 착오적이라고 생각하는 분들도 있을 것 같습니다. 클라우드 세상이 열리고 있고, 오라클 이외의 타 DBMS로 갈아타려는 움직임이 거세지고 있고, 또한 RAC 역시 9i, 10g, 11g, 12c를 거치면서 많은 안정화가 됨에 따라 장애 발생률이 현저히 줄어들었기 때문입니다. 이런 현실에 비춰보면, 과연 RAC 동작원리를 이해하는 것이 내 생계에 큰 도움이 될까? 하는 의구심이 들 수도 있을 것 같습니다.


하지만, 제품(RAC던 그 무엇이던)의 동작원리를 이해하고 전체적인 아키텍처를 그릴 수 있는 능력은 엔지니어가 반드시 가져야만 할 덕목일 것입니다. 하나의 제품에 대해서 폭넓게, 그리고 깊게 이해함에 따라 IT 관점의 통찰력을 가지게 된다면, 이는 단순히 그 제품의 이해만을 넘어서는 능력이라고 할 수 있습니다.


RAC의 동작원리를 이해하는 데 있어서 염두에 둘 만한 사항들이 있습니다. (이 부분은 RAC 뿐 아니라 대부분의 동작원리를 이해하는데 도움이 될 것입니다)


  1. Why? 탄생 배경이 중요합니다. 모든 사물 (소프트웨어)은 만들어진 이유가 있습니다. 동작원리를 이해함에 있어서 이러한 탄생 배경을 가장 먼저 확인해보는 것이 좋습니다.
  2. How? 소프트웨어는 개발자가 코딩한 프로그램이 O/S 상에서 프로세스로 동작하는 것입니다. 따라서, 우리가 이해해야 할 알고리즘들은 모두 개발자들이 만든 Code의 절차라고 볼 수 있습니다. 이러한 알고리즘은 성능 향상을 목적으로, 또는 버그 수정을 목적으로 자주 변경될 수 있습니다. 따라서, 문서화된 알고리즘을 암기하기보다는 개발자 관점에서 동작원리를 이해해보려는 노력이 필요합니다.


끝으로 뉴턴의 말을 인용합니다. RAC를 학습하는데 있어서 너무 거창한 비유일지는 모르겠으나, 원리를 궁금해하고 학습한다는 점에서는 정도의 차이(아주 많은 차이)는 있지만 본질은 같지 않을까요? :)


온갖 현상들에서 두세 가지의 일반 원리를 찾아내고, 모든 물체들의 성질과 그들의 상호 작용이 앞에서 찾아낸 원리들에서 어떻게 비롯되는지를 설명할 수 있을 때, 우리는 비로소 세상을 향한 위대한 이해의 첫발을 내디뎠다고 할 수 있다. - 아이작 뉴턴 [광학]


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

시연아카데미 준비중입니다.

NOTICE 2016.04.19 15:49 Posted by 시연아카데미

5월초에 찾아뵙겠습니다. 커밍순!


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


 

티스토리 툴바