솔직히 말하면, 나도 12년차 시니어가 되기까지 셀 수 없이 많은 실수를 저질렀어. 지금 생각하면 얼굴이 화끈거릴 정도로 바보 같은 짓도 많이 했었거든. 후배들이 가끔 '진호 선배는 실수 안 하는 것 같아요'라고 말할 때면, '내가 얼마나 많은 실수를 겪었는지 알면 깜짝 놀랄 텐데' 하고 속으로 웃곤 해. 나도 그랬어. 너희가 겪는 고민들, 나도 똑같이 겪었거든.
기능 과포장에 목매던 시절
신입 때, '이왕이면 멋지게, 최신 기술로!' 하는 욕심이 과했어. 단순한 웹 서비스인데도 굳이 MSA(Microservices Architecture)를 도입하겠다고 고집했었거든. 당시 팀원들은 '이 정도 규모엔 모놀리스도 충분하지 않을까?' 하고 조심스럽게 의견을 냈지만, 나는 '미래를 봐야 한다', '확장성을 고려해야 한다'며 고집을 꺾지 않았지. 결국 개발 기간은 두 배로 늘어났고, 복잡도만 하염없이 증가했어. 배포는 더 어려워졌고, 디버깅은 지옥 같았지. 결국 프로젝트는 제때 끝내지 못했고, 그제야 내 오만이 얼마나 큰 실책이었는지 뼈저리게 느꼈어. 최신 기술을 아는 것보다, 적절한 기술을 선택하는 지혜가 훨씬 중요하다는 걸 그때 배웠지.
혼자 끙끙 앓던 밤들
이건 정말 많은 후배들이 공감할 만한 이야기일 거야. 특정 버그에 며칠을 매달렸어. 코드를 백 번 넘게 들여다보고, 공식 문서를 밤새도록 뒤져도 답이 안 나오는 거야. 당시엔 선배한테 물어보면 내가 무능해보일까 봐, '이것도 모르냐'고 할까 봐 전전긍긍했지. 결국 일주일 가까이 혼자 끙끙 앓다가, 마감은 다가오고 더 이상 미룰 수 없어서 겨우 선배한테 물어봤거든? 선배는 코드 몇 줄 보더니 '아, 이거 설정 파일에서 하나만 바꾸면 돼' 하면서 5분 만에 해결해주는 거야. 그때의 허탈함이란... 동시에 '왜 진작 물어보지 못했을까?' 하는 후회가 밀려왔어. 질문하는 용기가, 혼자서 며칠을 헤매는 것보다 훨씬 값지다는 걸 깨달았지.
레거시 코드, 무작정 뜯어고치다
경력이 좀 쌓이고 나서는 '이건 왜 이렇게 짰지?' 하면서 레거시 코드를 보면 무조건 다 뜯어고쳐야 직성이 풀렸어. '클린 코드', '리팩토링' 같은 개념에 심취해서, 기존 코드가 어떤 비즈니스 로직과 히스토리를 가지고 있는지 충분히 이해하려 하지 않았지. 무작정 '더 좋게' 만들겠다고 갈아엎다가, 사이드 이펙트로 기존에 잘 동작하던 기능에 버그를 만들어낸 적이 한두 번이 아니야. 심지어 나중에 알고 보니, 그 '이상한' 코드가 특정 예외 상황을 처리하기 위한 고도의 방법이었던 적도 있었어. 그때마다 '아는 것이 병이다'라는 말을 실감했지. 레거시 코드에도 다 이유가 있더라고. 존중하고 이해하려는 태도가 먼저라는 걸 배웠어.
💬 진호의 한마디 실수는 곧 성장의 밑거름이야. 중요한 건 실수를 하지 않는 게 아니라, 실수에서 무엇을 배우고 다음번엔 어떻게 더 나아갈지 고민하는 자세거든. 지금 와서 돌아보면, 그 모든 실수들이 나를 12년차 백엔드 개발자로 만들어준 소중한 경험들이더라고. 넘어지고 깨지면서 비로소 단단해지는 법을 배운 거지. 그러니 후배들도 실수하는 걸 두려워하지 마. 너희의 모든 좌충우돌이 결국 너희를 더 멋진 개발자로 만들어줄 거야. 힘내!