맨날 같은 형식으로만,맨날 반복되는 코드 ,같은 기능이지만 다른 성능....좀더 효율적으로, 좀더 좋은 코드에 대한 욕심이 많다.자바라는 언어를 쓰지만 자바의 특성을 살리면서 코드를 작성하지 못한것 같아 저번시간에는 자바에 대해 다시한번 공부했다. \-> 객체지향이제는
매개변수가 많을수록 많은 역활을 한다. 많은 역활을 한다는 뜻은 많은 기능, 서로 연관관계가 있는 많은 코드들이 한곳 에 있다는 소리다.불필요한 매개 변수가 없나 체크해보자자바 객체지향에서는 서로 코드들이 독립적일수록 좋다.어떤 매개변수를 다른 매개변수를 통해서 알아낼
전역데이터 전역 데이터는 아무곳에서나 변경될 수 있다는 문제가 있다. 어떤 코드로 인해 값이 바뀐 것인지 파악하기 어렵다. 클래스 변수도 비슷한 문제를 겪을 수 있다. => 변수 캡슐화하기 적용! 변수 캡슐화 이것을 적용해서 접근을 제어하거나 어디서 사용하는지
소프트웨어는 변경에 유연하게 대처할 수 있어야 된다.응집력은 높고 결합도는 낮게어떠 한 모듈이(함수 또는 클래스가) 여러가지 이유로 다양하게 변경되어야 하는 상황.단계 쪼개기 => 서로 다른 문맥 코드 분리함수 옮기기 => 적절한 모듈로 옮기기함수 추출하기 => 여러
기본형 집착 애플리케이션이 다루고 있는 도메인에 필요하 기본타입을 만들지 않고 프로그램 언어가 제공하는 기본타입을 사용하는 경우가 많다. 기본형으로 단위 또는 표기법을 표현하는데에 한계가 있다. 관련 리팩토링 기술 > - 기본형을 객체로 바꾸기 > - 타입 코드
메시지 체인 레퍼런스를 따라 계속해서 메소드 호출이 이어지는 코드 예) this.member.getCredit().getLeverl().... 체인중 일부가 변겨된다면 클라이언트 코드도 변경 해야한다.(전체수정) 해당 코드의 클라이언트가 코드 체인을 모두 이해해야