dkmqflx's blogGithub

해커와 화가를 읽고

2024.02.17

느낀점

해커, 창조자로서의 정체성

책에서 저자는 해커를 단순한 프로그래머가 아니라 창조자로 정의한다.

일반적으로 해커라고 하면 불법적인 해킹을 떠올리지만, 저자는 진정한 해커는 창조적이고 혁신적인 사고를 가진 사람이며, 그들의 본질적인 역할은 단순한 기술자가 아닌 예술가에 가깝다고 말한다.

즉, 이 책에서 언급하는 해커란 우리가 일반적으로 말하는 프로그래머를 지칭한다.

컴퓨터 프로그래밍은 단순한 문제 해결이 아니라 창작 행위이며, 화가가 물감과 붓을 사용해 작품을 그리듯, 해커는 코드라는 도구를 이용해 새로운 가치를 창출하는 역할을 한다는 것이다.

책에서 특히 인상 깊었던 부분은 "프로그래밍은 사람이 읽을 수 있도록 작성해야 하며, 컴퓨터가 실행하는 것은 부차적인 일이다"라는 문장이다.

이는 단순한 기술적 원칙을 넘어, 해커가 가져야 할 철학적 태도를 보여준다.

소프트웨어는 사람이 이해하고 유지보수할 수 있어야 하며, 좋은 코드는 마치 잘 구성된 문학 작품처럼 독자를 배려해야 한다.

평소에 "좋은 코드란 좋은 글과 같다"는 생각을 갖고 있었기 때문에 이 부분이 특히 공감이 갔다.

노력과 창조의 관계

책은 창의성과 노력의 관계를 강조한다. 우리는 종종 예술이나 프로그래밍을 특정한 재능을 타고난 사람만이 잘할 수 있는 영역이라고 생각하지만, 저자는 이것이 착각이라고 말한다.

그림을 잘 그리는 화가도, 뛰어난 해커도 모두 오랜 시간 꾸준한 노력을 통해 실력을 쌓아왔다.

해커가 소프트웨어를 개발하는 과정은 마치 화가가 수많은 스케치를 통해 작품을 완성해가는 과정과 유사하다.

또한, 저자는 대학에서 가르치는 전통적인 프로그래밍 방식이 실무와 맞지 않는다고 지적한다.

책에서 그는 자신의 프로그래밍 방식이 화가가 스케치하는 방식과 비슷하다고 설명한다.

처음부터 완벽한 설계를 하는 것이 아니라, 코드를 직접 작성하면서 점진적으로 개선해 나가는 것이 더 현실적인 접근 방식이라는 점에서 깊이 공감되었다.

사실 코드를 작성하다 보면 수정을 하는 경우가 훨씬 많은데, 이는 화가가 그림을 그리면서 스케치를 여러 번 하듯이, 프로그래머도 코드를 작성하면서 수정을 하는 것이 당연한 일이라는 것이다.

구현을 하다가 수정을 할 때 설계에 대한 고민이 부족했기에 이렇게 수정을 하게 되는 것이 아닐까 하는 생각을 종종하고는 했었는데, 이러한 과정 자체가 프로그래밍의 일부라는 점을 다시 한 번 깨달았다.

스타트업과 부의 창출

책은 프로그래밍과 해킹뿐만 아니라 스타트업과 부의 창출에 대해서도 다룬다.

저자는 스타트업이 단순한 사업 모델이 아니라, 창조적인 사람들이 자신을 증명할 수 있는 최적의 무대라고 주장한다.

대기업에서 일하는 개발자는 평균적인 성과를 내기 쉽지만, 스타트업에서는 최고의 실력을 가진 소수의 해커들이 짧은 시간 안에 엄청난 가치를 창출할 수 있다.

특히, "스타트업은 곰이 아니라 모기처럼 살아야 한다"는 비유가 인상 깊었다. 거대한 대기업과 정면으로 경쟁하기보다는 기민하고 유연하게 움직이는 것이 스타트업의 강점이라는 것이다.

