싱글톤 패턴

Choco·2023년 1월 17일
0
post-thumbnail

IF

객체를 Client에서 요청이 들어올때 마다 생성한다고 하자. 요청이 많아질수록 서버는 무수히 많은 객체를 생성할 것이고 이는 서버 메모리 낭비가 심해져 과부하의 원인이 될 수 있다. 이 문제를 해결하기 위해 나온것이 싱글톤 패턴 이다.

싱글톤 패턴이란?

싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.

다양한 자바코드로 싱글톤 패턴을 작성할 수 있는데 많은 객체에 같은 싱글톤 패턴을 위한 코드를 작성하는것은 비효율적.
스프링 빈으로 등록하면 스프링 컨테이너는 이를 자동으로 해결해준다!

주의

싱글톤 패턴이 적용된 객체는 한개의 인스턴스를 계속 재사용하는 것이기 때문에 Client 한테 의존적으로 값이 변화하면 안된다. 즉 값을 마음대로 변경하지 못하게 기본적으로 Readonly 작성해야하고 Client와 의존성이 없는 stateless를 유지해야한다.

예를 들어보자

User A = user.setUsername("A")
User B = user.setUsername("B")

user가 싱글톤 패턴으로 생성된 인스턴스라 했을때 이런식으로 코드를 작성하면 A와 B는 같은 인스턴스를 공유하기 때문에 A의 username이 "B"로 된다.

profile
주니어 백엔드 개발자 입니다:)

0개의 댓글