클라우드의 충격

이 책을 중고서점에서 구매한 지는 몇 년이나 되었지만 책장 한편에 방치하고는 읽을 생각을 전혀 못하고 있었다. 최근 클라우드 서버에 대한 관심이 생기면서 읽을 책을 찾아보다가 불현듯 내가 이 책을 소장하고 있었다는 점이 생각나서 읽게 되었다. 책의 초반에는 SaaS, PaaS, HaaS에 대한 설명으로 시작하는데 익숙하지 않은 용어에 읽는 데에 시간이 꽤나 걸리겠다는 예감이 들었다. 그러나 다양한 회사의 사례를 기반으로 이야기를 풀어나가면서 용어에 대한 개념이 어느 정도 잡히자 순식간에 책 한 권을 다 읽을 수 있었다. (사실 그렇게 두꺼운 책도 아니다.)

 

책이 쓰인 2008년은 아마존이 막 AWS 서비스(Amazon Web Services)의 베타 테스트를 끝내고 정식 운영을 시작한 즈음이다. 2020년인 지금 십 년도 더 된 일이지만 현재 얼마나 많은 사업이 AWS을 이용하고 있는지를 생각하면 클라우드 컴퓨터는 한순간 지나가는 유행이 아닌 기본으로 자리 잡아가고 있다고 해도 과언이 아니다. 이 책에서는 아마존을 비롯해 구글, 마이크로소프트, AT&T, 세일즈포즈닷컴, IBM 등 각 대기업이 어떤 식으로 클라우드 컴퓨팅 시대를 주도하는지에 대해 이야기한다. 

 

일반 컴퓨터 사용자로서 역시 가장 피부에 와 닿는 서비스는 SaaS이다. Gmail 같은 이메일 서비스를 이용한다면 이미 클라우드 서비스를 사용하고 있다고 할 수 있다. SaaS는 컴퓨터에 소프트웨어를 설치하여 사용하는 것이 아니라 인터넷 서비스로서 이용하는 형태의 서비스를 말한다. 이러한 형태의 서비스는 설치하는 번거로운 과정을 생략할 수 있으며, 일정 기간 혹은 사용량에 따른 사용료를 지불하는 방식을 채택한 경우가 많다. 이러한 서비스는 역시 구글이 강자가 아닐까 싶다. 나는 평소에 구글 Docs를 자주 사용한다. 파일을 어느 기기에서나 인터넷만 된다면 읽고 쓸 수 있으며, 무엇보다 다른 사람들과 함께 문서를 편집할 수 있다는 점에서 굉장히 편리하다.

 

'우리가 정말 필요로 했던 것은 평범한 브라우저가 아니라 웹 페이지와 웹 애플리케이션을 위한 모던한 플랫폼이다.'라고 구글이 독자 브라우저 개발에 착수한 경위가 구글 공식 블로그에 설명되어 있다. 구글은 앞으로 더욱 복잡해질 웹 애플리케이션이 쾌적하게 동작할 플랫폼으로서의 역할을 브라우저에 맡긴 것이다.
- 클라우드의 충격 P.159

현재 크롬에서 지원하는 웹 애플리케이션을 보면 별도의 소프트웨어 설치 없이 크롬만으로 모든 기능을 다 할 수 있을 듯 보인다. 실제로 2011년 크롬북이 출시될 수 있었던 이유는 구글이 클라우드 컴퓨팅을 위한 투자를 꾸준히 했기 때문이다.

 

클라우드 컴퓨팅이 어떤 것인지 개념은 알고 있었지만 이렇게 실생활에 깊숙하게 만연해 있다는 점은 인식하지 못하고 있었다. 비록 출간된 지 십 년도 넘은 데다 절판된 책이지만 클라우드에 대한 기초 상식을 채우는 데에는 매우 유익한 책이다. 이렇게 오래된 책을 읽을 때는 저자가 예상한 미래가 얼마나 일치하는지 알아보는 재미도 있다. 앞으로 클라우드에 대한 공부를 계속하면서 이 책에 나온 내용을 적용, 비교하는 재미가 있으리라 기대해 본다.

행복한 프로그래밍