또한, 부의 창출에서 가장 중요한 요소로 정당한 평가와 영향력을 꼽았다.

능력을 정당하게 평가받을 수 있는 환경과 자신의 결정이 중요한 영향을 미칠 수 있는 상황이 결합될 때, 개인의 생산성이 극대화된다는 것이다. 이 점에서 스타트업이 특히 적합한 환경이라는 주장은 설득력이 있었다.

저자가 스타트업을 성공적으로 창업한 경험이 있었고 뿐만 아니라 와이 콤비네이터라는 굉장히 유명한 스타트업 인큐베이터를 설립한 경험이 있었기 때문에 스타트업에 대한 저자의 생각에 더욱 신뢰가 갔다.

해커의 감정이입과 아름다움

책에서 가장 인상적인 부분 중 하나는 해커가 감정이입을 해야 한다는 점이다.

해커가 단순히 기술적인 문제를 해결하는 것이 아니라, 사용자의 입장에서 생각할 줄 알아야 한다는 것이다.

이는 소프트웨어 디자인과 사용자 경험(UX)에서도 중요한 요소로 작용한다. 위대한 화가들이 사람을 주제로 그림을 그리듯, 위대한 해커는 사용자의 경험을 고려하여 소프트웨어를 설계해야 한다.

프론트엔드 개발자로써 이 부분이 가장 공감이 갔다. 사용자의 입장에서 생각하고, 사용자가 원하는 것을 제공하는 것이 중요하다는 것은 개발자로서 가장 중요한 가치 중 하나라고 생각한다.

오버 엔지니어링을 지양하라는 말이 있듯이, 정해진 시간 내에 가장 중요하게 생각해야할 것은 사용자 경험을 극대화 하는 것이라고 생각한다.

뛰어난 소프트웨어는 보이지 않는 곳까지 신경을 쓰는 섬세함이 있으며, 이는 레오나르도 다빈치가 그의 작품에서 작은 디테일까지 신경 썼던 것과 유사하다고 저자는 말한다.

결론

*"해커와 화가"*는 프로그래밍을 단순한 기술적 작업이 아니라 예술과 창조의 영역으로 바라보게 해준 책이다.

해커는 화가처럼 끊임없이 스케치하고, 실험하며, 창조하는 존재다. 또한, 좋은 프로그래밍은 기술적 우수성을 넘어 감정이입과 사용자의 경험을 고려하는 과정에서 완성된다.

이 책은 단순히 프로그래머뿐만 아니라, 창조적인 일을 하는 모든 사람에게 영감을 줄 수 있다.

프로그래밍을 예술로 바라보는 시각, 창조적인 환경에서 일하는 방법, 그리고 부를 창출하는 사고방식까지, 현대 사회를 살아가는 해커들에게 꼭 필요한 철학과 전략을 제시한다.

결국, 해커는 과학자가 아니라 예술가이며, 그들의 작품은 우리가 살아가는 세상을 더 아름답게 만든다는 것이 이 책에서 말하고자 하는 바인 것 같다.


요약

지은이의 글 - 컴퓨터 세상은 ‘지성’의 서부개척시대

해커라고? 그들은 남의 컴퓨터를 침범하는 족속들 아닌가? 문외한에게는 그렇게 받아들여질 것이다.

하지만 컴퓨터 세상에서 사물에 정통한 프로그래머들이 자신을 스스로 해커라고 부른다.

컴퓨터 세상은 지성의 서부개척시대와 같다. 원한다면 우엇이든지 생각할 수 있지만, 그에 따르는 결과는 스스로 책임져야 한다

01 / 공부벌레는 왜 인기가 없을까 - 그들은 게임판 위의 말에는 관심이 없다

어떤 분야에 속하지 않은 사람들은 그 분야에서 성공을 거두기 위해 얼마나 지속적으로 로도 노력해야 하는지 알지 못한다.

