Util 클래스/패키지

알린의 개발노트·2022년 2월 21일
1
post-custom-banner

Util 클래스/패키지?

보통 Util 클래스는 문자열 관련, 랜덤값 생성, 날짜 및 시간 처리 등 프로젝트 전역에서 사용되는 특정 로직이나 독립적인 기능을 구현해둔 클래스/패키지라고 한다.

내가 생각해본 Util 클래스의 특징은 세 가지가 있다.

  1. 프로젝트 전역에서 사용될 수도 있는 기능
  2. 특정 로직이나 독립적인 기능
  3. 가능하면 어떤 상태를 가지지 않는 기능

예를들면 java.util.Random을 사용하여 랜덤값을 만드는 경우 RandomUtil을 만들 수도 있을 것 같다. RandomUtil 에는 pickNumberInRange(int minimum, int maximum), pickNumberInList(List<Integer> numbers) 등 랜덤값을 구하는 등 java.util.Random를 이용한 메서드들이 있을 수 있다. 이런 기능들은 어떤 상태를 가지고있지 않기 때문에 static으로 선언되어 사용될 것 같다.

또 다른 예시로 StringUtil같은 것도 가능할 것 같다. 입력받은 자동차의 이름을 split기능으로 자르고 싶을 때 StringUtilsplit 메서드를 만들어 사용할 수 있을 것 같다. 물론 split같은 기능들은 너무 간단하기 때문에 util로 만들지 않아도 충분히 쓸 수 있다. 그러니까 그 기준을 잘 정해보자!

Util 클래스/패키지 사용 시 주의할것

  1. Util은 수정을 최소화하자! 잦은 수정이 필요한 경우라면 내가 잘못 설계했거나 Util성 클래스가 아닐 수도 있다!

    Util 패키지는 보통은 Model, View, Controller와 같은 특정 계층에 있지 않고 어디서든 사용할 수 있다. 그러다보니 여러 사용자, 패키지, 계층에서 사용하는 코드가 될 수 있기 때문에 변경이 발생할 경우 파급력이 클 수 있다.

  2. 이 기능이 정말 Utility 성격인지 고민해보자!

    특정 클래스에서만 사용되는 기능이거나 비즈니스 로직이라고 불릴정도로 중요한 로직이라면 도메인 등 위치하기 더 적절한 곳이 있을 수도 있다. Util 클래스를 만드는 나만의 기준을 정하는것도 좋을 것 같다.

참고자료

미션 리뷰

util 클래스의 역할

profile
안녕하세요!
post-custom-banner

0개의 댓글