๋ฏธ๋“ค
2026๋…„ 8์›” 19์ผ

๋ฒ„๊ทธ๋ฅผ ์ฐพ์•„๋ผ: Go

์ฝ”๋“œ ํ•œ ์กฐ๊ฐ. ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ๋ฒ„๊ทธ๊ฐ€ ์—†์Œ์„ ์ฆ๋ช…ํ•˜์„ธ์š”.

go
1package users
2
3import "sync"
4
5type User struct {
6	ID   string
7	Name string
8}
9
10var (
11	mu    sync.Mutex
12	cache = map[string]*User{}
13)
14
15func GetUser(id string, fetch func() *User) *User {
16	mu.Lock()
17	defer mu.Unlock()
18	if u, ok := cache[id]; ok {
19		return u
20	}
21	u := fetch()
22	cache[id] = u
23	return u
24}

๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ค„์„ ํด๋ฆญํ•˜์„ธ์š”.

๋‹น์‹ ์˜ ํŒ๋‹จ

ํ•˜๋ฃจ ํ•œ ๋ฒˆ. ์ œ์ถœํ•˜๋ฉด ๋ฐ”๋กœ ์ •๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—ฐ์† ๊ธฐ๋ก ์œ ์ง€ํ•˜๊ธฐ

๊ณ„์ •์„ ๋งŒ๋“ค๋ฉด ์—ฐ์† ๊ธฐ๋ก์„ ์œ ์ง€ํ•˜๊ณ  ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์ • ๋งŒ๋“ค๊ธฐ
Go ๋ฐ์ผ๋ฆฌ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ฑŒ๋ฆฐ์ง€ | SharpSkill