컴퓨터 분야에서 전문 지식에 대한 글이 아닌 개발자의 이야기를 다룬 글이 읽고 싶어 한동안 서점을 찾아다녔었다. 개발자와 기획자의 갈등을 다룬 글은 종종 찾아볼 수 있었는데 아쉽게도 그건 내가 원하던 주제가 아니었다.(하지만 갈등이라니 언제나 흥미로운 소재 아닌가 나중에 읽어봐야겠다.) 이 책을 읽기 전에 '나는 프로그래머다'라는 책을 먼저 접했다. '나는 프로그래머다'의 첫 번째 글을 쓴 작가가 바로 '행복한 프로그래밍'의 저자 임백준이다. (사실 읽다가 루슨트 테크놀로지스 사의 이야기가 겹쳐서 그제야 동일 인물임을 깨달았다.) '나는 프로그래머다' 속의 열정에 불타올라 도전하는 개발자의 이야기에 나와 비교하기 시작하고 위축되어 잠시 글 읽기를 멈추었다. 그에 반해 '행복한 프로그래밍'은 훨씬 가벼운 마음으로 글을 읽을 수 있었다.

 

본인의 개인적인 경험뿐만 아니라 컴퓨터 역사에서 있었던 일들까지 머리 아프지 않게 흥미롭게 풀어놓는 작가의 글솜씨에 즐겁게 책 한권을 읽을 수 있었다. 책 중간중간에는 알고리즘 문제들이 끼어있는데, 책장을 넘기던 손을 잠시 멈추고 생각하기에 좋았다. 책의 초반에 나온 통나무 건너기 문제에서 내가 생각한 답을 콕 짚으며, 개발자에게는 본인이 생각한 답이 정말 최선인지 생각하는 자세가 필요하다고 했을 땐 그동안 실행화면에 원하는 답을 출력해내는 것에 급급했던 내 자세에 대해 생각하게 되었다. 

 

사실 알고리즘 문제를 풀기 위해서 무식한 방법(Brutal Method)을 사용하는 것은 흔하다. 문제를 풀기 위한 규칙이 바로 눈에 들어오지 않을 때, 무식하게 먼저 풀다보면 거기서 규칙을 발견하는 일이 흔하기 때문이다. 마치 수학 지문에서 수열을 이용한 탑 쌓기 문제를 풀 때, 그림으로 탑을 쌓아가다가 규칙을 발견하는 것과 같은 이치다. 하지만 무식한 방법을 통해 찾은 규칙과 원리가 가장 좋은 해결 방법인가? 아닐 가능성이 적지 않다. 여태 알고리즘 문제를 풀면서 화면에 '맞았습니다.'라는 결과를 보고 나면 뒤도 돌아보지 않고 다음 문제로 넘어가던 태도를 고치고 '코드를 더 깔끔하게, 더 빠르게, 더 효율적으로 작동하는 방법이 있을 것이다.'라는 생각으로 내 코드를 한 번 더 들여다보는 습관을 가지게 되었다. 

 

너무도 유명한 백준 온라인 저지에서 알고리즘 문제를 풀면(이 책의 저자인 임백준과는 관계 없다. 이 사이트의 대표자는 최백준이다.) 같은 언어를 이용해서 문제를 푼 사람들의 코드 길이와 사용한 메모리와 소요 시간을 볼 수 있다. 내 코드보다 짧고 적은 메모리로 빠르게 푼 코드를 열어 보고 내 코드와 바로 비교할 수 있다면 좋겠지만, 코드를 공개해 놓은 사람은 그리 많지 않아 답은 모른 채로 고민만 하는 시간을 종종 갖는다. 이러한 시간을 갖는 것이 쉽지는 않다. '맞았습니다'보다 '틀렸습니다'를 훨씬 더 많이 보게 되는 풀이 과정에서 지쳐버려 더 이상 문제를 보고 싶지 않기 때문이다. 그렇지만 내 코드의 메모리와 속도를 남의 코드와 비교해 보는 시간은 꼭 갖는다. 남과 비교해 눈에 띄게 좋지 않은 코드일 경우 부끄럽다. 이러한 부끄러움은 다음에 문제를 풀 때, 한 번 더 생각하는 원동력이 된다.

 

