개발하다가 Util클래스를 만들 일이 생겼는데, 이전 회사에서 있던 프로젝트에서는 Util 메서드를 static으로 만들어 썼는데 우리 회사에서는 일반 클래스를 쓰고 있다는 것을 발견했다. 일반적으로 Util 메서드는 static으로 많이 만든다고 생각했던 나는, 이에 관한 간단한 리서치를 진행하였다.
내가 만드려고 했던 FileUtil 클래스의 메서드들을 만들 때 필드에 따로 저장하는 값이 없고 단순한 형태 변환, 서비스와 독립적인 기능 등등 정말 util기능만 해서 static메서드로 만들어서 쓰려고 했는데 (마치 Integer.parseInt()
처럼!) 현회사의 프로젝트 util들 까보니까 다 일반 메서드(non-static)를 사용하고 있었다.
구글링해봤는데 일반적으로 Util클래스, 메서드 만들 때는 static을 많이 쓰기도 하는데 Spring 개발 시에는 이런 점들을 고려해 non-static으로 구성하기도 한다.
Util클래스 내부 메서드도 non-static 으로 만들어서, 싱글톤 객체로 만들어서 메모리 낭비는 방지하고 테스트 코드도 짜기 좋게 하기도 한다!
그래서 새로 추가한 FileUtils 내부 메서드들도 그냥 non-static으로 짜기로 했다!!