brunch

뭘 할 때가 제일 재밌어?

by 김붕어

1.

글쓰기는 기술(technology)이다. 근본적으로 소리에 불과한 말을 눈으로 볼 수 있는 문자로 치환한다는 점에서 그렇다. 문자에 담은 말은 휘발되지 않는다. 그래서 글 쓰는 인간은 말을 문자에 담고, 그걸 보고, 그게 논리에 맞는지 따져보고, 짜임새와 조리에 맞게 문자를 이리저리 옮기고, 정돈된 글 뒤에 새로운 말을 계속해서 붙일 수 있다. 이것이 이 기술의 가능성이다.


그렇게 단어와 단어, 문단과 문단을 엮는 인간은 문자로 적기 전에는 떠올릴 수 없던, 아주 낯선 생각과 감정들에 다다르기도 한다. 그건 마치 완성했을 때의 그림을 모르는 퍼즐 조각을 하나씩 잇다가 비로소 앗! 하고 보게되는 경험과 비슷하다. 이것이 이 기술의 재미다.


2.

미국 고등학교에 전학을 오자마자 늘 비상사태였다. 좋은 대학에 가려면 우선 영어부터 잘해야 했는데, 영어를 잘 못했기 때문이었다. 허겁지겁 영어를 배우기 시작했다. 빨리 배우고 싶어서 별별 난리를 다 부렸다. 영어로만 일기를 적었고, 혼자 방에서 영어로 막 중얼거렸고, 한국어 노출을 최소화한답시고 네이버 홈페이지에는 일주일에 한 번만 들어갔다.


어찌어찌 입시를 준비할 정도로 읽고, 말하고, 쓰는 게 가능해졌다. 하지만 그때 쓴 글들은 아무 말이나 적은 일기, 어설픈 리포트, 참고서 해답 짜집기에 불과했다. 아직 제자리를 찾지 못한 조각이 많은 미완성 퍼즐 같은 글들이었다. 꼬리에 꼬리를 무는 어떤 뾰족한 생각을 개진한 글이 아니었다.


3.

대학에서 그런 글이라 부를 만한 것을 처음으로 썼다. 하지만 그걸 처음 경험한 계기는 프로그래밍 인트로 수업이었다. 그 수업에서 난생처음으로 코드를, 그것도 수만 줄이나 작성했다. 코드를 쓰면 쓸수록 벼락을 맞은 것처럼 머리에 전구가 켜졌다.


그때는 몰랐지만 지금 확신하는 것은 이것이다. 프로그래밍은 근본적으로 글쓰기다. 나는 컴퓨터의 도움을 받아서 난생처음으로 수만 자가 넘게 길고 뾰족한 글을 써버린 것이다. 코드에 숨은 허술한 생각은 그걸 실행한 컴퓨터가 나 대신 찾아서 보여주었다. 그걸 보면 그제야 새로운 생각들이 열렸다. 생각을 코드로 옮기고, 그걸 눈으로 보고, 돌려보고, 고치고, 다시 생각하는 반복의 경험이 몹시 즐거웠다. 대학생이 되어서야 제대로 된 글을 써본 나는 다행히도 그 재미를 확실히 느껴버렸다.


4.

범생이 스타일은 아니었고, 실속 있게 학점 챙기기에도 큰 관심이 없었지만, 나는 생각을 검증 가능한 코드로 옮기는 프로그래밍 그 자체에는 누구보다도 열을 올렸다. 하면 할수록 프로그래밍은 마치 긴 책을 쓰는 것처럼 느껴졌다.


예컨대, 소설책을 쓰는 게 단순히 페이지에 글자를 나열하는 게 아니라, 주제에 맞게 내용을 챕터로 나누고 인물과 사건이 등장하는 이야기를 엮는 일인 것처럼, 하나의 프로그램을 완성하는 프로그래밍도 비슷하다. 프로그래밍에도 짠 코드를 역할과 의미에 따라 분류하고, 복잡한 디테일을 묶어서 단순화하고, 레고 같은 블록들을 연결하는 과정이 있다. 소설의 인물에게 성격과 이름을 붙이는 것처럼 코드 블록에도 ‘XX 담당하는 매니저’, ‘YY 일 처리하는 워커’ 같은 타이틀과 역할을 부여하는 게 논리 정연한 코드를 작성하는 데 도움이 된다.


