본문 바로가기

Refactoring

(3)
RTP : 2장. 리팩터링 2장에서는 리팩터링에 대한 개념과 리팩터링을 위해 필요한 것들에 대해서 알려주고 있다. 리팩터링이란? 리팩터링을 마틴 파울러가 정의하기를 '겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 것' 이라고 되어있다. 모든 리팩터링은 작은것에 부터 시작하고, 작은 것들이 모여서 대규모의 리팩터링이 된다. 리팩터링을 띄엄띄엄 하기보다는 지속적으로 할때 최상의 효과를 얻을수 있다. 리팩터링을 하는 이유 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해 기존 코드의 설계를 개선하기 위해 기존 코드를 더 잘 이해하기 위해 덜 짜증나는 코드로 만들기 위해 궁극적으로는 사람이 읽기 쉬운 코드를 만들기 위해 많은 눈 최상의 리팩터링 결과를 얻으려면 많은 눈(사람)의 도움을 받는..
RTP : 1장. 이 책을 쓴 이유 1장은 전반적인 책에서 지양하고 지향하고자 하는 바에 대해서 서술이 되어있다. 과도한 설계 코드를 필요 이상으로 융통성 있게 또는 정교하게 만드는 것을 의미한다. 과도한 설계를 하게된다면, 필요 이상으로 크고 복잡한 코드를 기반으로 작업을 해야한다. 이를 해소하기 위해 시스템을 영역별로 설계 하지만, 자신이 맡은 영역에 대해서만 작업하기때문에 중복된 코드를 양산 할 수 있다. 과도하게 설계된 코드는 생산성에도 영향을 미친다. 유지보수를 하고 설계의 의미를 파악하는데 많은 시간이 필요하다. 이러한 설계는 프로그래머나 아키텍트가 인지 하지 못하는 상황에 발생하는 경우가 많고 패턴을 이용한 사전 설계에 빠지곤 한다. 패턴 만능주의 패턴은 객체지향 설계를 위한 융통성있고 정교한 방법이지만, 패턴을 지나치게 활용..
RTP : Refactoring To Patterns (패턴을 활용한 리팩터링) Agile Java Network (이하, AJN) 에서 처음으로 시작하는 브랜드 Refactoring To Patterns(이하, RTP) 에 대해서 공부하기 시작한다. 먼저 책을 준비하는데에는 그렇게 큰 어려움이 있지 않았다. 하지만 책을 이해하는데 필요한 기본 지식들이 많이 요구 되었다. 일단 부족한 자바 실력이 그 첫번째가 되겠고 두번째는 패턴에 관한 지식이 '제로' 라는 점.. 평소에 Agile Java 라는 책을 공부하면서 그때그때 나오는 디자인 패턴에 대해서는 주먹구구식으로 학습을 해갔지만 몇몇 패턴 이외에는 문외한이다. 리팩토링에 관해서는 그다지 할말이 없다. 다만 리팩토링을 한다는 것 자체가 대단하다는 것만은 알고 있다. 코드를 작성한다는것은 어찌 보면 쉽지만 그걸 유도리 있게 도친다는 ..