-
6월 14일 수요일 TIL 회고록카테고리 없음 2023. 6. 14. 22:34
싱글톤 방식의 주의점
- 싱글톤 패턴이든, 스프링 같은 싱글톤 컨테이너를 생성하든, 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지(stateful)하게 설계하면 안된다.
- 무상태(stateless)로 설계해야 한다.
- 특정 클라이언트에 의존적인 필드가 있으면 안된다.
- 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다.
- 가급적 읽기만 가능해야 한다.
- 필드 대신에 자바에서 공유되지 않는 지역변수, 파라미터, ThreadLocal 등을 사용해야 한다.
- 스프링 빈의 필드에 공유 값을 설정하면 정말 큰 장애가 발생할 수 있다.
Redis를 사용하기 위해 개인 프로젝트에 bulid.gradle에 Redis 의존성을 추가해주었다.
// Redis implementation 'org.springframework.boot:spring-boot-starter-data-redis'
그 후 Docker를 사용해서 Redis를 실행했다.
포트는 6379로 지정했다. 터미널로 Redis 서버가 잘 실행되었는지 확인해보았다.
docker exec -it (레디스 이름) redis-cli
127.0.0.1:6379로 Redis 서버에 잘 들어가진다.
application.properties에도 Redis 프로퍼티를 추가해주었다.
spring.redis.host=localhost # 레디스 서버 호스트 지정 (defaut: localhost) spring.redis.port=6379 # 레디스 서버 포트 (defaut: 6379)
Redis 세팅은.. 내일 구글링을 하면서 알아봐야겠다.
내가 해보고 싶은것은 Redis 설정과 리프레시 토큰 구현하기인데.. 열심히 구글링을 하며 만들어봐야겠다.