[Spring] 유틸리티 (utils) 활용하기

아현·2024년 8월 1일
1

Spring

목록 보기
5/7

유틸리티 클래스란?


Spring Boot는 Java 애플리케이션을 빠르고 쉽게 개발할 수 있도록 지원하는 프로젝트로, 여러 가지 유틸리티 클래스와 함수를 제공합니다.

"Utils"는 흔히 반복적으로 사용되는 코드 조각을 정리하고 재사용하기 위한 유틸리티 클래스들을 의미합니다.

  • Spring Boot 자체 내장된 유틸리티가 많지만, 대개 개발자가 특정한 목적을 위해 직접 작성한 유틸리티 클래스도 많이 사용됩니다.



주요 유틸리티


몇 가지 주요한 유틸리티와 그 용도를 설명해드리면 다음과 같습니다:

  1. String Utils (org.springframework.util.StringUtils):
    • 문자열 처리를 위한 다양한 유틸리티 메소드를 제공합니다.
    • 예: null 또는 빈 문자열 확인, 특정 문자열로 시작하거나 끝나는지 검사, camelCase 또는 snake_case 변환 등.
  1. Collection Utils (org.springframework.util.CollectionUtils):
    • 컬렉션이 null인지, 비어있는지 확인하거나 특정 조건에 따른 필터링 등을 수행합니다.
  1. Date Utils (java.time):
    • Spring Boot는 자바 8의 java.time 패키지를 권장합니다.
    • 날짜와 시간을 조작하기 위한 다양한 기능을 제공합니다.
  1. FileCopy Utils (org.springframework.util.FileCopyUtils):
    • 파일을 복사하거나 파일 내용을 바이트 배열 또는 문자열로 읽는 등의 파일 처리 기능을 제공합니다.
  1. MimeType Utils (org.springframework.util.MimeTypeUtils):
    • MIME 타입 처리를 위한 유틸리티 클래스.
  1. Serialization Utils (org.springframework.util.SerializationUtils):
    • 객체를 직렬화하거나 역직렬화하기 위한 기능을 제공합니다.



Custom Utils 클래스


프로젝트의 특성에 맞게 자주 사용하는 기능을 하나의 유틸리티 클래스에 모아둘 수도 있습니다.

  • 예를 들어, 문자열 처리를 위한 커스텀 유틸리티 클래스는 이렇게 생길 수 있습니다:

public class MyStringUtils {

    public static boolean isNullOrEmpty(String str) {
        return str == null || str.trim().isEmpty();
    }

    public static String reverse(String str) {
        return new StringBuilder(str).reverse().toString();
    }
}

Spring Boot에서 이러한 유틸리티를 적절히 사용하면 코드의 재사용성을 높이고, 중복되는 코드를 줄이며, 읽기 쉽고 유지보수하기 좋은 코드를 작성할 수 있습니다.



Example



@Slf4j
public class TimeUtils {

    public static String dateConvertToProductInfoFormat(String dateString) {
        String result = null;

        int year = Integer.parseInt(dateString.substring(0, 4));
        int month = 1;
        int date = 1;
        int hour = 7;
        int min = 0;
        int sec = 0;

        try {
            month = Integer.parseInt(dateString.substring(4, 6));
            date = Integer.parseInt(dateString.substring(6, 8));
            hour = Integer.parseInt(dateString.substring(8, 10));
            min = Integer.parseInt(dateString.substring(10, 12));
            sec = Integer.parseInt(dateString.substring(12, 14));
        } catch (StringIndexOutOfBoundsException ignored) {
        }

        Calendar c = Calendar.getInstance();
        c.set(year, month - 1, date, hour, min, sec);

        SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyyMMddHHmmss");
        result = dateFormatter.format(c.getTime());

        return result;
    }

  • 호출 방식

import com.poscodx.energykeeper.util.TimeUtils;

...

String convertedTo = TimeUtils.dateConvertToEnergyInfoFormat(TimeUtils.addDate(to, 1));

...



profile
For the sake of someone who studies computer science

0개의 댓글