스프링 도전기 - 44

김치전사·2022년 3월 29일
0

스프링 도전기

목록 보기
44/50
post-thumbnail

오늘은 싱글톤 방식의 주의점에 대해 공부한다

싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 stateful(유지)하게 설계하면 안된다

  • 특정 클라이언트에 의존적인 필드가 있으면 안된다
  • 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다
  • 가급적 읽기만 가능해야 한다

singleton 패키지에 StatefulService 클래스 생성하기

singleton 패키지에 StatefulServiceTest 클래스 생성하기

테스트 실행하기

  • 원하는 price 결과값은 10000원인데 20000원이 출력되었다
  • 다른 값을 넣어도 같은 객체 인스턴스를 공유하기 때문에 값이 달라졌다

StatefulService 수정하기

  • int형으로 return 해서 변경하지 못하게 만든다

StatefulServiceTest 수정하기

  • userAPrice, userBPrice로 지역변수로 받아서 사용한다

테스트 실행하기

  • price가 기대값인 10000원이 나왔다
profile
개인공부 블로그입니다. 상업적 용도 X

0개의 댓글