리팩터링 2판 (리팩토링 개정판) - 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기
마틴 파울러 지음, 개앞맵시 외 옮김 / 한빛미디어 / 2020년 4월
평점 :
장바구니담기


- 이 책은 전문 프로그래머를 대상으로 쓴 리팩터링 지침서

- 절제되고 효율적인 방식으로 리팩터링하는 법을 알려주는 것이 목표인 책

 

 

- 1장 : 설계가 아쉬운 작은 프로그램을 리팩터링해서 더 나은 객체 지향 프로그램으로 만드는 과정

- 2장 : 리팩터링의 일반 원칙, 정의, 당위성 설명 및 리팩터링할 때 생기는 문제점

- 3장 : 켄트 벡이 도움을 준 내용으로 코드에서 나는 악취를 찾아내는 방법 및 리펙터링을 통해 문제의 부분을 말끔히 제거하는 방법 설명

- 4장 : 리팩터링에는 테스트가 아주 중요하여 테스트를 작성하는 방법 수록

- 5 ~ 마지막  : 리팩터링 목록 - 대부분의 개발자가 익혀야  필수 리팩터링

 

 

예시는 자바스크림트로 이루어져있다. 하지만 이 책은 사용하는 언어에 상관없이, 모든 프로그래머를 위해 쓰였다고 한다. 예시코드는 자바스크립트로 구성되어있지민 대부분의 언어에 적용 가능하다. 책이 알차게 구성되어있어 꽤 두께가 있는 편이라서 전부를 읽지않고도 내용 대부분을 습득할 수 있도록 독자의 상황에 따라 추천하는 부분을 넣어놓은 점이 필요한 부분만 딱 골라서 읽을 수 있어 좋았다.

 

 

- 리팩터링이 뭔지 모른다면 1장을 읽자

    - 1장의 예시를 보면 리팩터링 진행 절차를 명확히 알 수 있다.

- 리팩터링을해야 하는 이유를 모르겠다면 1장과 2장을 읽자.

    - 리팩터링이 무엇이고 왜 필요한지 설명해준다.

- 리팩터링해야 할 곳을 찾고 싶을 때는 3장을 읽자.

    - 리팩터링이 필요할 만한 곳에서 보내는 신호(악취)를 잡아내는 요령을 설명해준다.

- 리팩터링을 십슬하고 싶다면 1장부터 4장까지는 꼼꼼히 읽고, 나머지를 빠르게 훑어보자.

    카탈로그 부분은 어떤 기법이 있는지 정도만 대략 보면 되고 세세한 부분까지 전부 이해할 필요는 없다리팩터링을 당장 실시해야   해당 기법 부분을 펼쳐 자세히 읽고 따르면 된다. 

 

 

우선 정의부터 !

 

리팩터링(하다) : [ 동사 ] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다.

 

 

리팩터링의 중요성

- 아무리 간단한 수정이라도 리팩터링 후에는 항상 테스트하는 습관을 들이는 것이 바람직.

    - 한가지를 수정할 떄마다 테스트하면 오류가 생기더라도 변경폭이 작아 문제를 찾고 해결하기 쉽다. 조금씩 변경하고 매번 테스트 하는것이 리팩터링의 핵심

    - 리팩터링은 프로그램 수정을 작은 단계로 나눠 진행한다. 그래서 중간에 실수하더라도 버그를 쉽게 찾을 수 있다.

- 저자의 꿀팁으로는 함수의 반환값에는 항상 result 이름을 쓴다는 것.

    - 변수의 역할을 쉽게 알 수 있기 때문

- 자바스크립트와 같은 동적 타입 언어를 사용할 때는 타입이 드러나게 작성하면 도움이 된다.

    - 저자는 매개변수 이름에 접두어로 타입이름을 적는데, 매개변수의 역할이 뚜렷하지 않을 때는 부정관사(a/an)을 붙인다고한다.

    - 이름짓기는 중요하면서도 쉽지않은 작업 -> 긴 함수를 작게 쪼개는 리팩터링은 이름을 잘 지어야만 효과가 있다.

 

 

 

 리팩터링하는 이유

- 리팩토링하면 소프트웨어 설계가 좋아진다.

- 리팩터링하면 소프트웨어를 이해하기 쉬워진다.

- 리팩터링하면 버그를 쉽게 찾을 수 있다.

- 리팩터링하면 프로그래밍 속도를 높일 수 있다.

 

 

 

 언제 리팩터링해야 할까? 

돈 로버츠가 저자에게 제시한 가이드로는,

- 1) 처음에는 그냥 한다.

- 2) 비슷한 일을 두 번째로 하게 되면(중복이 생겼다는 사실에 당황스럽겠지만), 일단 계속 진행한다.

- 3) 비슷한 일을 세 번째 하게 되면 리팩터링한다.

야구를 좋아하는 사람은 '스트라이크  번이면 리펙터링하라(삼진 리팩터링)' 기억하자.

 

 

 리팩터링하지 말아야 할 때

리팩터링을 하면 안되는 상황도 존재한다.

- 지저분한 코드를 발견해도 굳이 수정할 필요가 없다면 리팩터링 하지 않는다.

- 리팩터링하는 것보다 처음부터 새로 작성하는게 쉬울 때도 리팩터링 하지 않는다.

    - 리팩터링할지, 새로 작성할지를 잘 결정하려면 뛰어난 판단력과 경험이 뒷받침돼야 함.

 

 

드림코딩 엘리님의 코딩 잘하는법 (개발자답게 코딩하려면?) 영상을 예전에 흥미롭게 봤었는데  추천 도서를 한빛미디어로부터 받게되어 뜻깊었다사실 코딩을   아직까지는 리팩터링의 필요성을 느끼지 못했는데계속해서  좋은 코드를 작성하는 것은 개발자의 숙명인  같다는 생각이 들었다 책을 읽으면서 느꼈던 것은 리팩터링 하면 되니까 일단 짜고 생각하자가 아니라 애초에 작성할 때부터 고려해야할 사항을 조금씩 적용하는 것도 중요할  같다나중엔 리팩토링을  필요가 없는 코드를 작성할  있도록 ! 파이팅



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo