• Java Refactoring Replace typecode with Class

    분류 코드는(type code)는 객체의 종류를 나타내는 값을 말한다. 예를 들어서 페이스북의 타임라인을 보면 사용자들의 게시물, 공유 게시물, 광고등의 여러가지 뷰들이 나오는데 이를 구별하여 렌더하기 위해서는 각 데이터들별로 매칭되는 view type code 값이 필요할 것이다. 본인 게시물 = 0 공유 게시물 = 1 광고 - 2 와 같이 분류할 수 있을...


  • Java Refactoring Extract class

    클래스는 속성을 가지고 행위를 처리하고 책임지는 주체입니다. 이상적인 클래스는 한가지 책임을 지는 클래스 이고 이를 행하기 위해 여러 패턴들이 만들어졌습니다. 하지만 코드가 늘어나고 기능이 추가됨에 따라 어떤 클래스들은 이러한 단일책임원칙을 지키기 어려워질 수 있습니다. 이런 경우 해당 행위를 다른 클래스에게 위임하는 방법이 있습니다. 리팩토링 카탈로그(클래스 추출) 이름 클래스 추출(Extract Class)...


  • Java Refactoring Extract method

    필드 혹은 멤버변수 가 어떤 객체가(dog,cat,person,…,etc) 가지는 속성(age,sex,height,width,sound,…,etc)이라면 메서드(method)는 객체들의 행동을(run,play,stop,increase,…,etc) 매핑하는 것이다. 우리가 일반적으로 생각하는 행동들을 코드로 매핑하기위해서 작성하다 보면 행동들을 준비하기 위해서라거나 혹은 행동의 결과를 정제 한다던가 하는 행동들이 필요해질 수 있다. 이러한 작업들은 주로 반복되기 마련인데 코드상의 반복되는 코드들을 다시 행동으로 나타내게 되면 중복 코드를 줄일 수...


  • Java Refactoring Null Object

    1일 1포스팅의 5번째이다. 오늘은 본격적으로 예제와 내용을 보기전에 정리된 카탈로그 표를 먼저 본다. 리팩토링 카탈로그(널 객체 도입) 이름 널 객체 도입(Introduce Null Object) 상황 객체를 다룸 문제 null 확인이 너무 많음 해법 null을 나타내는 특별한 객체를 도입해 ‘아무것도 안 함’ 이라는 처리를 함 결과 null 확인이 줄어듬 방법 널 객체...


  • Java Refactoring Assertion

    1일 1포스팅의 4번째이다. Assertion은 우리의 프로그램에 필요한 조건들에 대한 검증을 뜻합니다. 예를 들어서 우리의 java프로그램이 ex1처럼 arguments로 값을 받아야하는데 꼭 하나 이상은 받아야 하는 프로그램이 있다. ex1 package example_4_assertion; import java.util.ArrayList; public class Application{ public static void main(String args[]) { ArrayList<String> dummyList = new ArrayList<>(); for(String item:args) { dummyList.add(item); }...