2장 기술지식

2023.12.18

2.1 입력이 없으면 창의적인 결과물도 없다

  • 창의성이 모두 창의성을 낳는다는 것을 보여주는 사례
    • 세네카는 경쟁 학파를 면밀이 관찰하고 그 지식을 내면화하여 새로운 것을 만들어 냈다.
    • 루만은 메모를 통해 자칫 잊어버릴 수 있는 정보를 연결하여 새로운 것을 만들어 냈다.
    • 안드레이 브레슬라프는 먼저 다른 프로그래밍 언어로 눈을 돌려 효과가 있는 기능들을 조사함으로써, 독창적이지만 조금 지나면 쓰이지 언어를 만드는 일을 피할 수 있었다.
  • 모든 창의적인 작업은 입력에서 시작된다.
  • 입력이 없으면 출력도 없다.
  • 창의성은 영감주의자(자유로운 연상, 장난기, 측면적 사고), 상황주의자(사회적 맥락에 의존하고 커뮤니티에 내재), 구조주의자(기술과 방법을 연구하고 분석) 등 다양한 관점으로 접근해 볼 수 있다.
  • 여기서는 먼저 창의성에 대한 구조주의자(structuralist)의 접근 방식을 살펴보겠다.

2.2 지식 수집하기

  • 호기심은 필연적으로 새로운 지식의 축적으로 이어진다.

2.2.1 저장 항목의 다양화

  • 저장 항목을 다양화한다는 것은 두 가지를 의미합니다.
  • 첫째, 달걀을 한 바구니에 모두 담지 말아야 한다는 뜻입니다.
    • 자바 개발자라면 JVM의 스레딩 모델뿐만 아니라 고(Go)의 고루틴)(Goroutines)과 루비로 구현된 동시 액터(concurrent actor)에 대해서도 읽어 봐야 한다. 다른 언어에서 동시성이 어떻게 작동하는지 알면 현재 사용 중인 언어에서 무엇이 가능하고 무엇이 불가능한지 더 잘 이해할 수 있다.
    • 개발자로서 컴파일러와 프로그래밍 언어에 관한 책뿐만 아니라 철학이나 심리학에 관한 책도 읽어 보기를 바란다. 기술적인 측면을 깊이 파고드는 것은 당연한 일이다.
    • 창의적인 프로그래머는 자신이 익숙한 프로그래밍 영역뿐만 아니라 여러 영역을 연결하는 데도 탁월하다.
    • 심리학에 대해 배우면 기술의 다양한 도덕적 합의를 더 잘 이해하는 데 도움이 된다.
    • 역사에 대해 배우면 빠르게 진화하는 기술의 상황을 파악하고 평가하는 데 도움이 된다.
  • 둘째, 매체를 다양화하라는 뜻이다.
    • 한두 권의 책을 읽기.
    • 콘퍼런스나 수업에 참석해 보기.
    • 뉴스레터를 구독하기.
    • 블로그의 정기적인 독자가 되거나 더 나아가 글을 쓰는 사람이 되는 것.
    • 궁금한 점에 대해 다른 사람들과 이야기하는 것.
    • 피드백을 요청하는 것.
    • 그 외에도 정보를 얻을 수 있는 소스는 많다.

2.2.2 적당히 조절하기

읽어야 할 책은 너무 많고 시간은 너무 없어요!

  • 다이어트를 실천하는 사람이 먹을 때마다 칼로리를 계산하는 것처럼 지식의 칼로리 섭취량을 조절하는 것이 유일한 해결책이다. 읽을 만한 가치가 있는 것과 무시해도 되는 것을 구별해야 하는데 스스로 결정해도 되고 다른 사람의 안내를 받아도 된다.

2.3 지식의 내면화

  • 새롭고 흥미로운 것들을 많이 접한 다음 단계는 이 지식을 나만의 상황에 맞게 해석해 내면화하는 것이다.
  • 필기는 지식을 내면화하는 효과적인 방법이다.
    • 손으로 직접 쓰면 뇌의 장기 기억에 정보가 저장될 가능성이 커진다.
    • 일부 연구에 따르면 펜으로 노트와 텍스트를 필사하면 키보드를 통해 타이핑할 떄보다 필기 속도가 느리기 때문에 집중력을 높이고, 뇌의 여러 영역, 특히 작업 기억과 같은 영역을 활성화하므로 학습 능력이 향상될 수 있다고 한다.
  • 가장 중요한 부분은 소스 맥락에서 정보를 재구성해 자신의 맥락으로 옮기는 것인데, 이런 일은 랩톱에서 타이핑하더라도 달성할 수 있다.

