나도 처음부터 다 잘하는 개발자는 아니었어. 매일 밤 모니터 앞에서 내 코드가 부끄러워 쥐구멍에 숨고 싶었던 적이 한두 번이 아니었거든. 지금 12년차 백엔드 개발자로 일하고 있지만, 돌이켜보면 그 수많은 삽질과 실수들이 지금의 나를 만든 가장 소중한 자양분이었던 것 같아.
코드만 잘 짜면 끝인 줄 알았던 시절
초년생 시절에는 기술 스택을 늘리고 화려한 코드를 짜는 것만이 최고의 개발자가 되는 길이라고 믿었어. 기획서에 빈틈이 보여도 '내가 알아서 잘 짜면 되겠지' 하고 혼자만의 생각으로 개발을 진행하곤 했지. 결국 배포 당일에 기획 의도와 완전히 다른 결과물이 나와서 밤을 새워 재개발을 해야 했어. 그때 정말 부끄럽고 팀원들에게 미안해서 쥐구멍에라도 들어가고 싶더라고. 이 일을 겪고 나서 개발자는 코드로만 대화하는 게 아니라, 사람과 대화하는 직업이라는 걸 깨달았어. 질문하는 걸 부끄러워하지 않고, 모호한 부분이 있다면 기획자나 디자이너와 끊임없이 소통하며 싱크를 맞춰야 한다는 걸 뼈저리게 배웠지.
동작만 하면 장땡? 예외 처리를 무시한 대가
한번은 대규모 트래픽이 몰리는 이벤트 API를 개발한 적이 있어. 내 로컬 PC 테스트에서 잘 돌아가니까 신나서 바로 배포를 진행했지. 하지만 실서버에 적용하자마자 상상도 못 한 에러와 함께 DB 커넥션 풀이 터져버렸어. 예외 상황이나 부하 테스트를 전혀 고려하지 않은 채 '성공하는 케이스'로만 테스트했던 거야. 순식간에 서비스가 마비되었고, 장애 복구를 하는 몇 시간 동안 심장이 터질 것처럼 두근거리고 등에서 식은땀이 멈추지 않았어. 이 실수를 계기로 코드를 작성할 때 항상 다음과 같은 질문을 스스로에게 던지게 되었어.
- "이 API에 갑자기 10배의 트래픽이 몰리면 어떻게 될까?"
- "외부 API 연동이 실패했을 때의 예외 처리는 되어 있는가?"
- "트랜잭션의 범위가 너무 넓어서 락(Lock)이 발생하지는 않을까?"
모르는 걸 모른다고 말하지 못했던 자존심
선배 개발자들이 너무 바빠 보여서, 혹은 내가 무능해 보일까 봐 모르는 기술이나 해결되지 않는 에러가 발생해도 혼자 끙끙 앓았어. 하루 종일 구글링을 해도 안 풀리던 문제가 있었는데, 결국 마감 직전에야 시니어 선배에게 털어놓았지. 선배는 내 코드를 보더니 단 5분 만에 해결책을 제시해 주더라고. 그러면서 "진호야, 모르는 건 죄가 아니야. 하지만 혼자 붙잡고 시간을 낭비해서 프로젝트 전체 일정을 망치는 건 진짜 큰 문제야"라고 조언해 주셨어. 그 이후로는 모르는 게 생기면 딱 30분만 치열하게 고민해 보고, 그래도 안 되면 부끄러움 없이 질문하는 용기를 갖게 되었어.
💬 진호의 한마디 "실수는 성장의 가장 빠른 지름길이야. 완벽한 코드를 짜는 개발자보다, 실수를 통해 배우고 빠르게 복구하는 개발자가 진짜 단단한 시니어가 되더라고." 지금 겪고 있는 막막함과 잦은 실수들에 너무 낙담하지 마. 그 모든 과정이 네 안에 단단한 뼈대를 만드는 중이니까. 네가 겪는 오늘의 삽질이 내일의 훌륭한 레퍼런스가 될 거야. 언제나 네 도전을 응원할게.