본문 바로가기

rtp

(7)
RTP Session 1. Replace Constructors with Creation Methods Replace Constructors with Creation Methods 하지만, 컴퓨터 생성자를 사용하면 둘중 하나만 구입하는 경우는 만들수가 없습니다. 왜냐면 사운드 카드를 추가하는 경우와 그래픽 카드를 추가하는 경우에 생성자 오버로딩의 원칙(타입과 갯수가 다른 경우)에 위배되기 때문입니다. 따라서 컴파일 에러가 발생합니다. 그럼 이런 경우에는 어떻게 해야될까요?? 참으로 난감한 일이 아닐 수 없습니다!! 책에 이런 내용이 있습니다. 이게 키워드가 될 수 있을까요? 어 떤 클래스의 인스턴스를 생성할 때 그것이 제공하는 여러 생성자 중 어떤 것을 호출해야 할지 결정하기가 어렵다면, 인스턴스를 생성해 리턴하는 생성 메서드(Creation Method)로 각 생성자를 대체하여 그 용도가 명확히 드러나도..
RTP Session 1. Chain Constructors RTP 4, 5장에서는 어떤 방식으로 세션을 나누어 놓았고, 어떤 방식으로 패턴을 활용한 리팩토링에 접근하는지 전반적인 책을 보는 방법에 대해서 정리를 해 놓았고, 그래서 4장, 5장에 대한 정리는 하지 않았습니다. 먼저 세션은 총 21개로 되어있습니다. 그중에 첫 세션은 Replace Constructors with Creation Methods (생성 메소드로 생성자를 대체하기), Chain Constructors (연쇄 생성자) 입니다. 공부를 하던 도중에 순서가 연쇄 생성자 부터 하는 것이 좋겠다고 생각이 되어서 먼저 연쇄 생성자를 다루도록 하겠습니다. Chain Constructors public class Computer { private int cost; private String mainB..
RTP : 3장. 패턴 3장에서는 주로 패턴이 무엇을 의미하는지, 또 패턴 중독의 경우와 한 패턴이 여러 형태로 존재할 수 있는지를 설명한다. 패턴이란? 일단 패턴이라는것은 건축에서 부터 비롯된 말이다. 패턴은 세상에 발생하는 사물인 동시에, 그것을 어떻게 창조할 수 있는지, 그리고 언제 창조해야 하는지를 알려주는 규칙이다. 패턴은 과정인 동시에 대상이다. 살아있는 대상에 대한 기술이기도하고, 만들어내는 과정에 대한 묘사이기도 하다. 패턴 중독 http://developers.slashdot.org/comments.pl?sid=33602&cid=3636102 에 가면 패턴 중독을 풍자해 놓은 글이 있다. 패턴의 진정한 성과는 패턴을 현명하게 사용할때 난다. 리팩터링을 통해 점진적으로 패턴을 도입하면, 패턴으로 인한 과도한 설계..
RTP : 2장. 리팩터링 2장에서는 리팩터링에 대한 개념과 리팩터링을 위해 필요한 것들에 대해서 알려주고 있다. 리팩터링이란? 리팩터링을 마틴 파울러가 정의하기를 '겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 것' 이라고 되어있다. 모든 리팩터링은 작은것에 부터 시작하고, 작은 것들이 모여서 대규모의 리팩터링이 된다. 리팩터링을 띄엄띄엄 하기보다는 지속적으로 할때 최상의 효과를 얻을수 있다. 리팩터링을 하는 이유 새로운 코드를 더 쉽게 추가할 수 있도록 하기 위해 기존 코드의 설계를 개선하기 위해 기존 코드를 더 잘 이해하기 위해 덜 짜증나는 코드로 만들기 위해 궁극적으로는 사람이 읽기 쉬운 코드를 만들기 위해 많은 눈 최상의 리팩터링 결과를 얻으려면 많은 눈(사람)의 도움을 받는..
RTP : 1장. 이 책을 쓴 이유 1장은 전반적인 책에서 지양하고 지향하고자 하는 바에 대해서 서술이 되어있다. 과도한 설계 코드를 필요 이상으로 융통성 있게 또는 정교하게 만드는 것을 의미한다. 과도한 설계를 하게된다면, 필요 이상으로 크고 복잡한 코드를 기반으로 작업을 해야한다. 이를 해소하기 위해 시스템을 영역별로 설계 하지만, 자신이 맡은 영역에 대해서만 작업하기때문에 중복된 코드를 양산 할 수 있다. 과도하게 설계된 코드는 생산성에도 영향을 미친다. 유지보수를 하고 설계의 의미를 파악하는데 많은 시간이 필요하다. 이러한 설계는 프로그래머나 아키텍트가 인지 하지 못하는 상황에 발생하는 경우가 많고 패턴을 이용한 사전 설계에 빠지곤 한다. 패턴 만능주의 패턴은 객체지향 설계를 위한 융통성있고 정교한 방법이지만, 패턴을 지나치게 활용..
RTP : 어떻게 정리를 하게 될 것인가? 아래와 같은 목차로 책이 구성이 되어있다. 1~5장까지는 전체적인 책에 대한 기본 지식들을 전달하고 있으며, 실제 리팩토링 패턴에 대해서는 6장부터 나오게 된다. 한장씩 또는 연관성 있는 다른 장과 같이 읽고 소감 및 정리를 해보고자 한다. 1장. 이 책을 쓴 이유 과도한 설계 패턴 만능주의 미진한 설계 테스트 주도 개발과 지속적인 리팩터링 리팩터링과 패턴 발전적 설계 2장. 리팩터링 리팩터링이란? 리팩터링을 하는 이유 많은 눈 사람이 읽기 쉬운 코드 깔끔하게 유지하기 작은 단계 설계 부채 새로운 아키텍처 발전시키기 복합 리팩터링과 테스트 주도 리팩터링 복합 리팩터링의 장점 리팩터링 도구 3장 패턴 패턴이란? 패턴 중독 패턴을 구현하는 다양한 방법 패턴 목표, 패턴 지향, 패턴 제거 리팩터링 패턴은 코드..
RTP : Refactoring To Patterns (패턴을 활용한 리팩터링) Agile Java Network (이하, AJN) 에서 처음으로 시작하는 브랜드 Refactoring To Patterns(이하, RTP) 에 대해서 공부하기 시작한다. 먼저 책을 준비하는데에는 그렇게 큰 어려움이 있지 않았다. 하지만 책을 이해하는데 필요한 기본 지식들이 많이 요구 되었다. 일단 부족한 자바 실력이 그 첫번째가 되겠고 두번째는 패턴에 관한 지식이 '제로' 라는 점.. 평소에 Agile Java 라는 책을 공부하면서 그때그때 나오는 디자인 패턴에 대해서는 주먹구구식으로 학습을 해갔지만 몇몇 패턴 이외에는 문외한이다. 리팩토링에 관해서는 그다지 할말이 없다. 다만 리팩토링을 한다는 것 자체가 대단하다는 것만은 알고 있다. 코드를 작성한다는것은 어찌 보면 쉽지만 그걸 유도리 있게 도친다는 ..