2.3.1 지식 관리

  • 지식을 추적하고 새로운 아이디어를 창추루하는 데에도 시스템이 필요하다.
  • 정보를 수집하고 처리하는 일관된 시스템을 (개인)지식 관리라고도 한다.
  • 대부분의 아이디어는 예상치 못한 순간, 평소 컴퓨터 화면 앞에 있지 않은 순간에 떠오르고, 스마트폰의 배터리는 방전될 수도 있다. 가장 간단한 해결책은 항상 근처에 노트나 포스트잇을 쌓아두는 것이다.
  • 자신에 맞는 방법을 선택하면 되지만, 시스템이 있어야한다는 것을 기억하자.

2.4 지식을 행동으로 옮기기

  • 정보를 수집하고 해석하는 유일한 목적은 참신하고 실행 가능한 통찰력을 키워 나가는 것이다.
  • 참신함은 지식을 새로운 방식으로 조합해야 얻을 수 있고, 실행은 이렇게 조합한 지식을 코드나 출판물과 같은 가시적인 결과물로 전환하는 것이다.
  • 프로그래머라는 직종에서는 기술 지식이 금방 쓸모없어지기 마련이다. 그렇다면 그 지식을 쌓아 놓지만 말고 무언가 다른 유용한 일을 하는 것이 바람직하다!
  • 메모해 놓지 않는다면 그 맥락이 완전히 사라질 가능성이 높다. 하지만 메모하는 것만으로는 여전히 충분하지 않다. 해결책은 노트를 디지털화해 검색 가능하게 만드는 것이다.
  • 지식 유지에 관한 수많은 연구는 모두 같은 결론을 내린다. 잊고 싶지 않다면 무엇이든 적어놓아야 한다는 것이다.
  • 정보를 수집하고 내면화하는 수고는 그렇게 할 만한 가치가 있다. 왜냐하면 이런 과정을 통해 서로 관련이 없을 것 같은 조각들 사이의 연결 고리를 발견할 수 있기 때문이다.

2.4.1 노트에서 메멕스를 거쳐 제넥스까지

메멕스(memex)는 개인이 자신의 모든 책, 기록 및 통신을 저장하는 가상의 기계 장치로, 매우 빠른 속도로 유연하게 정보를 찾아볼 수 있도록 만든 것이다. 이것은 친밀한 보조 도구로써 한 개인의 기억을 확장하게 해준다.

  • 개인이 상호 연결된 생각 데이터베이스는 90년대 초에 블로그의 형태를 띠며 메멕스 기계의 기능을 완벽하게 모방했다.
  • 옵시디언과 제틀러 같은 디지털 도구를 사용하면 개인적인 메멕스를 쉽게 만들 수 있다.
  • 벤 슈나이더만은 제넥스(Genex) 즉, 탁월함의 생성자(generator of excellence)라는 용어를 도입해 메멕스 개념을 한 단계 더 발전시켰다.

제넥스는 사용자가 예술, 과학, 공학 등의 분야에서 도구를 직접 조작해 혁신을 이뤄낼 수 있도록 지원하는 통합 제품군이다. 제넥스는 고도로 사회적인 프레임워크에서 사용자가 목표를 정하고, 계획을 세우며 꿈을 구현하는 데 도움이 될 것이다. 또한 동료 및 멘토와의 대화를 촉진하고 잠재적 수혜자에게 전파할 수 있다.

2.4.2 메모에서 행동으로

  • 메모에서 행동으로 메모하는 것과 실제로 어떤 행동으로 옮기는 것은 별개의 문제이다. 관련된 노트를 모두 다 시 살펴보는 성찰의 순간이 있어야 이상적이다.
  • 데이비드 앨런의 인기 있는 생산성 관리 개념인 GTD(Getting Things Done) 방법론도 이와 같은 방식으로 작동한다. 그는 생각(노트 필기)과 행동(상자 체크)이라는 두 가지 작업을 수행하는 것에 관해 언급한다. 프로그래머는 리팩터링과 코드 작성이라는 두 가지 종류의 작업을 번갈아 수행하는 데 익숙한 만큼 이 방법이 친숙하게 느껴질 것이다.
  • 니클라스 루만의 말에 따르면 그의 성공의 가장 큰 비결은 제텔카스텐, 즉 영어로 '슬립 박스'라고 부르는 독 특한 노트 필기 시스템이다. 제텔(Zettel)은 루만이 카스텐(Kasten)이라는 큰 서랍에 보관했던 인덱스카드 또는 메모를 말한다.
  • 실제로 루만이 책을 쓰는 것보다도 제텔카스텐을 관리하는데 더 많은 시간이 걸린다고 밝힌 일화는 유명하다. 하지만 노트의 크기가 커지고 더 많은 링크가 만들어질수록 가치 있는 내용을 추출하고 출판하기가 더 쉬워진다. 제텔카스텐은 루만의 제넥스라고 할 수 있다. 즉, 개인적으로 사용한 '탁월함의 생성자'였던 것이다.

