본문 바로가기
반응형

Singleton5

ThreadLocal (동시성문제) 사용법 및 주의사항 이전 포스팅에서 Thread 사용법에 대해서 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 하지만 대량 트래픽이 존재하는 서비스에서 매번 발생하는 문제. 바로 동시성 이슈 이다. 자바 Spring에서는 기본으로 Bean을 singleton으로 띄우게 된다. singleton 에 대한 자세한 내용은 아래 참고 포스팅 참고 바란다. 테스트를 할 경우에는 하나의 요청이 들어오니 상관이 없지만 동시에 여러 요청이 들어올 경우에 하나의 bean에 여러 값을 동시에 입력을 하면 출력은 다른 값이 나오는 이슈가 생길수 있다. 아래 그림을 보면 하나의 클라이언트가 하나의 bean에 입력을 하면 정상적으로 입력한 값이 bean에 저장되고 그 값을 가져올수 있다. 하지만 아래 그림과 상황이 같다면 프로세스.. 2023. 10. 12.
Spring DL 이란?(Dependency Lookup) 이전 포스팅에서 스프링의 특징들에 대해 다룬적이 있다. AOP, DI 등 내용이었고 자세한 것은 아래 참고 포스팅 참고 바란다. 이번 포스팅에서는 비슷하지만 좀 다른 DL(Dependency Lookup) 에 대해서 다뤄보려고 한다. 약자만 봐도 대충 이해는 되겠지만 의미는 다음과 같다. 의존관계가 있는 객체를 외부에서 주입 받는 것이 아닌, 의존관계가 필요한 객체에서 직접 검색하는 방식 헷갈릴 수 있는 부분이 클라이언트 객체(의존관계가 필요한 객체)에서는 의존하고자 하는 인터페이스 타입만 지정해서 검색할 뿐 해당 인터페이스를 구현한 구체적인 클래스 객체에 대한 결정과 해당 객체에 대한 생명 주기는 IoC 컨테이너에서 책임진다. 결국 의존관계를 외부에서 주입이 아니라 직접 의존관계를 찾는것으로 DI 랑 .. 2023. 7. 30.
Spring 에서 Singleton singleton 패턴에 대해서는 아래 참고 포스팅을 참고 바란다. spring 에서의 기능중 하나는 의존성 주입인 DI 가 있다. 자세한 내용은 아래 참고 포스팅 참고바란다. 스프링에서는 컨테이너 위에 Bean이라고 하는 객체들을 생성한다. 그럼 개발자가 아닌 스프링에서 Bean을 대신해서 관리를 해준다. 여기서 Bean은 스프링위에 생성이 되는데, 호출이 될때마다 생성이 되는것이 아닌. Bean은 하나만 생성해두고, 호출이 될때마다 그 객체를 가져다 쓴다. 여러번 호출이 된다고 해서 객체가 여러개 생기는게 아니고 , 이것이 싱글톤이다. 간단히 코드로 예제를 살펴보면. @RestController @RequiredArgsConstructor public class TestController { priv.. 2023. 7. 28.
객체지향 디자인 패턴 심화 정리 part.1 포스팅을 읽기 전에 아래 참고 포스팅에서 간단한 디자인패턴에 대한 정의와 종류에 대해서 읽고 오면 도움이 될것이다. 그리고 이번 포스팅에서는 좀더 심화된 내용을 다뤄볼 것이다. 저번 포스팅에서 있던 내용은 중복으로 설명이 되는 부분도 있으나 좀더 자세하게 심화된 내용으로 설명을 할것이다. part.1에서는 singleton strategy state command 패턴 들에 대해서 설명을 해본다. singleton 패턴 소프트웨어를 만들때 클래스의 객체가 하나만 만들어 져야할 상황이 있다. 예를들어 페이지에서 셋팅에 다크모드로 설정을 해두면 어느 페이지로 이동을 하든 다크모드는 유지가 되어야한다. 이럴 경우 반드시 하나의 셋팅 객체만 만들어 져야한다. 일반적으로 페이지에서 클래스 호출할 경우를 보면 여러.. 2022. 3. 11.
디자인패턴 정의와 종류 소프트웨어 개발을 할때 사용되는 디자인 패턴이란 과거에 소프트웨어 개발 과정에서 발견된 설계 노하우를 축적하여 그 방법에 이름이 붙여서 이후에 재사용 하기 좋은 형태로 특정 규약을 만들어서 정리해둔것을 말한다. 즉 효율적으로 알고리즘을 만들고 코드를 만들기 위한 방법론이라고 생각하면 될듯하다. 특정 한두개의 패턴을 외우기 보다는 다양하게 이해를 하고 적시적소에 맞게 자신의 코드에 녹여내면 될듯 하다. 종류는 대분류로는 생성패턴, 구조패턴, 행위 패턴으로 나뉘고 몇가지만 살펴보면, 생성패턴에서는 가장 유명한 디자인패턴인 싱글톤 패턴이 있다. 클래스의 인스턴스가 하나임을 보장하고 접근할수 있는 전역적인 접근점을 제공한다. 그리고 또다른 유명한 패턴은 추상팩토리 패턴이다. 구체적인 클래스를 지정하지 않고 관련.. 2022. 1. 14.
반응형