반응형

 

 

이 책을 신청한 이유

전산실에서 근무하던 시절 다른 사람이 만든 코드를 유지보수 업무를 하면서 프로그램을 다시 만들고 싶었던 마음이 굴뚝 같았던 적이 있었는데 프로그램을 다시 만들지 않고도 설계를 변경할 수 있다니~ 너무 궁금해서 신청을 하게 되었네요.^^

 

리팩터링이란?

- 리팩터링이란 외부동작을 바꾸지 않으면서 내부구조를 개선하는 방법

- 코드가 작성된 후에 설계를 개선하는 작업

- 모든 것을 미리 생각해서 설계하는 방법이 아닌 개발을 지속적으로 진행하면서 좋은 디자인을 찾는 작업

 

이 책의 구성

1. 리팩터링 예시

2. 리팩터링 원칙

3. 코드의 문제점

4. 테스트 구축

5. 카탈로그 보는법

6. 기본적인 리팩터링

7. 캡슐화

8. 기능이동

9. 데이터 조직화

10.조건부 로직 간소화

11. API 리팩터링

12. 상속 다루기

 

 

내용 살펴보기

1. 리팩터링의 첫단계

- 리팩터링의 첫단계는 리팩터링할 코드 영역을 꼼꼼하게 검사해줄 테스트 코드를 마련해야 한다.

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

(사람은 실수를 할 수 밖에 없다. 작은 단계를 충분히 테스트 후에 적용 된 후 그 다음 단계를 수행하는 것이 실수를 줄이는 길이다.)

- 함수 쪼개기 : 예제를 통해 중첩되는 부분을 없애고 함수로 분리하는 방법에 대해 확인한다.

- 변수 인라인 하기, 조건부 로직을 다형성으로 바꾸기 등을 통해 향후 업무로직이 바뀌는 경우에 대한 대비를 수행

" 좋은 코드를 가늠하는 확실한 방법은 얼마나 수정하기 쉬운가 이다."

(학생들과 고민할때 항상 이 부분에 대해서 중요성을 부각하지만 이건 실무 경험이 없이는 몸으로 깨닫기 쉽지 않은 말)

 

2. 리팩터링의 원칙

- 두개의 모자 : 리팩터링/기능추가 - 기능추가 시에는 기존코드를 건드리지 않는다.

- 리팩터링 이유 : 소프트웨어 설계 개선, 소프트웨어 가독성 개선, 버그를 쉽게 찾을 수 있다, 속도 개선

- 리팩터링 해야 하는 시점 : 3의 법칙으로 비슷한 일을 세번째 하게 되면 리팩터링 할 시점이다.

"보기 싫은 코드를 발견하면 리팩터링하자, 그런데 잘 작성된 코드 역시 수많은 리팩터링을 거쳐야 한다."

- 리팩터링 하지 말아야 할때 : 내부 동작을 이해하지 못한 경우, 마감일에 가까운 경우(시간이 촉박한 경우 리팩터링때문에 버그가 생길 수 있다.)

 

3. 코드의 문제 확인

- 알 수 없는 이름 : 소스코드는 추리소설이 아니다.

- 중복코드 : 같은 코드가 여기저기 산재해 있다면 업무프로세스 변경시 같은 부분을 모두 찾아 변경해야 된다. 이때 빼먹는 부분이 반드시 존재하면 버그가 된다.

- 많은 매개변수 : 객체를 활용한 매개변수로 처리

- 전역 변수 사용: 전역변수는 업무 프로세스를 이해하지 못하는 상태에서 다른 부분에서 값을 변경하는 경우 시스템에 치명적인 영향을 줄 수 있다.

 

[생략]

이 책의 내용을 한페이지 안에 담기에는 역부족이네요.

리팩터링에 대해 관심이 있는 분은 이 책을 구매해서 보시길 권해 드립니다.

이 책은 리팩터링에 대한 모든 것을 담고 있습니다.

-  함수와 변수 변경하는 방법, 레코드 컬렉션 등 캡슐화 하는 방법, 기능등을 관리하는 방법, 상속 등

 

 

이 책이 필요한 분

- 실무에서 개발을 진행하고 있는 전문 프로그래머

- 리팩터링을 배우려는 개발자

- 숙련된 개발자가 동료들에게 멘토링 해 주고 싶은 분

 

이 책을 읽고

실무에서 프로그램을 유지보수 하다 보면 급하게 만들어진 티를 내는 프로그램들이 있습니다. 정책이 변경될때마다 한군데에서만 수정 하는 것이 아니라 소스코드에서 모두 찾아가면서 그 부분을 수정해야 되는 경우들을 종종 볼 수 있는데요~

이렇게 되는 경우 잦은 실수를 하게 되는데요.

정책이 변경될때마다 수정해서 릴리즈 했는데 테스트 기간에는 나오지 않던 것들이 실무에서 오류가 발생하는데 문제가 있습니다. 치명적인 오류가 아니라면 다행인데 치명적인 오류인 경우에는 걷잡을 수 없이 수습 불가인 경우가 많습니다.

이런경우 시간적인 여유가 있고 업무파악이 되었다면 이렇게 바뀌는 정책들에 대해서 한군데서 수정을 할 수 있도록 업무 프로세스를 모아 놓는 것도 일종의 리팩터링이 될 것 같네요.

이 책은 예제를 통해서 이런 경우는 이런식으로 리팩터링 하는 방법에 대한 예시를 잘 보여 주고 있습니다.

리팩터링에 대해 공부하고 싶은 분이나 실무에서 개발을 하고 계신 분들이라면 이 책이 많은 도움이 될것 같네요.

 

 

이 책은 한빛미디어 "나는 리뷰어다" 에서 지원 받은 책입니다.

 

오늘도 최선을 다하는 모든 분들을 응원합니다.

 

인천 서구 검단신도시 원당컴퓨터학원

 

반응형
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 사이버몰의 이용약관 바로가기
Posted by 파아란기쁨 트랙백 0 : 댓글 8

댓글을 달아 주세요

  1. addr | edit/del | reply 휴식같은 친구 2021.03.09 10:08 신고

    리팩터링은 처음 들어보네요.ㅎ
    즐거운 하루 보내세요~

  2. addr | edit/del | reply 드래곤포토 2021.03.09 11:14 신고

    저도 전산실 출신이지만 새로운 용어적응이 쉽지않네요
    즐거운 하루보내세요 ^^

  3. addr | edit/del | reply 청결원 2021.03.09 14:59

    포스팅 잘 보고 갑니다
    오늘도 즐거운 하루 보내세요~

  4. addr | edit/del | reply 空空(공공) 2021.03.10 05:55 신고

    개발자들은 한번 볼만한 책이로군요^^

  5. addr | edit/del | reply 핑구야날자 2021.03.10 06:51

    실무 개발자들에게 좋은 정보가 될 수 있는 책이군요 관심있는 분들은 도전하면 좋겠네요

  6. addr | edit/del | reply 유하v 2021.03.10 13:38 신고

    관련 업무하시는 분들께 추천할만한 책이네요!ㅎ

  7. addr | edit/del | reply 라드온 2021.03.10 19:52 신고

    슬쩍 보이는 본문내용이, 딱딱한 이론 이야기만 있는게 아닌가보군요.ㅎ

  8. addr | edit/del | reply 가족바라기 2021.03.10 23:45 신고

    우리 아들보면 좋겠는데요