작은 실수, 깊은 배움
최근 프로젝트에서 사소하지만 치명적인 실수를 하나 저질렀다. 클래스 메서드를 호출할 때 self
를 빼먹은 것이다. 그 결과, 에러 메시지와 마주하게 되었다:
update_existing_billing_task() takes 1 positional argument but 2 were given
처음엔 왜 이런 에러가 나는지 이해가 되지 않았다. 코드를 몇 번이고 다시 보면서, 결국 클래스 메서드 호출 방식에서 self
를 빠뜨렸다는 걸 깨달았다. 너무나도 기본적인 실수였다. 이걸 발견하고 나니 허탈함과 부끄러움이 동시에 밀려왔다.
왜 이런 실수를 했을까?
돌이켜보면 이런 실수가 왜 일어났는지 몇 가지 이유를 떠올릴 수 있다.
- 자동화된 사고
개발을 하다 보면, 익숙한 작업을 무의식적으로 처리할 때가 있다. 이 과정에서 디테일을 놓치는 것은 흔하다.
self
를 써야 한다는 사실은 알고 있었지만, 코드 작성에만 몰두하다 보니 이런 실수를 하게 된 것 같다. - 에러 메시지의 착시
"1개의 인자가 필요한데 2개가 주어졌다"는 메시지는 분명 원인을 설명해 주고 있지만, 처음에는 "어디서 2개가 전달되었지?"라는 고민에만 빠지게 했다. 이로 인해 문제의 본질을 더 빨리 파악하지 못했다.
- 너무 익숙함에서 오는 방심
클래스와 메서드의 관계에 대한 이해가 깊어질수록, 오히려 이런 기초적인 실수를 간과하게 되는 것 같다.
어떻게 이런 실수를 줄일 수 있을까?
- 코드를 잠시 내려놓고 쉬어가기
너무 몰입하다 보면 시야가 좁아지기 마련이다. 잠깐 휴식을 취하고 다시 코드를 보는 것만으로도 새로운 시각을 가질 수 있다.
- 기본 문법을 다시 점검하기
에러가 해결되지 않을 때는 기초적인 부분부터 다시 점검하는 습관을 들여야 한다. 초심자의 마음으로 내 코드를 검토하는 것이 도움이 된다.
- 다른 사람의 코드라고 생각하고 검토하기
내 코드는 완벽하다고 생각하는 순간 실수가 눈에 잘 보이지 않는다. 내가 아닌 다른 사람이 작성한 코드라고 생각하며 검토하면, 문제를 더 쉽게 발견할 수 있다.
끝으로
개발자는 실수하지 않는 완벽한 존재가 아니다. 나 역시 그렇다. 중요한 것은 실수를 통해 배우고 성장하는 자세다. 스스로에게 조금 더 관대해지고, 실수를 줄이기 위해 노력하는 과정이 우리를 더 나은 개발자로 만들어 줄 것이다.
그러니 동료 개발자들에게 이 말을 전하고 싶다. 너무 스트레스 받지 말고, 실수를 성장의 기회로 삼자. 😊

Comment 1 by jesse
1월 31, 2025 07:03
comments1