사소함에 사로잡히지 않게

시간관리 이야기 돌, 자갈, 모래 그리고 항아리에 대한 이야기가 있다. 자료가 충분하니 또 적지는 않겠지만, 구글링을 해보면 한국어로도 영어1로도 분야를 가리지 않고 인용되는 이야기인데 어째선지 원전을 찾기는 어려운 그런 이야기다. 이 이야기의 결론은 간단하다. 중요하고 큰 일부터 해라. 작고 사소한 일을 하다 보면, 큰 일을 할 기회를 놓치게 된다. 스티븐 코비의 성공하는 사람들의 7가지 습관에 나오는 ‘시간관리 매트릭스’에도 비슷한 개념이 있는데, 결론은 급하고 중요한 일을 했다면, 다음은 급한 것보다 중요한 것을 먼저 하라는 것이다. ...

개발자 - 조금씩 사라지고 있는 직업

한 줄 요약: 직업의 소멸은 전문성이 사라지는 것을 의미하고, 코딩이라는 개발자의 전문성은 사라지고 있다. 타자기와 타이피스트 타자기가 개발된 19세기 말 이후 20세기까지 타이피스트는 오랫동안 유망하고 선망되는 직업이었다. 타이피스트에 대한 이야기를 정확하게 하려면 여성의 노동참여와 산업혁명, 2차 세계대전과 같은 역사적인 배경을 다 이야기 해야겠지만, 범위가 너무 넓으므로 이 직업에 대한 모든 내용을 다루지는 않을 것이다. 다만, 꼭 이야기 해야하는 사실은 타이피스트가 이제 직업으로 의미 있게 분류되지는 않는다는 것이다.1 타이피스트가 하나의 전문직으로 구분되던 시절도 있었다. 그 당시, 타자기는 비싸고 안정성이 떨어지는 도구였다. 활자 꼬임과 고장을 피하면서 구술 혹은 필사로 기록된 정보를 머리로는 편집을 고려하면서도 정확하게 입력해야 하던 시절이었다. 보급형 타자기가 개발된 다음에도 타자는 여전히 하나의 기술이었다. 다만, 기존에는 하나의 기술자가 필요한 기술로 취급되기 보다는 일부 사무직군이 가져야 할 여러 기술중 하나로 자리 잡았다. 그러다, 사무실에 업무용 컴퓨터가 본격적으로 보급되고, “저장”과 “수정”이 가능한 워드프로세서 프로그램과 저렴한 저장매체들이 나오기 시작하면서, 더이상 활자 꼬임 회피와 정확성은 더이상 필요한 전문기술이 아니게 되었다. 그렇게 타이피스트라는 직업은 서서히 사라졌고, 타자 혹은 문서작성은 모두의 일이 되었다. ...

코딩은 쉽고 소프트웨어를 만드는 것은 어렵다

이야기를 시작하기에 앞서 이 분야 용어들은 명확한 것을 선호하지만 정작 명확하게 무언가를 만드는 법은 잘 없는 이 분야 사람들을 닮아서인지 명확하게 정의되어 있지 않다. 용어의 모호함을 해결하기 위해서 사용한 정의를 우선 적어둔다. 각 용어의 정의는 일반적인 정의보다 넓거나 좁을 수 있다. ‘알고리즘’1은 수학적으로 잘 정의된 작업, 절차의 목록이다. ‘코드(소스코드의 줄인 형태)’는 알고리즘을 프로그래밍 언어로 적어둔 것이다. ‘프로그램’은 명령어(컴퓨터가 실행할 수 있는)의 모음이다. 이러한 명령어 모음은 컴퓨터가 처음 나왔을 때는 직접 작성하기도 했지만, 현재는 대부분 코드를 변환하여 만들어 낸다. ‘소프트웨어’는 물리적인 하드웨어에 반하는 개념으로 비 물리적인 것 들의 모음이다. 프로그램과 각종 데이터, 프로그램에 사용에 필요한 설명서 등의 문서와, 계약을 포함한다. 즉, 소프트웨어는 사용의 단위이자 제품의 단위이다. 지적재산권의 개념이 생긴 뒤에는 우리가 ‘프로그램’을 쓴다고 표현해도 실제로 사용해 온 것은 명령어만 아니라 명령어를 실행하기 위한 각종 데이터와 ‘계약’이 필수적이므로, 사실 우리는 엄밀히 따지면 늘 ‘소프트웨어’를 써왔다고 말할 수 있다. 코딩은 쉽다 주어진 알고리즘(로직)을 코드로 옮기는 것은 쉽다. 정확히는 쉬워졌다. 전통적인 코딩의 어려움은 인간의 눈에 맞춰진 알고리즘과 달리 코드는 기계에 맞추어 적어야 한다는 점이었다. 그러나 많이 쓰이는 알고리즘일수록 무상 혹은 유상으로 코드 혹은 프로그램 조각들을 이미 많이 공유하고 있고, 인간의 기준에 맞추어 대충 적어도, 상황에 맞추어 최적의 코드로 변환하는 프로그램들도 이제는 충분히 개발되었다. 인터넷과 스마트폰을 중심으로 한 개발환경의 변화와 각종 서비스의 등장은 이러한 변화의 전파를 매우 빠르게 앞당기고 있다. ...

