Study/디자인 & 설계 (3) 썸네일형 리스트형 strategy pattern https://jusungpark.tistory.com/7 디자인패턴 - 스트래티지 패턴 (strategy pattern) 스트래티지 패턴(strategy pattern) 알고리즘군을 정의하고 각각캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할수.. jusungpark.tistory.com 모든 서브클래스가 사용하는 것이 아닌 기능을 추상클래스에 선언하고, 추상 메소드를 상속받아 구현할 경우 -> 해당 기능을 사용하지 않는 서브클래스에서도 상속받는 메소드들을 오버라이드 해서 구현해야 한다. 해당 기능에 대한 인터페이스를 구현하고, 이를 클래스에서 재정의하여 사용하는 경우 -> 서브클래스에서 같은 기능을 하는 메소드에 대.. TDD Test 중요성 단위테스트, 통합테스트, 회귀테스트, 시스템 테스트, **테스트 코드는 소스코드처럼 형상관리가 중요하다. TDD, Extream Programming. 테스트 코드가 없다면, 소스 코드에는 버그가 있다. 깨끗한 테스트 코드 - fast 빨라야한다. - indenpendent 다른 테스트 케이스와 독립적이어야 한다 - repeatable 반복가능해야한다. (test data, test code, 수행환경) - self-validating 테스트 결과를 제공해야한다. - timely 테스트는 구현 직전에 작성해야한다. http://junit.sourceforge.net/javadoc/ JUnit API junit.sourceforge.net 성능 향상 환경적 문제 - ㅇㄴ프라 - 디스트 IO.. 코드 품질 최적화 전략 및 기법 구현 선행 작업 factory method 패턴 -> 의존성을 최소한으로 줄이기 위해. 객체의 생성과 사용을 분리하자 (Spring framework의 DI, IoC) Controller와 Business Layer의 분리 -> 인터페이스와 상속을 이용. AOP -> 공통 모듈과 업무 로직 처리 코드를 분리하자. 구현 상세 설계 작업 추상화 (Abstract, Interface class) -> 외부 요청에 대한 스펙만을 정의. -> 이는 다른 클래스(implements class)에서 실제 구현을 담당 -> 내부적으로 변경 작업이 있더라도, 클라이언트나 이 모듈을 사용하는 다른 곳에서의 수정을 최소화할 수 있다. -> 다른 모듈과의 완충 작용 캡슐화/정보은닉 -> 속성과 행위를 하나로 묶어 캡슐화, -.. 이전 1 다음