그래서 코드의 구조는 그 코드가 구현하는 대상의 구조를 닮는다. 예컨대, 자율주행 소프트웨어는 핸들을 제어하는 코드, 페달을 제어하는 코드, 도로 상황을 관측하는 코드, 이 모든 코드들을 활용해서 운전자 역할을 하는 코드 등으로 구성되어 있을 것이다.


다른 한편으로 코드는 그 코드를 짠 사람의 사고 구조도 닮는다. 만약에 차의 내부를 한 번도 본 적 없는 사람이 자율주행 소프트웨어를 설계한다면 핸들과 페달 제어 코드 같은 건 아예 짜지 않을 수 있다. 핸들과 페달이 없는 차의 내부를 상상해 볼 수 있기 때문이다.


이런 창의적인 결과가 나올 수 있겠지만 물론 정반대의 결과가 더 자주 나온다. 생각이 정리되지 않은 사람이 급하게 쓴 코드는 그 구조와 논리가 개판일 가능성이 높다.


5.

대학을 졸업하고 소프트웨어 엔지니어로 일을 시작하고 나서 적잖이 놀랐다. 맙소사. 세상을 바꿨다는 빅테크 회사들의 코드도 이렇게 개판일 수 있구나. 정신의 토사물 같은 코드를 남긴 사람이 어떻게 저 높은 자리까지 올라갔을까. 사람들이 한바탕 제대로 놀다가 떠난 잔치의 애프터씬에서 설거지를 하는 사람은 왜 나지? 나도 더러운 그릇을 닦는 게 아니라 신나게 놀고 싶다. 제대로 된 코드를 짜고 싶다. 처음 몇 년은 이런 생각들을 자주 했다.


그러나 현업에서 일하는 것은 학교에서 공부 하는 것과 달랐다. 학교는 학생이 공부하는 곳이었고, 일터는 여러 사람들이 협력해서 비즈니스를 하는 곳이었다. 비즈니스의 세계에서는 데드라인도, 데드라인에 맞춰 해내야 하는 일도 변화무쌍했다. 때때로 개같은 코드는 그런 상황에서 누군가 그 나름의 최선을 다해 만든 결과물이기도 했다. 그런 상황에 거듭 처해보고 나서야 이해를 했다.


하지만 이해와 별개로 싫은 건 싫었다. 설사 같은 코드를 여전히 혐오했다. 그렇다고 설사 같은 코드를 푸드득 뿜어낸 후 변기 물을 내리듯 다음 직장으로 떠나고 싶지도 않았다.


6.

애플에 온지는 3년, 소프트웨어 엔지니어 일을 한지는 7년 정도 지난 2023년 가을에 iCloud 팀으로 부서 이동을 했다. 그 7년 동안 설거지와 고고학에 가까운 일을 주로 했었다. (대부분 떠난) 개발자들이 남긴 대체로 형편없는 코드를 이해하고, 고치고, 유지했다. iCloud로 옮긴 이유 중 하나는 그런 피할 수 없는 유지 보수의 일을 그나마 의미 있는 영역에서 하고 싶다는 마음이었다.


iCloud는 애플 고객의 모든 데이터를 들고 있다. Photos, Messages, Notes, Drive, Contacts, Calendar, Mail, Browser History, News, Pay, Health, 등등등. 현존하는 거의 모든 빅테크 회사와 다르게 애플의 iCloud는 이 모든 데이터를 암호화해서 저장한다. 그러니까 나 같은 iCloud 개발자가 지인이 아이폰으로 찍은 자기 사진을 절대 열어볼 수 없다는 말이다. 회사 규정이 그러한 게 아니라 기술적으로 아예 불가능하다. 나는 수십억 애플 고객의 디지털 프라이버시를 보장하는 일이 그 나름 가치 있다고 생각했다.


