Recent Comments
Link
Fall in IT.
Golang Singleton Pattern 간단하게 알아보기 본문
안녕하세요.
오늘은 Golang에서 Singleton Pattern을 구현하는 방법에 대해서 간단하게 알아보겠습니다.
Singleton Pattern이란?
- 이 패턴은 인스턴스가 하나만 존재해야 하는 경우 사용된다.
(예를들어서, DB 인스턴스나 Logger와 같은 인스턴스가 이에 해당할 수 있다.)
구현 방법 1.
Mutex를 사용하는 방법
var lock = &sync.Mutex{}
type single struct {
}
var singleInstance *single
func GetInstance() *single {
if singleInstance == nil {
lock.Lock()
defer lock.Unlock()
if singleInstance == nil {
fmt.Println("[Mutex] create single instance")
singleInstance = &single{}
} else {
fmt.Println("[Mutex] single instance already created-1")
}
} else {
fmt.Println("[Mutex] single instance already created-2")
}
return singleInstance
}
구현방법 2.
sync.Once를 사용하는 방법
package once
import (
"fmt"
"sync"
)
var once sync.Once
type single struct {
}
var singleInstance *single
func GetInstance() *single {
if singleInstance == nil {
once.Do(func() {
fmt.Println("[Once] create single instance")
singleInstance = &single{}
})
} else {
fmt.Println("[Once] single instance already created-1")
}
return singleInstance
}
모두 즐거운 코딩하세요~
'프로그래밍언어 > Golang' 카테고리의 다른 글
Golang Singleton Pattern 간단하게 알아보기 (0) | 2022.06.15 |
---|---|
Go 1.8버전부터 추가 된 generic 사용해보기 (0) | 2022.05.02 |
Golang Slice 중복 제거하는 방법 (0) | 2022.03.06 |
Go 함수에서 포인터형 매개변수 사용하기 (0) | 2021.06.27 |
Golang JSON 인코딩 / 디코딩 방법 (0) | 2020.09.28 |
Golang 문자열 변환 방법(문자열, 숫자, 등 data 파싱방법) (0) | 2020.09.03 |
0 Comments