신입 개발자가 착수하는 아빠 프로젝트
프로젝트란 그런 것이다
개발자에게 프로젝트란 늘 설렘과 긴장이 동시에 존재한다. 새로운 기술을 도입할 수도 있고, 좋은 팀원들과 멋진 성과를 낼 수도 있다. 그리고 새로운 제품을 만들어 출시했을 때 성취감과 기쁨을 느낄 수도 있다. 과정 또한 정반합의 토의를 거쳐 공감할 수 있는 방향성을 가지고, 체계적이고 논리적인 업무가 진행되면서 자기효능감을 느끼는 것을 상상한다. 이 프로젝트가 성공하면 나도 성장할 것이라는 믿음, 내 일의 의미가 분명해질 것이라는 기대. 프로젝트는 늘 새로운 가능성을 품고 시작된다.
하지만 현실은 늘 다르다. 방향은 이해할 수 없고, 일정은 무리수고, 사수는 바쁘고, 기획은 매일같이 바뀐다. 클라이언트의 피드백은 날이 갈수록 예측할 수 없고, 동료들과의 협업은 기대만큼 매끄럽지 않다. 남는 건 책임과 야근, 그리고 카페인 중독과 손목과 경추의 통증이다. 그래도 우리는 프로젝트를 맡는다. 어쨌든 배포는 해야 하니까. 내 가치를 증명하고, 내 처우를 향상시키고, 그렇게 이력서에 또 하나의 프로젝트를 추가하기 위해서 말이다.
신입 개발자는 사고 뭉치다
처음 프로젝트에 투입된 신입은 말 그대로 위험요소다. 코드 하나 수정하다 전체 빌드를 날려먹고, 기능 하나 붙이겠다고 기존 기능을 깨뜨린다. 무엇보다 무서운 건 본인은 뭘 잘못했는지도 모른다는 거다. 로그도 없고, 디버깅 능력도 없고, 원인 분석은커녕 문제의 재현도 못 한다. 경험이 없다는 건, 실수 그 자체보다도 왜 그게 실수였는지를 모른다는 데 있다.
하지만 그렇게 쌓이는 사건 사고들이 바로 성장의 발판이 된다. 코드가 깨지고, 리뷰에서 털리고, 사수와 유저에게 욕먹고 나서야 알게 된다. 아, 이렇게 하면 안 되는구나. 아, 다음엔 미리 테스트해봐야겠구나. 그렇게 사람은 성장한다. 사고를 줄이는 법을 배우고, 협업하는 법을 익히고, 동료와의 신뢰를 차곡차곡 쌓아간다. 그렇게 우리는 실수의 흔적을 로그처럼 남기며 다음 단계를 향해 나아간다.
육아, 예상치 못한 태스크
아빠가 되는 것도 그랬다. 나는 이미 8년 차 개발자였고 웬만한 장애는 침착하게 대응하던 사람이었다. 시스템이 뻗어도 원인을 파악하고 대응책을 세울 줄 알았다. 하지만 첫째가 태어났을 때 나는 완전히 무력했다. 목욕은 어떻게 시켜야 하는지, 기저귀는 언제 갈아야 하는지, 아이가 조금만 열이 나도 새벽에 응급실을 달렸다. 기침 한 번에 병원을 예약하고 약국에 들렀다. 아이가 밤새 울면, 나는 먹여보고, 안아보고, 눕혀보고, 다시 안아보며 발만 동동 굴렀다. 둘째가 태어났을 떄는 한번 해봤기 떄문에 수월할 줄 알았다. 하지만 둘째는 첫째와 달랐다. 또 새롭게 하는 육아였다.
그때 나는 깨달았다. 이건 내가 경험했던 어떤 프로젝트보다 더 예측할 수 없고, 더 긴급하며, 더 중요한 태스크라는 것을. ‘아빠’라는 프로젝트는 사수도 없고, 문서도 없고, 검증환경도 없고, 롤백도 안 된다. '엄마'라는 프로젝트를 진행하고 있는 아내도 같은 고생한다. 이 것도 협업이 항상 수월하진 않았다. 그리고 이 프로젝트는 성공 여부가 나만의 이력서가 아니라, 한 사람의 인생과 연결되어 있다는 점에서 훨씬 더 절실했다. 나는 그렇게 육아라는 태스크에 투입된, 완전한 초짜 신입이었다.
검증 없는 운영환경
육아는 검증 환경이 없다. 테스트할 수 없이 바로 실전이다. 모든 상황이 프로덕션 환경에서 벌어진다. 나는 나름대로 여러 육아 관련 서적들을 읽었다. 온라인 커뮤니티도 뒤지고, 유투브도 찾아보고, 선배 부모들의 조언도 들었다. 그런데 현실은 언제나 예외 케이스였다. 책에 나온 ‘이럴 땐 이렇게 하세요’는 우리 아이에게는 통하지 않았다. 어떤 날은 먹던 이유식도 거부하고, 어떤 날은 잠들던 패턴이 통째로 바뀐다. 오늘 통했던 방식이 내일은 무용지물이 된다.
아이는 시스템이 아니라 생명이다. 그래서 육아는 디버깅이 불가능하고, 예측도 어려우며, 회귀 테스트는커녕 재현조차 안 된다. 매일이 배포고, 매 순간이 운영이다. 실수하면 바로 결과가 돌아오고, 대응은 즉시 이루어져야 한다. 나는 그 운영 환경 속에서 매일같이 사고를 치며 배우고 있다. 실패를 두려워하지 않으려 애쓰고, 실패를 반복하지 않으려 노력하며, 그렇게 하루하루를 버텨나가고 있다.
로그를 남기기 시작하며
이 글은 그렇게 시작된 아빠 프로젝트의 디버깅 로그다. 개발 경력 14년차, 아빠 경력은 이제 6년차. 경력만 보면 중급 이상은 됐어야 할 시점인데 여전히 실수가 많다. 삽질도 많고 버그도 많다. 하지만 예전처럼 무섭거나 당황스럽지는 않다. 조금씩, 아주 조금씩 나아지고 있다는 걸 느낀다. 이제는 딸들이 어떤 표정을 지을 때 어떤 감정인지 눈치챌 수 있고, 언제 말을 아껴야 할지도 배워가고 있다.
딸들은 내 실수를 다 받아준다. 내가 미처 예외 처리를 못 해낸 상황에서도 아이들은 다시 웃고, 다시 품에 안긴다. 그게 아빠라는 역할의 놀라운 점이다. 나는 여전히 부족하지만 매일 한 줄씩 커밋하고 있다. 말투를 고치고 반응을 조정하고 시간을 조금 더 내고 감정을 붙잡고... 그렇게 매일 아주 작게 리팩토링되어 가고 있다.
다음 에피소드를 여는 마음
이 연재는 완벽한 아빠의 이야기가 아니다. 실수 많고 부족함 많고 겁 많은, 그리고 지금도 그런 한 사람의 이야기다. 나는 아빠라는 타이틀을 달고 매일같이 배포에 실패하고, 로그를 뒤적이며 원인을 찾아 헤매고 있다. 하지만 그 실패 속에 진짜 나의 변화가 담겨 있고 아이들과 함께한 시간들이 작은 주석처럼 남아 있다. 그 주석들이 쌓이면 언젠가 아름다운 코드가 되겠지라고 믿는다.
이제 육아라는 거대한 운영환경 속에서, 실패와 성장의 기록을 하나씩 꺼내 보이겠다. 그리고 그 기록들이 누군가에겐, 지금 나처럼 헤매고 있는 누군가에겐 작은 위로가 되기를 바란다.