정규식을 이용하는 코드를 짰는데 고정적으로 사용하는 정규식에 대하여 Pattern
을 상수화 시키는게 좋다는 피드백을 받았다.
before
private static final String REG_EXP = "//(.)\n(.*)";
public String[] splitExpression(String expression) {
Matcher matcher = Pattern.compile(REG_EXP).matcher(expression);
String delimiter = TOKEN_DELIMITER;
if (matcher.find()) {
delimiter = matcher.group(DELIMITER_GROUP_NUMBER);
expression = matcher.group(EXPRESSION_GROUP_NUMBER);
}
return expression.split(delimiter);
}
성능을 개선하기 위해서는 정규식 표현을 어플리케이션 시작 전에 Complie 시켜놓고 재사용하는게 좋다고 한다.
after
private final Pattern parretn = Pattern.compile("//(.)\n(.*)");
public String[] splitExpression(String expression) {
Matcher matcher = parretn.matcher(expression);
String delimiter = TOKEN_DELIMITER;
if (matcher.find()) {
delimiter = matcher.group(DELIMITER_GROUP_NUMBER);
expression = matcher.group(EXPRESSION_GROUP_NUMBER);
}
return expression.split(delimiter);
}
으로 변경해 주었다.
그리고 추가적으로 static
과 final
을 그냥 짝꿍처럼 계속 같이 사용하고 있었는데 이에 대한 부분도 추가적으로 생각 할 수 있었다. 이건 다음 글에 옮겨 적어야지