빈으로 등록 vs 스태틱 메서드 사용.. 어느 것이 나은 방법일까? 🤔

kdkdhoho·2023년 4월 23일
0

Spring

목록 보기
25/26
post-thumbnail

저는 이 두 방법에 대해, 상황에 따라 다른 결정을 내리는 것이 중요하다고 생각합니다.
그렇기에 다양한 상황을 제시하며, 해당 상황에 따른 제 결정을 이야기하겠습니다.

우선, 상태를 가지지 않고 다양한 객체에서 유용하게 사용할 수 있는 MessageConverterUtil 객체가 있습니다.

이 객체는 String 타입의 message가 들어오면, 이를 json 타입으로 변경해주는 역할을 가지고 있다고 하겠습니다.

이러한 상황에선 스태틱 메서드 사용 !

개인적으로 이렇게 구현체가 하나만 있을 때에는, 굳이 빈으로 등록하지 않고 스태틱 메서드를 사용하는 것이 더 이득이라고 생각합니다.

MessageConvereterUtil을 필요로 하는 객체들은 모두 이 객체를 필드로 가지면서 의존성을 띄지 않아도 괜찮습니다.
그렇기에 오히려 빈으로 등록하면 컨테이너가 불필요하게 무거워질 것입니다.
그리고 제 얕은 지식으로는, 빈으로 등록하여 얻을 수 있는 이점이 없다고 생각됩니다.

다른 상황

그럼 이제는 아래 그림을 보겠습니다.

이제는 MessageConverterUtil 이라는 인터페이스를 상속하고 있는 다양한 구현체들이 존재합니다. 이때에도 모든 메서드들을 static으로 여는 것이 이득일까요?

이때는 Bean으로 등록 !

IoC Container를 사용했을 때 얻을 수 있는 큰 이점 중 하나는, 의존성을 개발자가 관리하지 않아도 된다는 점입니다.

MessageConverterUtil 구현체를 런타임에 유연하게 결정하고 싶다면, 이들을 Bean으로 등록하여, 보다 편하고 효율적으로 의존성을 관리할 수 있을 것입니다.

profile
newBlog == https://kdkdhoho.github.io

0개의 댓글