
private static int[] convertStringIntoArray(String text) {
Matcher m = Pattern.compile(CUSTOM_SEPARATOR_REGEX).matcher(text);
}
Pattern.compile 이 실행될때 라이버러리 내부적으로 new Pattern(regex, 0);
라는 부분을 호출하도록 되어있다. 해당 객체가 싱글톤인지 아닌지 라이브러리 내부적으로 들여다 보는 습관을 가져야 함을 느겼고 위와같은 코드는
private static final Pattern CUSTOM_SEPARATOR_PATTERN = Pattern.compile(CUSTOM_SEPARATOR_REGEX);
이와같이 상수로 선언해서 사용하도록 수정되었다.
stream(m.group(2)
.split(m.group(1)))
위와같이 2 와 1이 무엇을 뜻하는지 파악하기 쉽지 않을 수 있다. 흔히 이와같은 코드를 매직넘버 라고 하는데 매직넘버란 코드래벨에서 하드코딩 되어있는 숫자를 말하며 이는 히스토리를 모르는 경우 파악하기 매우 어렵다
stream(m.group(BODY_INDEX).split(DELIMITER_INDEX)))
해당코드는 위와같이 수정되어 매직넘버를 삭제하고 primitive 타입을 한번 wrapping 해주었다.
if(...) return ...
위와 같이 한줄에 코드를 작성하지 말고
if(...) {
return ...
}
아무리 짧은 if 문이라 할지라도 브라켓을 넣어주자.