모르는지도 모르는

지식의 분할 한 사람이 인지하는 자신의 지식은 쉽게 “아는 것"과 “모르는 것"으로 쪼개진다. 예를 들면, 1+1 같은 간단한 식의 해는 대부분 “안다” 말하고, 복잡한 미분방정식의 해는 쉽게 모른다라고 말한다. 노란 것은 아는 것이요 검은 것은 모르는 것이다. 1+1은 노란색이고, 미분방정식의 풀이법은 검은색이다. 누군가 본인이 안다고 인지한다고 해서 실제 아는 것은 아니다. 시험을 보면 점수는 늘 생각보다 낮다. 개인의 지식을 다시 쪼개면 “정확히 아는 것”, “안다고 생각하고 있지만 모르는 것”, “모르는 것"으로 나눌 수 있다. 지식이란 구멍 투성이다. ...

내가 타인의 말에 상처를 받았을 때를 다시금 생각해보면 내가 준비되지 못한 상황이었거나, 혹은 내가 이해할 능력이 부족했거나, 오해를 했거나, 아니면 누군가 의도적으로 나를 깍아내리려 하거나, 아니면 발언자의 무지나 무례함 때문이었다. 우리는 종종 말에 대한 뒷수습으로 의도는 좋았다고 하거나 의도는 없었다고 하지만, 사실 의도는 중요하지 않다. 말하기 전에 예민하게 고민하고 노력하지 않으면, 결국 상처 주고 상처 받는다. 아무리 머리로 이해하고 있어도 여전히 내 노력과 주의와 별개로 누군가가 내가 하는 말로 상처 받을 것이라는 사실을 체화시키는 건 여전히 어렵다. 의미 없는 말 심지어 뜻조차 없는 허밍에도 의미를 부여하고 나를 비난하던 수많은 사람들을 기억한다. 다행인 건, 이제 그런 이들을 끌어 앉지 않고 내 삶에서 지워도, 내 삶에 영향이 없다는 것이다.1 ...

여는 글

말은 늘 의무감과 오만함 사이에 있다. 말을 하지 않는 것과 과한 말 중에 어떤 것이 더 부끄러운 지는 여전히 고민이 된다. 그래도 돌아보니 흔하지 않은 경험들을 했고, 덕분에 일부에 대해서는 조금 다른 시선을 가지고 있다. 행동과는 별개로 다양한 시선은 사회와 개인에게 늘 도움이 되는 것이라고 생각한다. 그래서 이렇게 글을 남긴다. 수년간 이런저런 글을 여기저기 남기다 보니 알게 된 것이 있다면, 나는 하고 싶은 말은 많고 주기적으로 하는 것을 어려워하는 사람이라는 것이다. 글을 좀 공개하자 마음먹고 흩뿌려진 글들을 정리하다 보니 로그 형식보다 맺음이 있는 책이 더 어울리는 듯 하다. 여러 글을 권 단위로 묶어 내면 글과 글 사이의 공개 주기가 좀 길어도 부담 없고, 연관 있는 여러 글을 같이 읽기도 편하다. 주기를 채우기 위해서 굳이 재미 없는 글을 적을 필요도 없고 말이다. ...

FAQ: 그래서 그런건 어떻게 아는가

가끔 서로 다른 사람에게 같은 질문을 들을 때가 있다. 반복된다는 것은 많은 이가 궁금한 것이라 생각하여 두세번쯤 들으면 생각을 정리해 둔다. 그 중 일부를 글로 남긴다. 종종 듣는 말 중 하나는 “그런 건 어떻게 알아요?“라는 말이다. 궁금한 것이 생기면 웹을 찾아본다. 기초적인걸 알고서도 더 궁금하면 책을 읽거나 수업을 듣거나 전문가에게 물어본다. 그게 끝이다. 하지만 이 것이 답은 아니다. 더 정확한 질문은 그리고 해야 하는 질문은 “어떻게 아는가"가 아니기 때문이다. 사실 진짜 필요한 질문은 “어떻게 그런 것이 궁금한가?“이다. 궁금해야 무엇이든 찾아보고 알 수 있기 때문이다. 그래서 보통 저런 질문을 들으면 대충 웹에서 봤다고 대충 얼버무린다. ...

Connecting the dots

제품을 만들면서 느낀 것들을 글로 남겨둔다. 스텐포드 졸업식 축사에서 스티브 잡스는 세가지 이야기를 하는데, 그 중 첫째는 “점을 연결하는 것”에 대한 이야기이다. 간단하게 요약하면, 생모의 입양허락조건이 스티브잡스의 대학진학이었기 때문에 자신은 대학에 진학하였으며 비용 대비 가치를 얻을 수 없었기에 그럼에도 불구하고 대학을 중퇴하기로 결정한다. 중퇴 하고 나서야 원하는 수업 - 캘리그래피 수업 - 을 들을수 있었다. 그때의 선택이 인생에 어떤 영향을 끼칠지 알 수 없었지만, 10년 뒤 Mac과 MacOS를 만들면서 캘리그래피 수업때 들은 지식이 사용되었으며, 그 지식 덕분에 전세계의 PC사용자들은 모두 이에 영향을 받았다라는 이야기다. (안 보셨으면 꼭 보시길..) ...