개발업무를 진행하다 보면 어느 순간에는 데이터베이스를 사용하게 됩니다. 데이터는 애플리케이션의 핵심이니깐요. 어느 정도 규모를 넘어서 데이터를 관리하는 시스템이 별도로 필요할 때 DBMS, 특히 관계형 DB를 먼저 떠올리게 됩니다.

개인적으로는 클라이언트에서만 사용한다면 SQLite, 서버로 이용될 경우에는 Postgresql이나 MS SQL Server를 선호합니다. 특별한 이유는 없습니다. 예전에 제가 공부할 때에는 mysql은 트랜잭션 지원이나 서브쿼리 등이 PostgreSQL에 비해 부실했기 때문입니다.

하지만 역시 오픈소스의 발전 속도는 참 빠르고 거침없습니다. 어느새 MySQL도 트랜잭션이나 고급 쿼리문에 이어 고가용성까지 지원하고 있고, 대용량 서비스에 활용되고 있다는 소식을 쉽게 접하게 되었습니다. 그래서 이번에 mysql을 중심으로 DB에 관한 지식을 재충전할 목적으로 이 책을 읽었습니다.

 

저는 1부와 2부는 설렁설렁 보았습니다. 이미 다른 DBMS를 많이 다뤄보았었기 때문에, mysql의 특이점만 살펴보면서 읽었습니다. DBMS를 처음 공부하시는 분들은 2부가 가장 중요합니다!!! 2부는 기본적인 데이터베이스 설계 및 SQL에 관한 내용을 담고 있습니다. 꽤 상세하게 단계별로 설명하고 있습니다. 웬만한 SQL 기본서적보다 괜찮다고 생각합니다.(현실적인 DB를 가지고 SQL을 설명하고 있어요.)

Learning mySQL.나비책

이 책은 크게 4부분으로 나뉩니다.

 

1부는  주로 설치에 관한 내용입니다. 이 부분은 조금 애매하다고 생각됩니다. 클라우드의 시대라 예전처럼 리눅스 패키지 관리자나 소스에서 컴파일하는 경우는 거의 없을 것 같습니다. 이런 아쉬움은  14장 클라우드 MySQL에서 조금 보완이 됩니다만, 정말 조금입니다. DBaaS내용을 다루는 게 20쪽 정도에 불과합니다. 그만큼 클라우드에서 DB 사용이 쉬운 거라고 생각해야 할까요?

 

2부는 관계형 데이터베이스 기본 내용을 익히는 부분입니다.

기본적인 SQL구문을 sakila DB를 가지고 배우게 됩니다. ER Diagram, 데이터 정규화, 기본 SQL의 DDL, DML 구문들을 mySQL 관점에서 배울 수 있습니다. 그리고 제약사항들이나 조인, 중첩 쿼리등을 배울 수 있습니다. 기본적인 내용이지만, 그래도 처음 찍먹하는 개발자들은 도움이 될 것입니다. 상세히 단계별로 다루고 있습니다.

 

3부와 4부는 운영 관점입니다. 실제 서비스 환경에서 mySQL을 사용할 때 만나게 될만한 시나리오들입니다. 3부는 DBA 관점의  이야기들이 많았던 것 같아요. 물론 트랜잭션 이야기도 있긴 한데, 사용자/권한 관리나 백업 복구, 서버 튜닝에 관한 내용이 담겨 있었어요.

 

4부는 개인적으로 이 책에서 재미있게 읽은 부분입니다.  mySQL을 사용하여 고가용성을 확보하기 위한 여러 가지 방법을 소개를 하고 있습니다. 3부는 DBA관점이라면 4부는 솔루션 아키텍처 관점에서 mySQL 관련 내용을 설명하고 있습니다. 

4부 로드밸런싱과 K8S환경의 클러스터링

이 책은 관계형 DBMS를 처음 접하시거나 MySQL전체 기능을 훑어보고 싶은 분들에게 좋은 All-In-One 서적이라 생각합니다. 수준으로 보면 초급 도서라 생각됩니다.

 

나름 열심히 정리하면서 :-) 공부했어요

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형

책은 당연한 것에 대한 질문을 던지게 한다.

묵직한 질문을 던지는 책이 있습니다. 그 질문은 우리가 미처 생각지 못했던 지점을 강타합니다. <사라진 개발자들>은 제게 그런 묵직한 질문들을 던진 책이었습니다.  책의 부제 '알려지지 않은, 치열했던 여성 에니악 개발자 6인의 이야기'처럼, 최초의 컴퓨터였던 에니악의 여성 개발자들의 삶, 그들의 노력과 공헌을 되돌아 보게 만드는 책입니다. 단순 전기는 아니고 세상의 편견에 맞선 6인의 여성 개발자의 고군분투 이야기입니다.  

 

 

