Resolved
Written on
·
234
·
Edited
0
싱글톤을 활용해서 개인정보 등을 저장한다고 하면 MemberService 객체 하나가 여러 사람들에게 사용되잖아요? 근데 어떻게 각각의 사람들의 객체를 생성해주며 그런 개인정보를 db에 저장할 수가 있는걸까요? DB에 저장할 때는 결국 객체 자체를 저장하지 않습니까? 근데 싱글톤은 객체가 1개라는 점이 너무 상반되어서 이해가 안되는 것 같습니다
Answer 1
1
네 보통 스프링 빈(싱글톤)으로 만드는 것들은 개인화된 데이터를 담고 있는 객체보단 재사용할 수 있는 비즈니스 로직을 실행할 수 있는 객체라고 생각합니다. 그러한 객체들을 로직을 실행할 때마다 인스턴스를 생성하는 비용을 줄이기 위해 싱글톤 방식으로 미리 하나 만들어놓는 것이라고 저는 이해하고 있습니다!
물론 스프링 컨테이너에 싱글톤 빈으로 등록하면 단순히 위에서 말한 기능보다는 더 많은 기능을 담고 있습니다! (AOP, DI 등)
저 혹시 싱글톤으로 만든 객체도 ~~~@75f4ab 뭐 이런식으로 객체가 생성되는데 "비즈니스 로직을 실행하는 객체"랑, 저희가 일반적으로 아는 객체는 다른 건가요? 메모리상에 저장방법이나 차이점이 있을까요 ...??
@ 뒤는 해당 객체 인스턴스의 고유한 해시코드를 16진수로 바꿔 표시한 것입니다! 이는 객체 인스턴스를 가리키는 것으로 참조형 객체들은 모두 갖고 있습니다. 모든 자바 객체는 힙영역에 저장됩니다!
그러면 객체를 1개 생성한다! 라기보다는 어떤 공통의 로직을 틀로 만들어놓는 과정이 싱글톤 패턴일까요 ?? 즉, 이 클래스로 객체를 만드는 flow를 1개로 통일하는걸까요 ?