예를 들어서 사람들은 그림을 잘 그리는 사람을 보면 재능을 타고 났을 것이라고 생각한다. 하지만 그림을 “잘 그리는” 사람들은 그림을 그리는 데 많은 시간을 투자해 왔다.

인간은 일하기를 좋아한다. 사람이 하는 일은 대개 그 사람의 정체성을 결정한다.

02 / 해커와 화가 - 해커는 화가, 소설가, 건축가와 같은 예술 창조자다

해커와 화가의 공통점은 우선 그들이 둘 다 무언가를 창조한다는 사실이다. 작곡가, 건축가, 작가와 마찬가지로 해커와 화가는 좋은 무엇을 만들어내기 위해서 노력한다. 그들은 연구를 수행하지는 않지만, 창조의 과정에서 훨씬 좋은 새로운 기술을 발견하기도 한다

해커들에게 있어서 컴퓨터는 자기를 표현하기 위한 매체에 불과하다. 건축가에게는 콘크리트가, 화가에게는 그림이 그런 역할을 하는 것과 마찬가지다. 소스코드도 마찬가지로 스스로를 잘 설명해야 한다. 만약 프로그래밍에 대해서 뭔가 한마디 인용하는 것은 컴퓨터 프로그램의 구조와 해석의 시작 부분에 나와 있는 다음과 같은 문구다

프로그램은 오직 사람이 읽기 위해서 작성해야 한다. 컴퓨터가 그것을 실행하는 것은 부차적인 일이다 당신은 단지 사용자를 위해서 감정이입을 하는 것이 아니라 당신의 소스코드를 읽는 독자를 위한 감정이입도 해야한다. 당신 스스로가 얼마 후에는 그 소스코드를 읽는 독자 가운데 한 사람이 될 것이기 때문이다

해커는 과학자라기보다 창조자에 가깝기 때문에 적절하게 비유할 대상을 찾을 수 있는 곳은 과학 분야 가 아니라 창조자가 있는 다른 분야다. 그림 그리기가 우리에게 가르쳐 주는 것이 해킹 말고 다른 무엇이 있겠는가?

우리가 그림에서 배울 수 있는 것은, 혹은 적어도 확인할 수 있는 것은 바로 해킹을 어떻게 할 것인가 하 는 점이다. 그림을 그리는 기술은 무엇인가를 그림으로써 학습한다. 해킹도 마찬가지다. 대부분의 해커가 대학에서 프로그래밍 수업을 받는 것으로 해킹을 배우지는 않는다. 그들은 13살이었을 때 직접 프로그램을 만들면서 해킹을 배웠다.

이와 마찬가지로 위대한 소프트웨어는 아름다움을 향해서 뜨겁게 타올라야 한다. 좋은 소프트웨어 내부를 들여다보면 아무도 들여다볼 것이라고 생각되지 않는 곳조차 아름답다는 사실을 알게 될 것이다.

대부분의 소프트웨어는 그림과 마찬가지로 사람을 위해서 만들어진다. 해커가 위대한 해서는 화가와 마찬가지로 감정이입을 할 줄 알아야 한다. 즉, 사물을 사용자의 입장에 야 한다. 대부분의 창조자는 관객을 위해서 작품을 만들어 낸다. 이때 다른 사람의 주의를 끌기 위해서는 그들 필요한 것이 무엇인지 이해해야만 한다.

위대한 그림은 대부분이 사람을 그리고 있다. 왜냐하면, 사람들을 다른 사람에게 관심을 가지기 때문이다. 아마도 감정이입이야말로 좋은 해커와 위대한 해커를 구분하는 결정적인 차이점일 것이다.

어떤 해커들 은 상당히 영리하지만, 감정이입이라는 면에서는 혼자서 화투를 치는 사람처럼 자기중심적이다. 그들은 사물을 사용자의 관점에서 바라볼 줄 모르기 때문에 위대한 소프트웨어를 디자인하기 어렵다

