본문 바로가기

Programming/Refactoring3

[Refactoring] 반복문에서 계산 연산을 주의하자(Pattern) 반복문에서 사용하는 연산 유형에 주의해야 한다. 😱 계산을 많이 하는 연산을 반복문 내에서 수행하게 되면 프로그램 속도가 느려지면서 성능에 영향을 미친다. 특히 문자열 검색에 정규식을 사용할 때 Pattern.matches() 메서드 활용을 주의해야 한다. 해당 메서드는 정규식을 활용해서 반복되는 복잡한 문자열 패턴을 조회하는데 큰 도움이 되는 유용한 메서드지만, 연산 과정이 복잡하고 상당한 시간이 걸린다. 자세한 내용은 하단 Reference의 java.util.regex.Pattern compile() 메서드를 참고해 보길 바란다. @Test void goodRefactoring() { long startTime = System.currentTimeMillis(); for (int i = 0; i <.. 2023. 3. 12.
[Refactoring] 자바 API를 적극 활용하자 Java는 String, List 등 개발하는 데 유용한 다양한 API를 많이 제공하고 있다. 😤 해당 API들은 전문가들이 최적화와 검증을 통해 빠르면서 버그가 없게 제작해 놨다. 우리는 이걸 직접 구현할 필요 없이 단순하게 사용만 하면 된다! 😄 public void setShibaColor(Color color) { if(color == null) { throw new NullPointerException("Color 값이 존재하지 않습니다."); } this.color = color; } color 필드에 파라미터를 저장할 수 있도록 setter를 개발했다. 해당 메서드는 color 파라미터가 null 값이 들어온다면 NPE를 내보내게 설정되어 있다. public void setShibaColor.. 2023. 3. 12.
[Refactoring] 간단한 리팩토링 모음 코딩할 때 가볍게 다루기 좋은 리팩토링에 대해 소개하려고 한다. 😀 코드의 이해를 높이는 데 도움이 되며 사실상 어떠한 비용도 들지 않으니 신경 써주는 게 좋다. 👍 사소하지만 코딩하는 과정에 도움이 되었으면 한다. 필자도 프로젝트하면서 한 번씩 참고하려고 포스팅한다. "부정을 피하자" 코드에서는 긍정적인 표현식이 부정적인 표현식보다 훨씬 이해하기가 쉽다. 즉, Objects.nonNull(), !StringUtils.hasText() 등 보다 Objects.isNull(), StringUtils.hasText()가 좋다. @Test void goodRefactoring() { Shiba shiba = null; if(Objects.isNull(shiba)) { System.out.println("Nul.. 2023. 3. 5.