여성 엔지니어???

오랜만에 들어본 에니악이었습니다. 이 책의 저자, 캐시 클라이먼은 우연히 발견한 에니악 흑백사진에서 여성 엔지니어들을 발견합니다.  에니악을 만든 엔지니어들 중 2명의 엔지니어로 보이는 분들의 사진. 그 사진의 인물 추적해서 각자의 인생과 에니악에 얽힌 이야기를 발굴해 냅니다.

 

제가 컴퓨터를 처음 배우던 때가 생각났습니다."최초의 컴퓨터 에커드와 모클리가 만든 에니악, 방을 가득 채울만큼 진공관으로 가득 찬 기계. 탄도 계산에 사용.. 유니박 최초의 상용 컴퓨터...."

 

그때 컴퓨터 경진대회는 이런 내용에 대한 것들도 많이 나왔었네요. 어쨌든 제게 에니악은 에커드와 모클리라는 천재 엔지니어가 만든 기계였습니다. 그 외 컴퓨터를 함께 만든 사람들의 모습을 생각해 보지 못했습니다.

나름  컴퓨터 역사 속에서 유명한 여성 소프트웨어 엔지니어들을 알고 있다고 생각했습니다. 최초의 프로그래머로 알려진 에이다. '버그'라는 용어를 만든 그레이스 포러, 아폴로 계획의 전설 마가렛 해밀턴... 

정말 그랬습니다. 이 책을 읽기 전에는 에니악은 두 사람의 작품처럼 너무 당연시 되어,  "컴퓨터를 만든 여성 엔지니어"가 있을 것이라는 상상을 하지 못했고, 그러다 보니 질문도 떠오르지 않았습니다. 그런데 왜 최초의 컴퓨터인 에니악에 숨겨진(?), 책 제목처럼 사라져버린, 개발자들이 생긴 이유에 대해 한번쯤 고민을 하는 계기가 되었습니다.

 

이 책은 여성 개발자들이 주인공이기에, 남성 위주의 역사 기록에서의 여성의 역할, 특히 공학 분야에서 여성의 역할을 재평가해야 한다는 주장으로 읽히기도 합니다. 하지만 남성과 여성의 구분(이라 쓰고 차별이라 읽는)을 없애는 것 이외에도 여러가지 고민과 질문을 주는 책입니다.

 

전쟁과 문명발달의 아이러니

컴퓨터는 현대 사회에서 없어서는 안될, 인류의 삶을 풍족하게 만들어준 필수 발명품입니다. 하지만 역사적으로는 2차세계대전이라는 참혹한 전쟁의 역사속에서 탄생했다는 것은 참 아이러니합니다. 적의 피해를 극대화하기 위해 더 정확한 사표(firing table)로 포탄의 착륙지점 정밀도를 높이기 위해 만들어진 전자식 장비. 지금은  이것으로 음악도 듣고, 게임도 하고, 영화도 보고/만들고, 문서도 하고, 전세계 사람들과 글자와 영상으로 대화도 나눌 수 있게 합니다.

전쟁이 진행되면서 남자들은 징용되어 전선으로 이동하게 되고, 이로 인해 그동안 능력이 있음에도 불구하고 여자라는 이유로 일을 할 수 없었던 사람들에게 기회가 주어진 것도 역설입니다. 고등수학을 전공했지만 그 능력을 발휘할 기회조차 주어지지 않던 사회에서 전쟁이 만든 기회. 하지만 전쟁이 끝나면서 다시 일자리를 잃게 되는 현실...1940~50년대의 모습이 오늘날에도 비춰지는 것 같아서 씁쓸하기도 합니다.

비극적인 전쟁이 결과론적으로는 편견을 깨는 계기가 되는 역사....묘한 감정이 듭니다.

 

엔지니어, 개발자의 삶

책을 읽는 동안 6명 주인공 중에서 진 제닝스에게 많은 애정이 갔습니다. 다른 분들은 누구에게 애정을 더 느꼈는지 모르겠습니다. 어쨌든, 6명의 삶속에서 개발자란 무엇이고 어떻게 살아가야 할까에 대한 힌트도 얻었습니다.

이 책의 주인공 6인은 세상에 존재하지 않았던 물건을 만나서 서로 도와 가면서 학습하고, 적용하면서 발생한 문제를 해결한느 개념을 발명해 냅니다. 조건문, 반복문, 중단점, 짝 프록그래밍, 병렬처리. 이 모든 것이 첫 컴퓨터를 활용하면서 등장한 개념이라는 것이 놀랍습니다. 처음 보는 기계. 그것도 접근조차 자유롭지 못해서 실물을 보기 전에 회로도로 공부하는 모습. 조를 나눠 유닛별로 학습해서 서로 가르쳐주며 학습하는 모습. 그것들을 조율해주는 회의 문화.