04 / 모범적인 ‘불량 태도’ - 해커는 규칙을 깨면서 성장한다

대부분의 언론 매체에서는 “해커”를 남의 컴퓨터에 침입한 사람이라는 의미로 사용한다 프로그래머 사이에서는 좋은 프로그래머라는 의미다.

이 두 가지 의미는 서로 연결되어 있다. 프로 어서 “해커”란 문자 그대로 어떤 것에 정통했다는 의미를 담고 있다.

즉, 컴퓨터가 원하든 아니든 자기가 원하는 대로 조작할 수 있는 사람이라는 의미다.

06 / 부자가 되는 법 - 부를 창조하는 최상의 방법, 스타트업

경제적으로 보았을 때 스타트업이란 한 사람이 평생 할 일을 몇 년이라는 짧은 시간으로 압축시키는 것이다. 낮은 밀도로 40년을 일하는 대신, 당신이 할 수 있는 최고의 밀도로 딱 4년만 일하는 것이다.

이렇게 일하는 태도는 빠른 속도가 삶과 죽음을 가르는 테크놀로지 분야에서는 큰 장점이다 프로그래머에게는 부를 창출하는 능력이 사람마다 매우 다르다는 사실이 분명하게 보인다.

비아웹 시절에 우리는 생산력이 괴물 수준에 가까운 친구를 본 적이 있었다. 어느 날 나는 그가 밤을 새우면서 수행한 일이 실제로 수십만 달러에 달하는 가치를 갖는 것으로 평가하기도 했다. 평범한 프로그래머는 그와 같은 시간에 제로 혹은 마이너스(쓸데없는 버그를 양산함으로써)에 해당하는 부를 더 했을 것이었다.

최고의 프로그래머가 대개 자유주의자인 까닭이 여기에 있다. 우리가 속한 세계에서는 물 위에서 수영 을 하거나 아니면 물속으로 가라앉거나 둘 중 하나다. 거기에 변명은 필요 없다. 부의 창출로부터 멀리 떨 어져 있는 사람들, 즉 대학생, 기자, 정치가 같은 사람들은 5%의 부자가 전체적인 부의 절반을 차지하고 있다는 말을 들으면 부당하다고 생각한다.

경험이 풍부한 프로그래머라면 오히려 그 정도밖에 안될까? 라고 생각할 것이다. 상위의 5%에 속하는 프로그래머가 제대로 된 소프트웨어의 99%를 작성하는 것이다. 부는 판매되지 않아도 창출될 수 있다. 적어도 최근에 이르기까지 과학자들은 그들이 창출한 부를 실질적으로 사회에 기부해 온 셈이다.

우리가 감염되어 죽을 확률이 그만큼 낮아졌다는 의미에서 페니실린 발 견은 우리 모두를 부유하게 한 것과 마찬가지다. 부란 사람들이 원하는 것인데, 누구도 죽음을 원하지 않기 때문이다. 해커들은 누구나 무료로 이용할 수 있는 오픈소스 소프트웨어를 작성함으로써 그들이 창출 한 부를 사회에 제공한다.


부자가 되기 위해서는 두 가지를 갖춘 환경에 있어야 한다. 두 가지란 바로 정당한 평가와 영향력이다. 무엇보다도 우선 사람들의 능력을 공평하게 평가하는 곳에 있어야 한다. 그렇지 않으면 더 많이 일해서 더 많이 받는 것이 불가능하기 때문이다. 그와 동시에 영향력도 있어야 한다. 당신이 내린 결정이 뭔가 큰 영 향을 행사할 수 있는 상황을 만들 필요가 있다는 뜻이다.

그러나 정당한 평가만으로는 충분하지 않다. 정당한 평가는 이루어지지만 영향력을 발휘할 수 없을 때 도 있다. 가령 스웨터 가게에서 바느질하는 것이 한 예다. 바느질의 성과는 정확하게 측정되기 때문에 정확히 일한 만큼 지급받지만, 바느질이 어떤 결정에 영향을 미치지는 않는다.

