리팩토링을 위한 시간
급하게 막 하는 코딩 vs. 여유를 갖고 천천히, 테스트 코드도 짜가며 하는 코딩
상황에 떠밀려 첫 번째 방법대로 해버릴 때가 많다.
‘이 상황에선 어쩔 수 없어. 이게 최선이야. 빠른 시간안에 어떻게든 동작하게 만드는 게 중요해’ 라며 합리화를 한다.
하지만, 두 번째 방법대로 해보면, 그 방법이 더 빠를 때가 있다.
테스트 코드를 넣기가 까다로워, [신청-결제-확정-정산]까지 이어지는 흐름을 계속 직접 테스트를 했었다. 어휴~ 여기에 변수가 너무 많아서 그 다양한 케이스를 하나하나 다 실행해보며 테스트를 했었다. 테스트 코드를 만들고 싶었지만, 코드를 거지같이 짜놔서 테스트 코드를 넣기도 애매했다. 그리고 매번 일은 예상보다 빨리 들이닥친다. 계속 쫓기면서 하는 코딩. 테스트 코드를 짤 시간이 없어…
오늘 좀 여유가 생겨, 자동화된 테스트를 돌릴 수 있도록 코드를 리팩토링 하고, 기능을 추가해 나갔다.
추가할 기능을 정의하고, 테스트 코드를 작성하고, 로직을 채워넣고, red-green-refactor 해 나가는 이 리듬. 이 안정감. 아ㅡ 왜 진작 이렇게 안 했지?
상황은 늘 급박하게 돌아간다. 세상은 나를 기다려주지 않는다. 하지만 이 숨 막히는 상황에서도 여유를 만들어내야 한다. 그래야 쳇바퀴처럼 쫓기는 삶에서 빠져나올 수 있다. 빨리 급하게 한다고 좋은 게 아니다.
어떻게 여유를 만들 수 있을까? 어떻게 이 바쁨을 멈춰 세울 수 있을까?
지금까지 찾은 방법 중 하나는, 효율보다 사람에 더 관심을 두는 것이다.
‘사람이 제일 중요해’ ⇒ 2019년부터 선택의 기준 중 하나로 세우고 지키려고 노력해오고 있다.
이번 주말에도 이 원칙에 따라 움직였고, 어찌어찌 여유를 만들 수 있었다. 그리고 그 여유로운 마음을 이어가서 그동안 거지같이 짜 오던 코드도 깔끔하게 리팩토링 했다.
리팩토링 해가며 코드를 작성하는 것. 시간 낭비 같지만, 진짜로 해보면 시간 낭비가 아니라는 것을 알게 된다.
내 삶에도 리팩토링이 필요하다. 사치인 것 같지만, 진짜로 해보면 그게 아니라는 것을 알게 된다.
