예전 신입이나 취준생일 때는 리팩토링이란 것을 엄청 무언가 대단한 작업이라고 생각했다.
일단 영어 단어니까 뽀대나고, 뭔가 내가 생각하지 못한 엄청난 기술이 들어가서 코드를 환골탈태시키는 일일 것 같았다.
그런데, 사실 들여다 보면 별거 아니다.
일단 리팩토링의 의미, 의의 자체는, "기존의 코드를 개선시키는 작업"이다.
그러니까, 15년차 프로그래머가 하든, 시니어가 하든, 주니어가 하든, 아마추어가 하든.
어떤 코드가 너무 보기 어렵거나, 유지보수가 힘들다고 느껴질 때, 이를 개선하는 행위 자체가 그냥 리팩토링이다.
'아 코드 너무 더럽다. 코드 좀 바꿔야 할 듯' 하고 행동에 옮기면 리팩토링을 하고 있는 거다.
그래서 리팩토링이란 단어에 얽메이거나, 두려워할 필요는 없다. 코딩이란게 그렇듯, 정답은 없다.
다만, 리팩토링이란 것이 궁극적으로 '유지보수가 쉽고, 이해하기 쉬운 코드' 같은 게 목표이기 때문에, 리팩토링을 했다 하더라도,
결과적으로 어설프게 문제점은 그대로 가져가면서, 개선은 안되거나, 오히려 코드 구조만 더 복잡해지는 문제는 피해야 하기 때문에.
어느 정도 리팩토링 기법들을 알아두는 게 좋다.
그렇지만, '아 리팩토링에 대해서 공부해야지! 이거 전부 다 배운 다음에 제대로 리팩토링 할 거임ㅎㅎ'라고 생각하기보단,
'어떻게 하면, 내 코드를 개선시킬 수 있을까'라는 느낌으로 접근해서, 하나하나 차근차근 적용해 나가면서 배우는 게 좋다고 생각한다.
코드를 개선하기 위한 좋은 리팩토링 기법들은 어찌 보면,
좋은 코드를 만드는 법을 배우는 것이기에 일단 습관이 베게 하는 게 가장 중요할 것이다.
억지로 머릿속에 넣어봤자, 막상 코딩을 하면 또 예전 습관이 베어 나올 것이기 때문이다.
사실 나도 이렇게 말은 했지만, 아직 제대로 알지도 못하고 좋은 코딩 습관이 제대로 몸에 베지도 않았다.
이 기회에 여러 기법들을 포스팅해가면서, 배워보려고 한다.
'Refactoring & Clean Code' 카테고리의 다른 글
SOLID : 의존 역전 원칙 (0) | 2020.04.14 |
---|---|
SOLID : 인터페이스 분리 원칙 (0) | 2020.04.12 |
SOLID : 리스코프 치환 원칙 (0) | 2020.04.12 |
SOLID : 개방 폐쇄 원칙 (0) | 2020.04.10 |
SOLID : 단일 책임 원칙 (0) | 2020.04.10 |