바느질을 하는 상황에서 당신이 내릴 수 있는 의사결정이라는 것은 고작해야 일을 얼마나 빨리할 것인가 정도에 불과하다. 그런 결정을 잘 내리면 당신이 버는 수입을 2배나 3배까지 늘릴 수는 있다.


역사를 보면, 부의 창출로 부자가 된 사람들은 대개 새로운 테크놀로지를 개발해서 부자가 된 것으로 나타난다. 계란 프라이나 머리를 깎는 일은 아무리 잘해도 부자가 될 수 있을 만큼 빠르게 할 수 없다.

1200년에 피렌체 사람들을 부자로 만들어 준 것은 당대의 최첨단 하이테크였던 결이 고운 옷감을 만드는 새로운 기술의 발견이었다. 1600년대에 네덜란드인을 부자로 만들어 준 것은 극동 지역의 바다를 점령할 수 있도록 하는 새로운 항해기술과 조선기술의 발견이었다.

우리는 소프트웨어에 더할 수 있는 기능이 두 가지 있을 때, 그리고 기능이 가진 가치가 어려운 정도에 비레한다고 했을 때, 언제나 어려운 쪽을 선택했다. 더 많은 가치를 위해서가 아니라, 더 어렵기 때문이었다. 우리는 크고 느린 경쟁자들이 힘난한 산속에서 우리의 뒤를 찾아오는 모습을 보기를 좋아했다.

스타트업은 게릴라처럼 중앙 정부군이 쫒차올 수 없는 복잡한 지형을 선호한다. 나는 아직도 지독하게 어려운 기술적인 문제를 안고 씨름을 하다가 완전히 지쳐서서 나가떨어진 날들을 기억한다. 하지만 우리에게 어려움이라는 것은 경쟁자에게는 불가능을 의미했기에 우리는 그렇게 힘든 남에도 즐거움을 잃지 않았다.

09 / 창조자의 심미적 취향 - 위대한 디자인에 이르는 길

좋은 디자인은 어렵다. 위대한 작품을 탄생시킨 사람들이 가진 공통점은 그들이 엄청난 노력을 기율였 다는 사실이다. 당신이 지금 엄청난 노력을 기울이고 있지 않다면, 스스로 시간을 낭비하고 있는 것이다.

어려운 문제는 엄청난 노력을 요구한다. 수학에서 어려운 증명은 언제나 천재적인 해결책이 필요하다.

좋은 디자인은 뛰어난 사람들의 모임에서 나온다. 15세기의 피렌체에서는 어떤 특별한 일이 벌어지고 있었다. 유전 때문이라고는 할 수 없다. 그런 일이 지금은 일어나지 않기 때문이다. 레오나르도와 미켈란젤로가 날 때부터 가지고 있었던 재능이 뛰어났다고 하더라도, 밀라노에서 태어난 사람들 중에서도 그에 버금가는 재능을 가지고 있는 사람이 있었다고 가장 하는 것이 옳다. 그렇다면 도대체 밀라노의 레오나르도에게는 무슨 일이 일어난 것일까?

지금 미국엔 15세기 밀라노 인구의 1,000배에 달하는 사람들이 살고 있다. 그리하여 1,000명의 레오나르도 1.000명의 미켈턴젤로가 우리와 함께 걸어 다니고 있다고 말할 수 있다. DNA의 규칙에 따르자면 우리는 거장에 둘러싸여 문화의 이기를 누려야 하는 셈이다.

그러나 실제로 그렇지는 않다. 레오나르 도가 만들어지기 위해서는 타고난 재능 이외에 무연가가 더 있어야 하기 때문이다. 즉, 1450년의 피렌체가 필요한 것이다. 재능 있는 사람이 모셔서 관련된 문제를 연구하는 커뮤니티보다 강력한 것은 없다.