지금 IT업에 종사하는 우리의 모습도 비슷하다는 생각이 들었습니다.

이 책의 원제는 Proving ground입니다. 시험 무대. 세상의 편견을 스스로 시험무대에 올라 증명해야 하는 사람들.  참 힘들 것 같습니다.  하지만 팀을 이루고, 호기심과 열정으로 주어진 문제를 해결하는 모습에서 쾌감이 느껴지기도 합니다.

이 책에서 저는 마음에 드는 프로그래머의 정의를 찾았습니다.

"프로그래머라는 직업이 탄생했다. 문제를 가진 사람과 컴퓨터를 연결해 문제를 해결하도록 돕는 역할을 하는 사람이 등장했다"

 

책을 덮으며...금방 이 책을 다시 읽게 되지는 않을 것 같습니다. 하지만 세상에 지칠 때면 다시 이 책을 펼치고 읽으면서 어떻게 지난한 현실을 돌파할 것인가를 고민하게 될 것 같습니다.

 

 


excerpt from....

 

p.29 젊은 여성들은 한번도 해본 적이 없는 일을 하려는 참이었다. 하지만 지금껏  함께했던 시간을 생각하면 충분히 열정적이고 낙관적인 태도로 임할 수 있었다....가장 중요한 것은 함께 한다는 것이었다. (p.29-30)

p.33 케이에게 수학은 어렵지 않았다. "제게 수학은 머리 쓰는 일이 아니었어요. 수학은 그냥 풀 수 있는 퍼즐이고, 항상 답이 있죠." 

p.36  전쟁으로 인한 경제 동원은 전통적인 남성과 여성 업무의 경계를 많이 허물었다.

p.102 컴퓨터들이 유럽을 위해 만들었던 사표는 아프리카에서 사용할 수 없었다. 땅이 부드러운 아프리카에서는 포가 다르게 작동하기 때문이었다. 또한 적도 인근에 위치한 사막의 대기 온도와 밀도는 사표를 일반적으로 사용한 값, 즉 미국의 일반적인 조건 기준으로 계산한 값과 매우 달랐다.. 

p.141 애니악 팀 회의... 누구나 아이디어를 말하고 공유할 수 있는 협력적인 방식으로 회의를 진행했다..  

p.167 루스벨트 대통령이 1933년부터 1944년까지 저녁시간에 미국 국민들과 함께  나눈  노변담화는 라디오 기술 사용에 혁명을 일으키고 국민들의 불안을 잠재웠다... 일자리, 경제위기부터 전쟁에 이르기까지 그날그날 당면한 어려운 문제들을 차분하고 편안한 어조로 설명했다..... 그토록 그들의 삶에 친밀한 유대감을 형성한 대통령은 없었다. 

 p.202 참 이상한 이름이 많았다. 이들은 짝을 지어 유닛을 나눠서 공부한 후 서로 가르쳐 주기로 했다. 분할정복방식이었다. -> 새롭고 시험적인 기계를 인내심과 공동 작업으로 해결.
p.216 종이로 하는 작업의 핵심은 한번에 한단계씩 내려가는 것이다. 페달링 시트
p.232 존은 남녀 구분없이 상대의 말을 주의깊게 들었고 상대가 하고자 하는 바를 잘 따라주었다. --> 팀의 탄생
p.237 우리는 서로가 하는 일에서 결점을 찾으려 노력했어요. 상대가 결점을 찾았을때는 화를 내기 보다는 기뻐했죠. 프로그램에 오류가 남지 않는다는 뜻이었으니까요-> 짝 프로그래밍...
p.270 짜릿한 도취감과 깊은 우울감 -> 소수의 남성 위주의 발표회 직후...
p.289 이 과정에서 프로그래머라는 직업이 탄생했다. 문제를 가진 사람과 컴퓨터를 연결해 문제를 해결하도록 돕는 역할을 하는 사람이 등장한 것이다.
p.313 지원자에게 지원자격을 갖췄는지 묻기보다 업무에 대해 그녀에게 질문을 던지는 지원자를 선택했다. 에너지, 호기심, 모험심을 갖춘 사람들을 선발했다.
p.316 모두가 동등한 자격으로 참여하는 회의..폰 노이만이 새로운 명령을 제안했는데 진이 안된다고 거절....실현 가능성이 없는 아이디어라는 것을 진은 알았기 때문.... 기여한게 하나도 없던 허먼이 마치 신성모독적 발언을 한것처럼 진을 째려봄... 폰 노이만은 본인의 실수를 깨달았기에 그저 웃고 자기 의견을 바로 잡았다.

 

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

반응형

+ Recent posts