대학교 때도 그랬고 대학원 때도 그랬다. 난 주어진 커리큘럼에 따라 열심히 따라가는 학생이었는데 주위에 종종 교과서에서는 알려주지 않는 새로운 것들을 잘 아는 친구들이 있었다.
처음엔 마냥 별생각 없었는데 점차 그 친구들과 나와의 차별점이 보이기 시작했다. 저 친구들은 스스로 뭔가를 만들 수 있지만 난 배운 지식만 있기 때문에 상대적으로 뭔가를 만들지 못하는 것이다. 저 친구들은 더 많은 지식 정보로 더 좋은 판단을 할 수 있는데 나는 그렇지 못하는 것이었다.
물론 다른 사람이 아는 걸 내가 무조건 다 알아야 한다는 것이 아니다. 문제는 그 친구들은 내가 아는 것을 어느 정도 알고 있는 것에 반해 나는 그 친구들이 알고 있는 것들을 잘 모르고 있는 것 같았다. 벤다이어그램으로 그린다면 그 친구들의 지식이 나의 지식의 슈퍼 셋(super set) 같다는 느낌이 들었다.
친구들과의 대화에서 모르는 지식이나 개념을 들을 때마다 그때그때 내 것으로 소화하는 것도 당연히 해야 할 일이지만 궁극적인 해결책은 아닌 것 같았다. 그저 따라가는 것 이상으로 스스로 새로운 지식을 발견하고 소화하고 싶었기 때문이다. 생각이 여기까지 이르자 궁금해지기 시작했다.
저 친구는 그럼 저 지식을 어떻게 알게 된 것일까?
저 친구도 친구로부터 들어서 알게 된 것이라면 저 친구의 친구는 그 지식을 어떻게 알게 된 것일까? 저 친구의 친구도 친구로부터 들어서 알게 된 것이라면 저 친구의 친구의 친구는 그 지식을 어떻게 알게 된 것일까? (그렇다. 링크드 리스트의 출발점이 궁금한 것이다.)
그때부터 관찰하기 시작했다.
저 친구들은 어떻게 지식을 습득하게 되는지를 말이다.
이따금 실제로 물어보기도 했던 것 같다.
그리고 찾은 답은
호기심!
가장 강력한 힘의 원천은 호기심이었다.
지식 습득의 경로는 다양했다. 대화 중에, 포스팅된 글을 보다가, 유튜브 추천 영상에서, 직접 구글링을 하다가, 컨퍼런스나 밋업에 참석해서, 책을 통해, 다양한 경로로 지식을 습득했지만 결국 이러한 경로로 이끄는 힘은 호기심이었다.
호기심은 강력한 힘의 원천이었다. 궁금하고 알고 싶고 깊게 파보고 싶은 내적 동기가 다양한 액션을 만들고, 결국 자기 것으로 소화시켜서 본인의 지식으로 내재화 시키는 일련의 과정, 이 과정을 시작부터 끝까지 완료시키는 힘이 호기심이었다.
그렇다면,, 나의 호기심은 어떤 모습이었을까?
아주 어릴 때를 생각해 보면 유전적으로(?) 호기심이 많은 아이로 태어난 것 같지는 않다. 호기심이 많다면 탐구하고 연구하고 그랬을 텐데, 내 어린 시절을 생각해 보면 직관적인 걸 좋아하고 재밌으면 그만이었던 평범함 아이였다.
그러다 보니 중학교 때부터 답이 있는 문제를 풀면서, 정해진 커리큘럼에 충실하면서 '그것만' 따라가면 충분하다고, 그게 전부라고 생각하며 살았던 것 같다. 아니, 더 솔직히 말하면, 따라가는 것 외에 지식을 습득하기 위한 어떤 방법이 있는지 생각 자체를 해보지 않고 살던 나는, 어느 순간 그나마 있던 호기심마저 말라비틀어져있는 사람이 되어 있었다.
'호기심을 다시 살려야겠다!'
내 안의 죽어가는 호기심에 호흡기를 달고 다시 살리기 위한 노력을 시작했다.
조금이라도 궁금한 게 생기면 넘기지 말자. 찾아보자. 탐구하자. 그렇게 아주 작은 부분을 바꿔나갔다.
예를 들면 이런 것이었다.
서버와 통신하는 안드로이드 앱을 개발할 일이 생겨서 예제 코드를 찾고 있던 중에 발견한 것이 있는데, 그 예제의 일부가 keep-alive라는 것을 쓰고 있는 것이었다. keep-alive가 뭔지 당장 몰라도 일단 예제를 따라 했더니 원하는 대로 서버를 호출하여 응답을 잘 받는 것까지 확인했다. 이전의 나라면? 일단 소기의 목적을 달성했으니 넘어갔을 것이다. 물론 keep-alive가 뭔지 모른다는 게 좀 찝찝하긴 하지만.. 그래도 동작하니까 넘어갔을 것이다.
하지만 호기심에 호흡기를 달아주고 다시 살리기로 결심한 이상, 그냥 넘어갈 수 없었다! http에서 keep-alive의 의미가 무엇이며 어떤 용도로 쓰는 것인지를 이해하고 소화하기 위해 검색을 하기 시작했다. 그러면서 http의 keep-alive의 탄생 이유와 목적뿐만 아니라 keep-alive 설정 방법과 설정을 잘 해줘야 하는 당위성까지 부가적으로 알게 됐다.
이런 형태의 노력들은 사소해 보여도 내 호기심을 살리는데 중요한 역할을 했다.
궁금할 때마다 그냥 넘어가지 않고 검색하고 탐구하는 것을 꾸준히 하자 깊숙이 파고 들어가는 것이 자연스러워지기 시작했다.
가령, JVM(java virtual machine)의 GC(garbage collector)는 동작 방식에 따라 young generation과 old generation으로 나뉘어서 동작한다. young generation은 다시 eden과 survivor로 나뉘는데, 이 survivor는 쌍둥이처럼 두 개가 존재한다. 재밌는 사실은 GC가 동작하는 방식을 보면 쌍둥이 survivor를 둘 다 동시에 활용하는 것이 아니라, 번갈아 가며 하나씩만 사용한다는 점이다.
예전의 나였다면 GC가 어떻게 동작하는지 대충 파악했으니 여기서 멈췄을 것이다. 하지만 궁금했다. '왜 공간 아깝게 번갈아가면서 하나씩만 쓰지?' 호기심이 꿈틀거리는 순간이었다. 지금 이 순간, 난 여기서 멈추면 안 되는 것이었다.
나는 더 깊이 파보기로 결심했다. 분명 두 개를 번갈아가며 쓰는 이유가 있을 것인데 그 이유를 찾기 위해서 말이다. 결국 GC 속도를 더 빠르게 하기 위함이라는 납득할 만한 이유를 찾았다. (동작 방식을 자세히 설명하면 말이 길어져서 이 정도로 패스!)
호기심을 키우는 것은 현재진행형이다.
타고난 호기심쟁이가 아니기에 아직 많이 부족하지만, 호기심을 살리기 위해 노력하기 시작한 이후로 새로운 것을 알게 되거나 기술을 더 깊이 알게 되는 것이 한결 자연스러워지고 익숙해진 것은 분명하다.
새로운 것을 궁금해하고, 왜 그런지 궁금해하고, 좀 더 근본적인 동작 방식을 궁금해하는 것!
호기심이 결국 가장 강력한 출발점인 것 같다.
여러분은 어떠하십니까?
끝으로 호기심에 대한 글을 정리하면서 호기심과 관련된 명언이 있을까 싶어서 검색해 보았다. 두 개의 명언을 남기고 글을 마무리하겠다.
"나는 특별한 재능이 있는 것이 아니고, 단지 굉장히 호기심이 많다."
알베르트 아인슈타인
"지식을 가지려면 호기심부터 가져야 한다.
아이에게 호기심을 가지게 하는 것은 그가 이해력을 증가시키도록 만드는 것이다."
사무엘 랭그레이