하지만 개떡 같은 코드의 쓰레기장 같은 곳이 (또) iCloud였다. iCloud는 15년 넘게 쌓인 똥들이 합체해서 탄생한 거대한 괴물이었다. 그걸 전부 이해하는 사람은 아무도 없었다. 100명 가까운 조직의 집단지성과 소수 영웅들의 노력 덕분에 그 서비스가 공중분해되지 않고 돌아가고 있었다. 나도 한 2년 가까이 그 일에 거들었다.


그래도 수십억 애플 고객의 모든 데이터를 저장하고, 28조 원 일 년 서비스 매출의 큰 부분을 차지하는 iCloud 답게 빛나는 보석 같은 코드들도 분명 있었다. 비록 활발하게 코딩을 하지는 않았지만, 2년 동안 iCloud의 방대한 코드와 관련 문서를 충분히 읽으며 군데군데 손보는 일도 그 나름의 재미가 있었다.


7.

iCloud가 들고 있는 데이터는 AI 시대에 황금이나 다름없다. 생성형 AI, Agentic AI, 뭐 이런 기술들이 급부상하면서 iCloud 조직에도 큰 변화가 찾아왔다. 황금 더미들의 금고인 iCloud를 잘 활용해서 Personal Intelligence를 구현해야 한다는 미션이 핵폭탄처럼 떨어졌다. 부랴부랴 마왕 iCloud를 잡으러 가는 원정대가 꾸려졌다. 나도 거기에 합류했다. 제법 중요한 역할을 맡았다. 마왕을 베는 용사는 아니지만, 용사 옆에서 한몫 제대로 거드는 전사 역할이다.


일이 산더미다. 그러다 보니 요새 내 손목, 목, 어깨는 크게 비명을 지르고 있다. 한동안 끼지 않았던 보호대를 껴도 손목은 아이고 나 저린다고 난리다. 목은 뻑뻑하고 짧게 느껴지고 어깨는 앞으로 말려가는 것 같다. 몸만 아픈 게 아니라 정신도 없다. 샤워기 헤드의 세찬 물줄기를 맞으면서도 프로젝트의 난제에 대해 생각하고, 꿈에서도 프로그래밍을 하고, 침대에서 일어나도 기억나는 생각들을 곧바로 메모까지 하고 있다.


솔직히 최악은 두려움이다. 꼬리에 꼬리를 문 데드라인이 임박할 때마다 해내지 못할까 두렵다. 요즘에는 그 두려움에 사로잡혀서 달리기도, 글쓰기도, 책 읽기도, 여행도, 커뮤니티에 기여하는 일도, 친구들이랑 노는 일도 전부 티끌처럼 느껴지고 있다. 그게 참 아쉽다.


하지만 큰 위안이 되는 분명한 사실은 이것이다. 나는 지금 내가 늘 하고 싶었던 종류의 일을 하고 있다. 공들여서 디자인하고, 설계하고, 그걸 적지 않은 양의 코드로 옮기는 프로그래밍을 하고 있다. 긴 호흡의 글을 쓰는 느낌이다. 프로그래밍을 처음 배웠던 시절의 재미를 느끼고 있다. 그리고 이 일은 분명히 내가 애플에 남기는 레거시가 될 것이다.


늘 하고 싶었던 일, 할 수 있다고 믿었던 일, 의미 있다고 생각하는 일, 벼락을 맞은 것처럼 머리에 전구가 켜지는 일, 오랫동안 구애해서 간신히 기회를 얻은 일, 무엇보다도 무척 재밌는 일. 나는 이 모든 일을 할 이번 기회를 제대로 물어볼 생각이다. 물개 박수를 치면서 해냈다고 소리지르는 날이 얼른 왔으면 좋겠다.


keyword
매거진의 이전글30대엔 도망쳤고, 40대엔 버텼다. 오십에는?-3/3