데이터 구조에 집중한 리팩터링 9.1 변수 쪼개기 변수 1개당 역할은 하나이다 역할이 둘 이상인 변수가 있다면 쪼개야 한다. (여러 용도로 쓰인 변수는 코드를 읽는 이에게 커다란 혼란을 줌) 같은 역할에 여러 번의 할당은 필요할 때도 있다 -> 루프변수, 수집변수 9.2 필드 이름 바꾸기 점진적으로 안전하게 바꾸기 9.3 파생 변수를 질의 함수로 바꾸기 9.4 참조를 값으로 바꾸기 객체 내부를 수정하던 것을, 값 객체 통채 하나로 바꾸기 ( 불변 데이터이므로 외부에 건네주는 경우 등 나중에 그 값이 바뀌어 내부에 영향 끼치지 않음 ) 새로운 속성을 담은 객체로 기존 내부 객체를 통채로 대체 값 객체 - 불변 : setter없이 constructor 만으로 9.5 값을 참조로 바꾸기 데이터를 갱신해야 할 ..