본문 바로가기

리팩토링

(6)
[레거시 코드 활용 전략] CH7 코드 하나 바꾸는 데 왜 이리 오래 걸리지? 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ 2020/02/10 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 2020/02/15 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 2 ch 7 - 코드 ..
[레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 2 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ 2020/02/10 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 ch 6 - 고칠 것은 많고 시간은 없고 - 2 포장 메소드 기존 메소드에 동작을 추가하는 것은 아주 간단하다. 하지만 이것이 항상 옳은 ..
[레거시 코드 활용 전략] CH6 고칠 것은 많고 시간은 없고 - 1 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 2020/02/07 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH4 봉합 모델 CH5 는 단순한 테스트 도구와 관련된 이야기라 다루지 않습니다~ ch 6 - 고칠 것은 많고 시간은 없고 - 1 현실적으로 레거시에서는 잘 하지 않았던 행위들을 공부하고 있을 수 있다. 또한 테스트 코드를 작성 및 코드 변경에 많은 시간이 필요한 작업이다. 그렇기 때문에 정말로 '가치'가 있는지 궁금할 때가 있다. 실제로..
[레거시 코드 활용 전략] CH4 봉합 모델 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 2020/02/06 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH3 감지와 분리 ch 4 - 봉합 모델 봉합 단위 테스트를 위해 개별 클래스를 추출하려고 하면 수많은 의존 관계를 제거할 필요가 있다. '좋은' 설계를 기반하고 있다 하더라도 많은 작업이 수반된다. 많은 작업 중 하나인 '봉합'이라는 개념을 알아보자. 우선 봉합은 코드를 직접 편집하지 않고도 프로그램의 동작을 변경할 수 있는 위치를 말한다. 아래 예제를 보자 public class MailSender { public void sen..
[레거시 코드 활용 전략] CH3 감지와 분리 2020/02/03 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH1 소프트웨어 변경 2020/02/04 - [IT/책읽는 개발자] - [레거시 코드 활용 전략] CH2 피드백 활용 ch 3 - 감지와 분리 이상적인 환경이라면 변경 작업을 하기 전 특별히 할 일이 없다. 테스트를 하고 싶은 대상을 테스트 코드 내에서 객체를 생성해 작업을 하면 끝이다. 하지만 불행하게도 클래스들의 의존 관계들 때문에 이것은 거의 불가능하다. 의존관계를 제거해야 하는 이유는 무엇일까? 크게 두 가지로 볼 수 있다. 감지 : 코드 내에서 계산된 값에 접근하여 변경이나 값을 확인할 수 없을 때 분리 : 코드를 테스트 코드 내에서 실행할 수 없을 때 코드 분리를 위해 예제 코드 public class Network..
[레거시 코드 활용 전략] CH1 소프트웨어 변경 레거시 코드 활용 전략 (재출간판) 국내도서 저자 : 마이클 C. 페더스(Michael C. Feathers) / 심윤보,이정문역 출판 : 에이콘출판사 2018.09.28 상세보기 ch 1 - 소프트웨어 변경 소프트웨어를 변경하는 이유 새로운 기능 추가 버그 수정 설계 개선 자원 이용의 최적화 1.기능 추가와 버그 수정 지금 하는 것이 버그 수정? or 기능 추가? 고객 관점 : 내가 원하는 건 A 기능이 아니라 B기능 이야 → 버그 수정 개발자 관점 : B라는 새로운 기능 기술 및 개발 관점에서 버그 수정 / 기능 추가 보다 더 중요한 것은 ? → 동작 변경 새로운 동작을 추가하는 것과 기존 동작을 변경하는 것에는 큰 차이가 있음 기존 코드 변경 → 동작 변경 새로운 코드 추가 → 동작 추가 그러나 대..