2.4.3 노트 관리의 참고 사항

  • 일부 노트 작성자들은 자신의 시스템을 디지털 정원이라는 애칭으로 부른다. 익스트림 프로그래밍과 테스트 주도 개발을 일찍부터 채택한 스티브 프리먼과 냇 프라이스가 프로그래밍을 자라나는 소프트웨어라고 부른 것처럼, 노트 필기는 자라나는 아이디어라고 할 수 있다.
  • 디지털 가드닝, 즉 노트 필기도 기술이기 때문에 아래와 같이 드레퓌스 모델이 적용된다.
  • 처음에는 노트를 구조화하고 리팩터링하는 방법에 대한 명확한 규칙이 필요하다.
    • 하지만 초보자에서 전문가로 기술 수준이 높아지면 규칙보다는 맥락과 중요한 직감에 더 의존하게 될 것이다.

2.4.4 중단에서 실행까지

  • 때로는 메모가 작업을 다시 시작하기 위한 간단하지만 강력한 단서가 될 수 있다. 그런 경우에는 반드시 상호 연결되고 맥락화될 필요는 없다. 잠시 중단되더라도 곧 다시 정상으로 돌아가게 하는 역할만 수행하면 된다.
  • 이러한 종류의 메모는 영구적인 글이 아니며, 작업이 끝난 후에는 아무런 기능도 하지 않는 일회용 노트이다. 대부분의 프로그래머는 이러한 종류의 TODO 노트에 익숙할 것이다.
  • 노트 필기에서 무언가를 얻으려면 아무 종이에나 임시로 메모하는 것에서 벗어나, 루만처럼 학습에 도움이 되는 영구적인 메모를 할 수 있도록 자신의 기술을 발전시켜야 한다.

2.5 워크플로

  • 개인 지식 관리(personal knowledge mastery, PKM)의 구루인 해럴드 자쉬(Harold Jarche)는 자신의 워크플로를 추구(seek) > 감지(sense) > 공유(share)로 요약하는데, 이는 개인 지식 관리 프레임워크의 세 가지 필수 요소로 지속적인 지식 공유를 통한 지식 표현에 중점을 두고 있다.
    • 추구: 동료 네트워크를 구축하여 정보를 찾고 최신 상태로 유지함으로써 전통적인 출처에서 정보를 가져올 수 있을뿐만 아니라 신뢰할 수 있는 출처(예: RSS)에서 정보를 받을 수도 있다.
    • 감지: 정보를 개인화하고 내면화하는 방법. 여기에는 성찰, 이전에 얻은 지식을 바탕으로 사물을 새로운 관점으로 바라보는 것이 포함되며 실험도 수반될 수 있다.
    • 공유: 다른 사람들과 리소스, 아이디어, 경험을 교환하는 것.
  • 거의 모든 프로그래머는 공개된 지식을 소비하지만, 적극적으로 기여하는 사람은 극소수에 불과하다. 우리 대부분은 자신을 드러내지 않는다. 타인으로부터 관심 받기를 즐기는 사람들에게 먹잇감을 제공하지 않도록 주의해 오기만 했다면, 이제는 레벨을 올려 커뮤니티에 무언가 제공하고 기여하는 사람이 되어야 한다.

