I Stopped Debugging at My Desk. Here's What Changed
I usually write here about Next.js, caching, and the bugs that steal your sleep. But this post is...
개요 #
Next.js와 캐싱에 관한 글을 주로 써 온 개발자 Shubhra Pokhariya가 이번에는 코드가 아니라, 코드를 쓰기 전의 시간에 대해 이야기했다. 막힌 버그 앞에서 화면을 계속 노려보는 대신 정원으로 올라가는 습관이 자신의 디버깅 방식을 어떻게 바꿨는지 담은 에세이다.
핵심은 단순하다. 어떤 문제는 열심히 풀려고 애쓰기를 멈추는 순간 더 선명해진다는 것. 그는 하루 종일 잡히지 않던 캐싱 버그를, 다음 날 아침 퇴비를 뒤집다가 떠오른 생각 하나로 몇 분 만에 고쳤다.
본문 #
밤새 잡히지 않던 캐싱 버그 #
전날 저녁, 그는 제대로 막혀 있었다. 애플리케이션은 정상 동작했고 데이터도 잘 불러왔다. 대부분이 예상대로 굴러갔지만, 한 페이지만 갱신 시점이 한참 지난 뒤에도 오래된 데이터를 계속 보여줬다.
뻔한 지점부터 확인했고, 다시 확인했다. 문서를 읽고, 요청 흐름을 따라가고, 떠올릴 수 있는 캐시 경계를 전부 들여다봤다. 모든 게 멀쩡해 보였다. 이럴 때 화면을 계속 노려봐야 소용없다는 걸 경험으로 알기에, 그는 노트북을 덮었다. 포기가 아니라, 다른 시각이 필요하다는 판단이었다.
Photo by Markus Spiske on Pexels
테라스에서 찾은 답 #
다음 날 아침 그는 에디터를 여는 대신 테라스로 올라갔다. 밤새 내린 비로 흙냄새가 달라져 있었고, 토마토는 하룻밤 사이 키가 자랐고, 박 넝쿨은 지지대 한 칸을 더 타고 올라가 있었다. 아무도 지켜보지 않아도 자연은 계속 일하고 있었다.
퇴비를 뒤집는 동안 머릿속은 캐싱을 떠나 있었다. 딱히 아무 생각도 하지 않던 그때, 전날 자신이 세웠던 가정 하나가 불쑥 떠올랐다. 새 데이터가 시스템에 들어오는 지점만 들여다봤을 뿐, 오래된 데이터가 여전히 재사용되는 지점은 충분히 살피지 않았다는 것. 관점이 조금 틀어지자 답이 보였고, 자리로 돌아와 고치는 데는 몇 분이면 충분했다.
그는 이렇게 정리한다. 해답은 정원에 숨어 있던 게 아니라 처음부터 자기 머릿속에 있었고, 정원은 그것을 볼 수 있을 만큼의 여백을 마음에 내어줬을 뿐이라고.
정원이 가르쳐준 관찰과 인내 #
이런 경험이 반복되면서 그는 깨달았다. 정원 일이 도움이 되는 이유는 식물이 프로그래밍 실력을 키워줘서가 아니라, 디버깅에 필요한 습관을 길러주기 때문이라는 것.
첫 번째는 관찰이다. 매일 식물을 돌보다 보면 작은 변화가 눈에 들어오기 시작한다. 막 펴지는 새잎, 방향을 튼 줄기, 평소보다 빨리 마르는 흙. 극적인 사건이 아니라, 서두르면 놓치기 쉬운 사소한 신호들이다. 버그도 비슷하다. 많은 버그는 거대한 실수가 아니라 간과한 조건 하나, 잊힌 가정 하나에서 나온다. 그런 문제는 더 빨리 타이핑한다고 풀리지 않는다. 더 많이 알아차려야 풀린다.
두 번째는 인내다. 씨앗을 재촉할 수는 없다. 꽃에게 다음 주 대신 내일 피어 달라고 부탁할 수도 없다. 알맞은 조건을 만들어 주고 시간에 맡길 뿐이다. 소프트웨어는 빌드하고, 배포하고, 새로고침하며 즉각적인 결과를 기대하는 세계지만, 좋은 사고는 늘 그 속도로 굴러가지 않는다. 느려서가 아니라, 성장에는 저마다의 리듬이 있어서다.
퇴비, 그리고 쌓이는 학습 #
그의 집에서는 채소 껍질과 마른 잎으로 직접 퇴비를 만든다. 처음엔 그저 버릴 것들로 보이지만, 시간이 지나면 정원에서 가장 기름진 부분이 된다.
학습도 같은 방식으로 작동한다는 게 그의 생각이다. 여섯 달 전에 읽은 글, 작년에 씨름했던 버그, 거의 잊고 있던 문서, 동료 개발자와 나눈 대화. 하나하나는 대단해 보이지 않지만 어느 날 전부 맞물리며 쓸모를 드러낸다. 그래서 그는 코딩 대신 독서로 오후를 보내도 죄책감을 느끼지 않는다. 배움은 만들기와 분리된 활동이 아니라, 나중에 쓰는 모든 코드의 일부가 된다.
화면 밖에 마련해 두는 자리 #
그는 아침마다 헤드폰도, 알림도 없이 정원을 한 바퀴 걷는다. 그 몇 분이 화면 속 에디터보다 세상이 훨씬 크다는 걸 일깨워 준다고 한다. 코드도, 버그도 그대로 기다리고 있겠지만, 돌아올 때의 눈은 한결 맑아져 있다.
우리는 소프트웨어를 빠르게 만드는 데 많은 시간을 쓴다. 성능을 프로파일링하고 쿼리를 개선하고 불필요한 작업을 걷어낸다. 정작 자기 자신에게는 그런 최적화를 잊고 지냈다는 게 그의 고백이다. 또 다른 생산성 도구가 아니라, 생각이 압박 없이 떠돌 수 있는 자리 하나면 된다. 그에게는 정원이지만 누군가에게는 독서, 요리, 별 보기, 혹은 잠깐 비를 맞는 일일 수 있다. 무엇이든 상관없다는 것, 그게 요점이다.
글은 이렇게 끝난다. 지금 풀리지 않는 무언가가 가슴을 누르고 있다면, 자기만의 테라스를 찾아보라고. 정원일 필요는 없다. 모든 걸 풀어내려는 시도를 멈추고 답이 다가오게 두는 곳이면 된다. "당신은 뒤처진 게 아니다. 느린 것도 아니다. 그저 자신의 속도로, 자신의 계절에 맞게 자라고 있을 뿐이다."
이 글은 위 출처를 바탕으로 한국 독자를 위해 재작성한 기사입니다. 원문의 사실과 수치에 근거하며, 별도의 견해를 포함하지 않습니다.

