1. 의존성이란: 시스템 설계에서 아주 중요한 개념 중 하나로 의존(dependency)이라는 것이 있습니다. 다양한 정의가 있지만 이 글에서는 간단하게 A는 B가 있어야만 올바르게 작동할 수 있을 때 A가 B에 의존한다(A depends on B) 라고 정의하도록 하겠습니다. 의.....
Refactoring - Martin Fowler 지음, 윤성준.조재박 옮김/대청(대청미디어) 얼마 전에 조그마 한 프로그램을 하나 만든 적이 있다. 프로그램을 목적에 맞게 적당히, 대충 만들고 잊고 지냈는데, 언제나 그렇듯 새로운 개발 요건이 들어와 프로그램을 수정해야 .....
리팩토링을 안전하게 수행하는 요령 1. 리팩토링과 다른 작업을 분리한다. 프로그램에 기능을 추가하는 등의 작업을 할 때 리팩토링을 되도록 하지 않는다. 2. 리팩토링 전후에 반드시 테스트를 한다. java용 테스팅 프레임워크 junit를 사용하는것이 적절할 수 있.....
그러면 오늘은 jMock을 이용해 남의 코드를 테스팅하는 과정을 한번 살펴보겠습니다. 정답이라고 할 수는 없고, 저 개인적인 경험에 따른 것이니, 참고 정도 하시면 좋을 것 같습니다.남의 코드를 테스팅할 때 중점적으로 고려한 사항은 다음과 같습니다. 1. 남의 .....
A. 위의 각 선언에서, 하나의 새로운 객체로 묶을 만함 매개변수 군이 있는가? public void paintComponent(Graphics g,? Component c, Container p, int x, int y, int w, int h, boolean shouldValidate) -> int x, int y, int w, int h -> x, y, w, h 좌표의.....
1. 징후 ?? ?메서드에 매개변수가 한두 개 보다 많다. 2. 원인 ?? ?객체 간의 결합도(Coupling)를 최소화 하려고 했을 가능성이 있다? ?그래서 호출된 객체가 클래스 간의 관계를 알게 하는 대신에, 호출자가 모든 것을 ?? ?찾게 했을 것이다. 이렇게 되면 메서드를.....
JTable.java A. 이 클래스에는 메서드가 왜 이리 많을까? 많은 수의 인터페이스를 구현하였고, 많은 멤버변수를 가지고 있다. ☞ 이 클래스는 많은 일을 한다. 일부는 상속받은 것이지만, 이 클래스는 많은 책임을 지고 있다. B. 열겨된 메서드들을 살펴보고, 이.....
1. 징후 많은 줄 (저자는 5~10줄을 넘어가면 우선 의심한단다) 2. 원인 프로그래머는 메서드를 작성하기 시작한 후, 적절한 시점에 흐름을 끊거나 헬퍼 클래스를 도입하기 보다는, 하나씩 더 추가하게 된다. 코딩을 하다 보면 작성하던 코드를 다시 한번 읽는 것.....
Matcher.java 더보기public class Matcher { public Matcher{} public boolean match(int[] expected, int[] actual, int clipLimit, int delta // Clip "too-large" values for (int i = 0; i if (actual[i] > clipLimit) actual[i] = clipLimit;.....