이 책에서 가장 공감한 부분은 문제를 해결할 때 갖는 희열 때문에 개발자가 된다는 것이었다. 처음 c언어를 배우면서 "Hello World!"를 보고 시시했다. 하지만 피라미드 모양으로 별찍기를 완성해 검은 화면에 하얀 *이 원하는 모양으로 찍혔을 때, 리스트를 직접 구현하기 위해서 온갖 쓸데없는 예외 처리를 끼워 넣다가 더 많은 버그를 만들어 내다가 겨우 완성했을 때, 이미지를 화면에 띄워 마우스 클릭 포인트를 목적지로 이미지가 이동하게 만들었을 때의 희열은 아직도 생생하다. 이제 별찍기와 같은 문제는 시시해진 지 오래지만, 점점 더 어려운 문제를 접하고 문제를 해결했을 때의 희열에 이제는 벗어나기 힘들 정도로 빠져버렸다.

 

"현실로부터 도피하는 수단 중에서 프로그래밍이야말로 으뜸이다. 그것은 점점 더 중독성을 띠면서 환상의 세계가 된다" 혹은 "이 세계는 자신이 창조해낸 법칙에 따라 움직이도록 하는 힘을 갖고 있기 때문에, 이를 성취하면 프로그래머들은 승리감을 만끽한다"가 되는 식이다. 요컨데 프로그래머들은 자신이 속한 비트의 세계에서 승리를 쟁취하기 위해서 혼신의 힘으로 전진하는 가상 세계의 전사들인 것이다.
- 행복한 프로그래밍 P.35

 

가벼운 마음으로 읽기 시작한 책에서 많은 공감과 새로운 관점을 얻을 수 있었다. 내가 나아가고자 하는 길이 이렇게나 흥미진진한 세계임을 재미있게 풀어주어 저자의 다른 책이 기대된다.

'커리어 스킬'

프로그래머를 꿈꾸는 입장에서 '프로그래머로 생존하고 성장하고 성장하라'라는 문구에 끌리지 않을 사람이 과연 있을까. 서점에 다른 책을 사러 갔다가 700 페이지가 넘는 결고 가볍지 않은 이 책에 끌린 건 이런 강렬한 문구에도 있지만 책이 다루고 있는 내용이 내가 대학교를 다니는 동안 배우지 못한, 하지만 알고 싶어 했던 내용들을 담고 있었기 때문이다.

 

아직 진로에 대한 고민을 끝내지 못한 상태에서 졸업을 해 구직 시장으로 내몰린 나는 대체 내 커리어를 어떻게 시작해야 하는 것인지 나에게 선택지는 무엇이 있는 것인지 알고 싶어 답답해하던 차였다. 그러던 차에 마침 우연찮게 눈에 띈 이 책은 과연 부제가 민망하지 않을 정도로 나에게 큰 도움이 되었다. (블로그를 제대로 관리해야겠다고 다짐하게 도와준 은인이기도 하다.)

 

저자가 자신의 블로그를 홍보하기 위해 출판한 책이 아닐까 싶을 정도로 대부분의 문장 뒤에 'blog'(저자의 블로그에 가면 관련 포스트가 있다는 표시)가 붙어있다. 물론 저자의 블로그, 운영하는 홈페이지는 모두 영어로 되어있다. 나는 이 책을 처음 사자마자 바로 저자가 운영하는 사이트는 'simpleprogrammer.com'에 가입을 했다. 포스트뿐만 아니라 동영상, 진단 툴킷 등 다양한 콘텐츠를 제공하는데 회원 등록을 하고 난 이후로는 주기적으로 메일을 보내왔다. 단순한 광고 메일이라고 하기엔 메일의 내용 역시 도움이 많이 되었다. 이 책의 내용과 관련된 블로그 포스트 링크를 함께 보내왔는데 한번씩 읽으면 자극이 되었다.

 

단순히 어떤 기술을 배워야 한다고 이야기 하는 것이 아닌, 프로그래머로써의 인생을 설계하기 위해 고려해야 할 부분은 무엇인지, 어떤 방법으로 로드맵을 더 탄탄하게 설계할 수 있는지 도움이 된 책이다. 

+ Recent posts