리팩터링 2판 (1회차 독후감)

Modetts·2021년 3월 28일
1

독후감

목록 보기
1/7

아는 형과 함께 독서 스터디를 진행하기로 했다. 처음으로 읽기 시작한 책은 마틴 파울러리팩터링 2판 이다. 책의 사진은 아래와 같다.

이 책을 읽기 전부터 나는 리팩터링에 관심이 많았다. 회사에 취업하기 전에도 리팩터링에 대한 존재를 알았지만 실제로 이를 써봐야 겠다는 생각이 든 적은 없었다. 왜냐하면 개발이 끝나고 나면 그 코드를 다시 볼 일이 많이 없었기 때문이다.

하지만 취업이후로 이야기가 달라졌다. 점점 코드에서 악취가 난다는 것이 느껴졌기 때문이다. 기획팀에서 새로운 기능과 UI 변경을 요청할 때마다 점점 내 코드는 더러워졌고 리팩터링 하라고 외치고 있었다.

그러나 나는 시간이 없다는 핑계로 계속해서 리팩터링을 미뤘었다. 개발을 할 때는 시간이 부족하니까, 기획팀의 요구사항을 빨리 끝내는게 먼저니까 나중에 개발 다 하고나서 시간이 여유로울 때 진행해야지 생각했었다.

하지만 막상 개발이 끝나고 리팩터링을 하려고 보니까 코드가 생각보다 너무 지저분했다. 어디서부터 리팩터링을 적용해야할 지도 막막한 경우가 많았다. 나중에는 "지금은 코드가 잘 돌아가니까 나중에 오류가 발생하거나 수정이 필요한 경우에 하는 게 더 좋지 않을까?" 라는 생각도 자주하게 되었다.

이러한 상황속에서 읽게 된 책이 바로 "리팩터링 2판" 이다. 나는 이 책을 읽으면 읽을 수록 그간 내가 얼마나 비효율적으로 코딩을 했는지 알게되었다.

우선 리팩터링은 한 번에 몰아서 하는 것이 아니었다. 필요할 때마다 코딩과 함께 병행되어야 하는 것이었다. 나는 이 점에 정말 크게 공감을 하였는데, 이유는 위에서 서술한 것처럼 나중에 몰아서 하기에는 어디에 리팩터링을 적용해야 하는지 다시 찾아야 된다는 점이 있으며, 또 코드량이 많아질 수록 점점 어려워지기 때문이다. 악취가 나는 곳을 발견했을 때가 바로 래픽터링을 해야하는 시점이며 이 때 제일 정확하고 효율적으로 리팩터링을 할 수가 있다.

또 테스트의 중요성도 크게 깨닫게 되었다. 나는 이제껏 개발을 진행하면서 테스트 코드를 작성하며 개발한 적이 없었다. 이 부분에서 정말 큰 반성을 하게 되었다. 실제로 회사에서 업무를 하면서 코드를 수정할 때마다 제대로 동작하는지 수동으로 테스트를 하곤 했는데, 책에서 말한 것처럼 실제 기능을 작성하는 코딩보다 테스트 및 디버깅을 하는데에 시간을 많이 썼기 때문이다. 책에서 말하는 것처럼 평소에 테스트 코드를 작성하는 습관을 들였다면 이처럼 시간을 낭비하지는 않았을 거란 생각이 들었다. 앞으로는 꼭 테스트 코드를 작성하는 습관을 들여서 이러한 시간 낭비를 하지 않아야겠다.

그리고 이 책의 저자는 코드를 작성할 때 커밋을 되게 자주하는데, 이 점도 많은 공부가 되었다. 나는 커밋을 생각나면 하고 아니면 퇴근하기 전에 몰아서 한 번 하는 편인데, 나보다 훨씬 프로그래밍 경력이 많은 저자는 겨우 코드 몇 줄 수정한 사소한 부분도 일일히 커밋을 해주었기 때문이다. 이렇게 커밋을 많이 해주어야 나중에 오류를 찾기도 쉽고 에러가 났을 때, 에러가 나기 전으로 돌리기도 쉽기 때문에 읽고 나서는 최대한 커밋을 자주 하려고 노력하고 있다.

또 이 책에는 정말 많은 리팩터링 기법이 소개된다. 이 외에도 추가적으로 저자가 git에 올릴 정도로 많은 기법들이 있다. 이러한 기법들을 1회독에 모두 알고 넘어가는 것은 어렵기 때문에, 실제로 코딩을 하면서 리팩터링이 필요할 때마다 다시 읽으면서 진행하는 것이 좋다는 생각이 들었다. 아마 이 책을 이제 회사에 두고 실제 업무를 진행하면서 많은 참고를 하게 될 것 같다.

이제 겨우 1회독을 마쳤다. 읽으면서 계속 드는 생각은, 이 책은 정말 개발자로서 일하는 내내 읽어야 하는 책이라는 것이다. 내가 충분히 리팩터링에 대해 자신감이 생길 때까지 읽어야겠다.

마지막으로, 이 책을 읽으면서 좋은 문장이라고 생각했던 말로 글을 마치겠다.

난 뛰어난 프로그래머가 아니에요. 단지 뛰어난 습관을 지닌 괜찮은 프로그래머일 뿐이에요. by 켄트 백

profile
즐겁고 재밌는 프론트엔드 개발 :)

0개의 댓글