티스토리 뷰

SPRING

Util클래스의 장단점

hamryt 2021. 3. 10. 19:01

#1 유틸 클래스란

Utility 클래스는 매개 변수에 대해 작업을 수행하는 정적 메서드만 있는 클래스입니다. 그리고 이 클래스는 Static 이고 Stateless로 사용하여 멀티스레드 환경에서 Thread-safe합니다. 그리고 보통 final로 선언되어 상속될 수 없고 생성자는 private으로 선언되어 초기화 가능성을 막아버리며 다른 클래스에 의해 생성될 수 없습니다. 

 

유틸 클래스를 사용할 때 발생하는 문제점

1. 강한 결합

첫번째로 유틸클래스를 사용할 때 가장 우려하는 부분입니다. 유틸클래스를 사용하는 클래스는 유틸클래스에 강한 의존성을 갖게 됩니다. 추상화를 진행하지 않았기에 유틸클래스의 변화에 해당 객체는 많은 영향을 받게 된다. 따라서 다양한 프로그래밍 환경에서 해당 클래스는 유틸 클래스에 대한 변경이 생길때마다 직접 해당 클래스에서 수정을 가해야 하는 상황을 맞이하게 됩니다. 몇개의 클래스에는 별 문제가 안될 수 있겠지만 많은 클래스가 100개 정도만 되도 매우 힘든 상황을 맞이하게 됩니다. 유연한 객체지향에 따른 프로그래밍을 하지 못하게 되는 것입니다. 

 

2. 단일책임

유틸 클래스를 사용하는 클래스는 원래의 책임 말고도 유틸 클래스의 종속성을 얻는 역할도 담당합니다. 이렇게 단일 책임 원칙을 무시하게 되면 점점 코드는 다른 책임을 더 얻게 되고 호출 클래스는 본래의 단일 책임을 잃게 될 것입니다.

 

유틸 클래스를 사용하는 이유

모듈화

유틸클래스는 상태를 갖지 않고 다른 객체에 의존하지 않으므로 하나의 모듈로서 작동하고 연계된 피해를 끼칠 것이 없습니다. 그리고 다른 객체에서 공통적으로 참조하는 값을 유틸클래스에 넣음으로서 오히려 객체지향을 지키기가 쉬워집니다.  

'SPRING' 카테고리의 다른 글

선언적 트랜잭션 (Declarative Transaction)  (0) 2021.03.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함