2.5.1 5단계 워크플로

  • 1단계: 사용 가능한 정보
    • 여하간의 공동 작업물로 시스템을 사용하지 않고는 관리할 수 없는 방대한 지식 더미이다.
  • 2단계: 선별된 관심사
    • RSS. 이메일. 위키백과 검색, 대화, 박물관 또는 도서관 방문, 잡지 등을 통해 제공되는 정보 중에서 관심을 불러일으키는 것들을 선별한다.
    • 어떤 것들은 연구를 위해 특정 정보를 찾을 때 끌어오는 반면,어떤 것들은 제가 신뢰하고 구독하는 동료들이 보내주기도 한다.
  • 3단계: 합성된 사고
    • 선별된 관심사들은 펜과 잉크를 사용해 노트에 적을 때 맥락과 연결되고 강화된다.
    • 자쉬의 프레임워크에서 감지에 해당한다.
    • 실제로 이 단계는 필터 역할을 하기도 하는데, 소비된 모든 지식과 정보가 가치 있는 것은 아니다.
    • 여기서는 손을 자유롭게 움직여야 한다. 엉망으로 만들어도 보고, 다이어그램, 기호, 화살표도 그린다. 어떤 부분은 지워야 한다.
    • 공간적인 단서와 관계에 대한 강조는 통찰을 강화한다.
  • 4단계: 상호 연결된 노트의 디지털화
    • 한달에 한 번 정도는 노트를 스캔하고 태그를 붙여 디지털화한다.
    • 그런 다음 옵시디언에서 링크된 노트로 정리한다. 이런 작업은 지루하게 보일 수도 있지만 지난 몇 년간의 노트를 편리하게 상호 참조하기 위해서는 어쩔 수 없는 과정입니다.
    • 이렇게 하면 적어 놓은 내용을 빠르게 찾을수 있다.
  • 5단계: 공개된 작업
    • 마지막으로, 디지털 저장소에 연결된 모든 노트를 불러와서 일정한 순서로 정리하고 요약을 시작한다.
    • 5단계에 도달했을 때쯤 대부분의 글쓰기와 사고 작업은 끝났을 것이다.
    • 대부분의 노트는 발표되지 못하더라도 괜찮다. 어떤 노트는 몇 년이 걸려서야 완성되는 경우도 있지만, 그렇다 해도 문제 될 것이 없다.
    • 소프트웨어 개발 관리자들은 이를 네마와시(Nemawashi)라고 부르는데, 네마와시는 도요타 자동차의 린 생산 시스템을 일컫는 용어로 정보를 수집하고 공유함으로써 미래의 주요 변화를 위한 토대를 구축하고자 만들어졌다.
    • 좋은 아이디어는 오래된 와인이나 치즈처럼 숙성이 필요하다.
    • 충분히 숙고하지 않은 상태에서 지나치게 빨리 아이디어를 실행하면 같은 결과, 즉 밍밍한 맛의 결과물이 나온다.
    • 때로는 빵처럼 아이디어도 너무 오랜 기간 숙성시키면 망칠 수도 있다.

2.6 요약

  • 파이썬에 대한 지식이 없으면 파이썬으로 창의력을 발휘할 수 없다. 기술 지식에 대한 기초 지식이 없다면 창의적인 문제 해결은 거의 불가능할 것이다.
  • 창의성은 창의성을 낳는다. 모든 창작 의도는 이전의 창작 의도를 기반으로 한다. 따라서 지식 베이스를 최신 상태로 유지하는 것이 중요하다.
  • 새로운 지식을 수집하고 기존 지식을 리팩터링하자. 정기적으로 정보를 얻는 출처에 대해 생각해 보자. 정보 수집 경로를 다양화하거나 적절히 조절해야 할 때가 아닐까?
  • 지식을 수집하는 것과 그 지식을 내면화하는 것은 별개의 문제이다. 읽은 내용을 요약하는 데 그치지 말고 나만의 맥락을 추가하여 나만의 글로 다시 작성하자.
  • 그 정보로 아무것도 할 생각이 없다면 그 모든 정보를 내면화하는 목적은 무엇일까? 요점은 새롭고 실행 가능한 통찰을 창출하는 것임을 기억하자.
  • 개인 지식 관리(PKM) 시스템이 잘 갖춰져 있으면 수집-내면화-실행의 루프를 크게 간소화할 수 있다. 자신에게 맞는 시스템을 개발해 보자. 이 시스템을 올바르게 사용하면 '외부 메모리' 역할을 할 수 있다.
  • 가장 흥미로운 새로운 통찰은 언뜻 보기에는 관련이 없는 정보를 연결하거나 조합할 때 발생한다. 모든 것이 중앙 집중화되어 있는 PKM 시스템이 중요한 또 다른 이유이다.
  • 노트는 고정되어 있을 필요가 없다. 다시 열어 보고, 재작업하고 폐기할 수 있다. 노트 유지보수가 노트 생성만큼이나 중요하다. 이전 노트를 정기적으로 다시 읽다 보면 새로운 아이디어가 떠오를 것이다.