INTRO
1000줄이 넘는 메소드 그리고 복사 붙여넣기가 난무한 코드를 보며 나는 똥을 안싸는줄 착각하고 남탓만 하며 한숨 쉬던 지난날을 반성하며 '나 부터 달라지자' 라는 다짐과 함께 조금씩 리팩토링을 하며 경험한 것, 공부한 것들을 정리해가려 한다
리팩토링을 업무 로 한다?
리팩토링을 업무 로 한다는 것은 굉장히 힘든 일 인것 같다.
코드 상태에 대해, 테스트와 코드 리뷰에 대해 내 문제 제기를 몇번 해 보았다. 현재 상태를 모르는 사람은 없었다. 하지만 리팩토링을 할 시간을 얻어낼 수는 없었다. 우리 팀엔 하루가 멀다 하고 이슈가 들어왔으며, 수많은 고객사로 부터 갖가지 요구사항이 들어오고 있다. 이런 상황에서 인력을 빼서 겉으로는 티가 나지 않는 리팩토링 업무를 시킨다는 것은 내가 생각해도 굉장히 하기 어려운 선택인 것 같다.
그렇다고 그냥 애써 못본척 지나가기엔...
그냥 애써 못본척 지나가기엔 개발할 때 마주치는 장애물이 있었다.
- 소스를 읽고 이해하기가 어렵다.
- 1000줄이 넘는 매서드.. 아무리 스크롤을 내려도 끝이 안남.
- 매서드 명, 변수명을 봐도 어떤 기능을 하는 지 짐작하기 어려움.
- 중복 코드의 난무
doSomething
메소드 밑에doSomething2
메소드가... 조만간doSomething3
메소드도 생기겠지?if
와else
가 뭐가 다른가.. diff를 떠보니 겨우 사용되는 변수 하나 다르다.
- 유지 보수의 어려움.
- 소스를 읽고 이해하기 어렵고, 중복코드가 많기 때문에 자연스럽게 유지 보수가 어려워진다. 그 소스를 작성한 사람만 이해가 가능하고, 그 마저도 시간이 지나면 작성자도 까먹는 이런 상황은 유지보수에 큰 걸림돌 이다.
- 이대로 능력 없는 그저 그런 개발자로 성장할까 걱정..
- 사실 이 부분이 가장 걱정이 됐다. 1000줄이 넘는 메소드와 무수한 중복코드엔 내가 만든 것도 있다. '나는 그러지 말아야지' 라고 생각했던 것도 잠시. 바쁘다는 핑계로 큰 고민 없이 복사 붙여넣기를 했다. 이제 거의 3년이 다되어 가는데 이런 습관을 가지고 있으면 5년, 10년이 지나도 더 발전하지 않고 지금 실력 그대로 그저 그런 개발자가 될 것 같았다.
그럼 뭘 어떻게 해야 하는데?
사실 이런 생각을 가지게 된 것은 유튜브의 영향이 컸다. 나도 같이 똥을 쌌으면서 남탓만 하던 내 모습을 반성하게 됐고, 리팩토링 할 시간을 달라 했을 때 안된다고 하신 팀장님을 이해하지 못했던 내 모습을 반성하게 됐다.
필요한 것은 명확한 목표와 천천히, 꾸준히 인 것 같다. 무턱대고 덤볐다간 제 풀에 지쳐 예전 상태로 돌아가버릴 수 있다. 그래서 무리하지 않는 범위에서 단기 목표를 세우고 그 목표를 달성하기 위해 조금씩 꾸준히 노력해보려 한다.
명확한 목표
인터넷 검색도 해보고 유튜브도 찾아보며 간단한 목표를 몇개 세워봤다.
- 한 메서드는 인덴트를 하나만
- else 예약어 사용을 자제하자
- 한 가지 메소드는 한 가지 일만
- 지역변수를 없애보자
천천히, 꾸준히
앞서 말했던 것 처럼 초반에 의욕이 앞서 무턱대고 덤볐다가 결국 흐지부지 되는 사태를 방지하고 싶었다. 그래서 천천히라도 꾸준히 해보려 한다.
의식적 노력이 습관이 될 때 까지
일단 시작은 점심시간, 일과를 마치고 회사 소스를 조금씩 리팩토링 해보려 한다. 어느 정도 완성 되었다 싶으면 받아들여지던 말던 상관 없이 팀 내 다른사람에게 리뷰도 요청해 보려 한다.
의식적 노력이 습관이 될 때 까지 빠이팅!!!
← Kill과 trap 목표 설명 →