일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- spring boot error
- Spring REST API
- 메이븐
- 오라클
- 스프링 에러
- Oracle
- 전자정부프레임워크
- 디자인 패턴
- Intellij
- spring 설정 파일
- spring 에러
- pom.xml
- spring boot post api
- 인텔리제이
- exceptiontransfer
- 자바스크립트 클래스
- javascript
- 자바스크립트
- REST API
- Spring
- 스프링
- 자바스크립트 class
- spring boot rest api
- egov
- Spring boot
- 전자정부 샘플
- javascript 클래스
- spring boot CRUD
- javascript class
- 스프링부트 post api
- Today
- Total
빵구의 개발 메꾸기
싱글톤 패턴(Singleton Pattern) 활용 본문
디자인 패턴이란 자주 사용하는 설계 패턴을 정형화해서 가장 최적의 방법으로 개발 할 수 있도록 정해둔 설계이며
알고리즘과 비슷하지만 정답이 있는 것은 아니며 프로젝트의 상황에 맞추어 적용한다.
크게 생성패턴, 구조패턴, 행위패턴으로 나뉘고 지금은 생성패턴 중 하나인 싱글톤 패턴(Singleton Pattern)에 대해
설명하고자 한다.
생성패턴은 객체를 생성하는 것과 관련된 패턴으로써 객체의 생성과 변경이 전체 시스템에 미치는 영향을
최소화하고 코드의 유연성을 높여준다.
싱글톤 패턴(Singleton Pattern)은 어떠한 객체가 유일하게 1개만 존재할 때 사용한다.
주로 사용하는 곳은 서로 자원을 공유할 때 사용하며 TCP Socket 통신에서 서버와 연결 된 connect 객체에
사용한다.
<싱글톤 패턴(Singleton Pattern)에 대한 클래스 생성>
① getInstance 메서드를 통해 객체 return 시 메서드가 static이기 때문에 property도 static으로 하고 null로 초기화한다.
② 기본적으로 기본 생성자의 접근 제어자를 private으로 막는다. (기본 생성자로 객체를 생성할 수 없게 하기 위해)
③ static인 getInstance 메서드를 통해 객체를 return 받을 수 있도록 한다.
현재 가지고 있는 객체가 null이면 새로 생성해주고 null이 아니면 그대로 객체를 return 한다.
<싱글톤 패턴(Singleton Pattern) 객체 가져오기>
① 보통은 객체 생성 시 다음과 같이 생성한다.(기본 생성자의 접근 제어자가 public이라서 가능)
② 싱글톤 패턴(Singleton Pattern)은 getInstance 메서드를 통해 객체를 가져온다.
③ FirstClass와 SecondClass에 대한 객체 생성 시 기본 생성자를 통해 SingletonPattern 객체가 생성이 되었을 것이고
이에 따라 getSingletonPattern 메서드를 호출 시 SingletonPattern 객체를 가져올 수 있다.
<싱글톤 패턴(Singleton Pattern)을 사용하는 이유>
① FirstClass와 SecondClass의 객체를 생성한다.
② 각각 getSingletonPattern 메서드를 통해 SingletonPattern 객체를 가져온다.
③ 두 객체가 동일한지 비교한다.
④ 두 객체가 동일하다는 말은 SingletonPattern 객체가 한번만 생성이 되고 무분별하게 동일한 대상에 대한 객체가
생성되지 않도록 하는 싱글톤 패턴(Singleton Pattern)의 특징을 보여주고 있다.
'BACK-END > DESIGN PATTERN' 카테고리의 다른 글
어댑터 패턴(Adapter Pattern) 활용 (0) | 2022.06.15 |
---|