read

소프트웨어 개발이라는 건 결국 무한히 계속되는 버그 수정이다. 아쉽게도 이 버그들은 결코, 절대, 바닥나지 않는데 그것은 현실의 불완전함에 기인한다. 음 표현이 조금 이상하다. 현실의 불완전함이라기 보다는 인간의 불완전함이 더 맞겠다. 세상은 그 자체로 완전하게 존재하고 있지 않은가! 다만 그것을 받아들이는 우리 인간이 불완전한 존재일 뿐이니까. 더 엄밀히 말하면 세상을 알아가는 우리의 인식이 완전치 못하다.

그리고 또 하나의 세계가 있다. 이건 순전히 허구속에 존재하는 세계인데, 가증스럽게도 한계가 명백한 인간들이 만든 세계다. 그것은 참 아니면 거짓이라는 흑백논리 속에 존재하며, 그 자체로는 완벽해 보이지만 허술하기 짝이 없다.

개발자들의 문제는 이 두 세계를 잇는 대서 출발한다. 불완전한 머리로 이해한 현실을 나름 완전해 보이는 논리 세계로 옮길 때, 이 두 우주의 간극에서 버그들이 튀어나온다. 그것도 끝도 없이. 그러니 이 직업을 평생 가져가기로 마음을 먹었다면 이 거대한 모순 앞에 당당히 마주설 각오부터 해야 할 것이다. 버그를 만드는 게 내 일이고 그걸 다시 고치는 게 내 일이다.

그럼 이 우주적 모순과 반복되는 일상에서 우리는 무엇을 추구해야 하는가? 그것은 통찰력이다. 하루에 천번의 정권 찌르기 연습을 하는 무도가처럼 우리는 일상의 반복에서 모종의 '득도'와도 같은 깨달음을 얻어야 한다. 그것은 작게는 함수와 클래스의 디자인에 대한 통찰력일 수도 있고, 보다 크게는 소프트웨어와 그 개발 프로세스에 대한 통찰일 수도 있다. 또한 요구사항 변경과 요동치는 현실에 대한 꿰뚫음일 수도 있다.

그럼 어떻게 해야 '득도'를 할 수 있는가? 여기에 명확히 알려진 방법 같은 건 없다. 다만 한가지 확실한 건 반복, 통찰, 성장의 과정이 행성계의 궤도들과 유사하다는 것이다. 계단형 성장이라고 봐도 비슷한데, 어느 순간에 성장을 통해 자신의 궤도를 능가해 다음 궤도를 달리게 되는 식이다. 그래서 궤도를 바꾸기 위해 우리가 첫번째로 성취해야 하는 것은 빠른 속도다. 일상의 반복들을 전보다 빠르게 해결할 수 있는 데 집중하면 구심력이 특정치를 넘어설때 성장이 일어나 다음 궤도를 돌고 있는 자신을 볼 수 있게 될 것이다.

급하게 쓰다 보니 글과 거기에 담긴 생각이 짧기 그지 없다. 딱히 결론이라고 낼 만한 것도 없지만, 그래도 일상의 반복들이 날 단련할 수 있는 기회라 믿고 오늘도 버그 잡고 스케쥴에 쪼이러 간다.

Blog Logo

Ki Sung Bae


Published

Image

Gsong's Blog

Developer + Entrepreneur = Entreveloper

Back to Overview