-
Notifications
You must be signed in to change notification settings - Fork 10
/
0278.txt
294 lines (294 loc) · 13.4 KB
/
0278.txt
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
예 안녕하세요 포프입니다
오늘은
그 뭐였지?
디자인 패턴에 대해서 좀 얘기를..
디자인 패턴에 대한 게 아니라
디자인 패턴 중에
싱글턴에 대해서 얘기를 해 보려고 해요
제가 얼마 전에 포프TV 슬랙챗 방에서 얘기를 하다가
싱글턴 패턴 얘기가 나왔어요
근데
저랑 요즘 이제 농담처럼 말해서
서로 앙숙 관계인 분이 한 분 계세요
그분이 얘기하는데
싱글턴 패턴을 얘기하는데
제가 아는 싱글턴 패턴하고 전혀 다른 거에요
그래서 난 이해가 안 돼 갖고
싱글턴 패턴을 뭐라고 설명을 했냐면 저한테
싱글턴 패턴이..
인스턴스가 있잖아요
그러니까 이제 보통 클래스가 있고 거기 인스턴스가 있고
그럼 제가
아 여기서 시작이 됐다
다시 얘기를 돌려서
제가 예전에 한 번 코드 리뷰를 하다가
코드 리뷰인지 코딩 라이브 방송을 하다가
C#에서 싱글턴 패턴을 쓰는 사람을 보고 내가
C#에는 싱글턴 패턴이 존재할 이유가 없다라고 말하고
클래스 전체를 static으로 바꾼 적이 있어요
C#에서는 static class(정적 클래스)가 있거든요?
static class란 게 뭐냐면
뭐 글로별 변수처럼?
그냥
프로그램 실행 중에 프로세스 하나에
그 인스턴스가 하나밖에 안 되는
그런 강제하는 클래스에요
그래서..
무슨 뭐 new 이런 거 안 먹히고 뭐 그런 개념이거든요?
그래서 그거는 솔직히 싱글턴이랑 똑같은 개념이라서
저도 그렇게 얘기했는데
그 사람이 얘기하기를
싱글턴은 인스턴스가 한 개에서 n개까지,
그러니까 여러 개까지 있을 수 있는 그런 클래스다
라고 얘기를 하는 거에요
제가 솔직히..
여기서 욕을 해도 되나?
이게 무슨 개소리야?
이랬거든요?
싱글턴은 단어에서 나오는 것처럼 싱글이기 때문에
싱글이 하나거든요? 그래서 싱글턴이다
옛날에 있던 글로벌 변수를 대체하기 위해서 만든 게
싱글턴일 뿐이다
그렇기 때문에 C#에서는
static class면 만족한다라고 얘기했어요
그래서 이 사람이 자기가 봤다는 글을 퍼다 준 거에요
그래서 어떤 블로그 글인데 그 블로그 글에
1부터 n개까지라고 돼 있어요
그리고 그 예가 돼 있는 게
무슨 야구 게임 같은 거 예로 들면은
야구에 플레이어들이 몇 명 있잖아요?
한 팀에 엑티브로 뛰는 플레이어가 보통 9명이죠
그러면 한 팀에, 9명에 벤치에 10명이 있다고 그러면
19명의 플레이어가 있고
그러면 플레이어를 만약에 중간에 교체를 한다거나
이런 경우에는
OOP개념에선 되게 좀
19명을 18명하고 매칭하긴 귀찮으니까
그거를 관리할려고 매니저 클래스라는 걸 만들어요
그래서 플레이어 매니저가 있고
그 플레이어 매니저한테 야 나 이 플레이어 1번 줘
.GetPlayer(1) 하면은 그 플레이어를 주고
그니까 플레이어 매니저 안에는
그 플레이어 오브젝트들이 많지만
그거를 array로 집어넣든가 하는 게 있는 거죠
그래서 그런 플레이어 매니저 같은 거를
싱글턴이라고 설명을 해 놓은 거에요
그래서 저는 생각을 해 보니까
뭐 싱글턴이나 플레이어 매니저나
보통 게임에서는 하나만 있는 건 맞거든요
근데 플레이어 매니저가 팀마다 하나씩 둘려면
그게 두 개가 될 수도 있는 거에요
그래서 그런 개념으로 이 사람은 생각을 한 거더라고요
오히려 매니저라는 패턴이 있는지는 모르겠는데
저는 디자인 패턴을 따로 공부한 사람이 아니에요
저는 실무에서 배우고 나중에 책 보다가
아 이게 이 패턴이구나 하고 넘어갔던 사람이기 때문에
이런 매니저란 패턴이 있는지는 모르겠어요
근데 뭔가 비슷한 게 있을 거에요 분명히
아니면 이게 뭐 정말 생성만을 담당하면 거면
팩토리 패턴이 또 되는 거고
근데 좀 다르죠
매니저 패턴이 있을 것 같은데
그런 매니저 패턴을 싱글턴이라 써 놓은 거에요
그러니까 뭔가 이해를 잘못했는데 뭐 네이버 블로그
이런 데 자기가 공부한다고 써 놓은 거야
그걸 사람들이 또 보고 나서
이게 싱글턴 패턴이라고 생각을 한 거에요
저는 이게 솔직히
이런 걸 되게..
짜증이 나는 이유는 뭐냐면
이거를 어떤 사람들은 저한테 아 책에서도 이렇게 나온 것
같다라고 또 얘기를 하고 있는 거에요
그래서 제가 그 책을 찾아 달라 그랬어요 어떤 책인지
그 책이 만약에 있으면 제가 출판사에 항의까지 걸려고
그랬어요 솔직한 얘기로
그랬는데
그 책을 찾지는 못했어요
혹시 그런 책 있으면 알려 주시고
그거는
그리고 그런 책이 있다면
보지 마세요
그 저자가 누구인지는 모르겠지만
그런 사람이 책을 쓸 수 없다고 저는 생각을 해요
그리고 그런 사람이 책을 쓴다면 그건 그냥
돈 벌기 위해서 그냥 장난치고 있는 거라고 생각하고
어쨌든 간에 그런 책은 없다고 전 믿어요 일단은
그래서 그런 책은 못 찾았고
그냥 블로그에서 잘못 돌던 얘기가 사람들이 그냥
여러 명이 보고 또 그게 맞다고 퍼뜨리면서
굉장히 그래도 적지 않은 사람들이 믿고 있더라고요
슬랙챗 방에도
대부분 들어 봤더라고요
저는 들어본 적도 없는 얘기를
그래서 그 매니저하고 싱글턴하고 비슷한 면은 있어요
뭔가를 이제
싱글턴이 있다는 거는 그거 하나에 무슨
단순한 config 같은 거만 넣어 놓을 수도 있지만
그 외에도 다양한 거를
그 밑에 세부적인 이런 매니.. 뭐라 그럴까..
각각의 오브젝트를 관리하기 위해
싱글턴을 만드는 경우가 되게 많거든요
그리고 매니저도 목적이 그거고
그러나 싱글턴은 순수하게 진짜
전역 변수를 썼듯이
그런 식의 그냥 변수 하나를 적용하는
configuration이라거나
이런 것도 인스턴스로 가능하잖아요
싱글턴 인스턴스로
그래서 그런 것도 쓰기도 하고
렌더링..
게임 렌더링 하는 경우는 이제
렌더링 처리하는 라이브러리는 보통
인스턴스 하나만 만들어서 쓰니까
보통
그러면 그것도 이제 싱글턴으로 가능하고
결과적으로는 프로그램 안에서 이 클래스에 있는 개체가
딱 하나만 있다
그거를 강요하는 패턴이 싱글턴이에요
근데 이제..
아까 말했듯이 이게 왜 짜증이 나냐
어디선가 누군가 잘못된 이해를 해서
잘못된 글을 올렸어요
일단 그 사람이 사실 확인 안 해 보고
제대로 검토 안 해 보고 퍼블릭에 똥을 싼다는 것 자체도
맘에 안 드는 면이지만
사람은 누구나 실수를 할 수 있어요
그것까지는 넘어가요 좋아요
그러면 그 뒤에 그 글을 읽고
아 이게 싱글턴이다라고 퍼뜨리는 사람들이 있잖아요
몇 단계에 걸쳐서
이 사람들은 그 글이 잘못됐다라고 욕할 순 있는데
저는 만약에 글을 쓰는 사람이
뭐라 그럴까
뭐 그게 악의로 썼을 수도 있고 아닐 수도 있는데
악의로 썼다면은 일부러 거짓말한 거고
악의로 안 썼다면은 실수로 거짓말을 한 거에요
그러면
만약에 나는 그냥 그 글을 읽고 그냥 퍼 날랐어요
여기저기 퍼다 날랐어
근데 재밌는 거는
싱글턴이라잖아
이미 싱글이라 그래요 하나라고
근데 어 n개가 있을 수 있어
음 그럴 수 있겠지 그러고 퍼뜨리는 거에요
제 머릿속에는 안 그럴 것 같아요
싱글? 야 하나잖아 근데 왜 n개야
말이 안 되지 않아? 이름을 잘못 지은 건가?
고민을 하고 한 번 더 확인을 할 것 같아요
근데 안 해요
그냥 퍼뜨리는 거야
그럼 퍼뜨린 사람은 무슨 죄냐?
저는 어차피 한 명이 실수해서 말을 잘못한 게
세상으로 퍼지진 않는다고 봐요
중간에 나르는 사람들이 있으니까 퍼지는거지
그럼 그 사람들이 한 명 한 명이
한 번만 좀 더 생각해 보고
아 이건 잘못됐다라는 걸 생각하고 아 이건 잘못됐습니다
라고 그 사람한테 얘기하거나
아니면 안 퍼뜨리거나하면은
그런 잘못된 지식이 퍼지지 않는다고 보거든요?
그럼 저는
이 사람들은
뭐..
그냥..
뭐라 그럴까?
수동적인 거짓말을 했다고 봐요 보통은
니가 알 수 있었던 건데 왜 알지도 않고
왜 생각도 안 하고 일단 퍼만 나르냐
뭐 처음 사람보다는 좀 욕을 덜 먹을 수도 있겠지만
퍼 날랐기 때문에 그 온갖 지식이 엄청 퍼진 거잖아요
그럼 첫 사람은, 한 명 실수하고
그냥 아무 소리없이 묻어질 사람인데
주변에서 이렇게 퍼뜨려서
오히려 더 상황을 악화시킨 그런..
뭐 책임을 물을 순 없지만
개인적으로 좀 책임감을 느끼긴 해야 된다고 봐요 그냥
내가 책임을 뭐 지고 뭐 이거를 어떻게 한다기 보다는
내가 내 입에서 나가는 말 자체가 거짓을 나르는 입이
아니길 바라는 거죠 어찌 보면은
그리고 뭐 그게 잘못됐다 안 됐다를 떠나서
내가 스스로 거짓말을 말했다는 것 자체가 쪽팔린
일이 아닐까라는 생각을 전 되게 많이 해요
저는 말을 되게 아끼는 편인 이유가 그거고
그러면서 포프TV를 만들고 있다는 게 아이러니하지만
그래서 그런 걸 조금만 더 신경써 줬으면
좋겠다는 생각을 했어요
다시 정리를 하면은
싱글턴은 언제나 인스턴스가 하나에요
그게 n개가 된다고 말하는 것부터 이거는
그 패턴이 아니고 다른 패턴이 있을 것 같아요
제가 생각할 땐 매니저 패턴이라고 생각을 하고
그게 패턴 이름이 있다면
그리고 정말
제가 여러 번 비디오에서 많이 말했던 것 같아요
스스로 생각하기라는 비디오도 있었고
왜 다른 사람들이 하는 말이 옳다고 믿는지 모르겠어요
특히 이제 한국 쪽에서 도는 IT 정보는 제가 볼 때는
온라인에서 보는 80%는 제가
거짓말이라고 생각하거든요
보고 나서 말이 안 되는데 그러고
접는 경우가 되게 많아요
뭐 외국처럼 Stack Overflow가 있어 갖고
거기서 좀 이렇게
뭐, 선동이 약간은 있지만
그래도 서로 견제 들어오고 좀 그래도 올바른 대답 정도?
굉장히 꼼꼼하고 논리적인 대답만이 이렇게
대답으로 좀 많이 올라가는 그런 상황
그런 사이트도 없는 상황이고
이거는 좀 개개인이 조금 더
조심해야 되는 문제인 것 같은데
Stack Overflow가 그렇게 도는 이유는
그런 논리적이고 합리적인 대답하는 사람들이
점수를 많이 받아요 추천을 받아서
그리고 그 사람들이 어느 정도
공신력이 있다고 인정을 받고
그 사람들이 말을 하면 많은 사람들이 믿어주는 그런
약간은 팬심 이런 것도 없진 않은 것 같아요
근데 다행히도 그렇게 명성을 받고 있는 사람 중에
쭉정이가 좀 적다
서로의 의견은 다를 수 있지만
그 기반이 되는 가치관이 다르면
의견은 다를 수 있거든요?
그런 게 일관적이고 그런 사람들이 많고
그렇게 때문에
쭉정이가 적기 때문에 그런 것 같고
한국 쪽에서는 흔히 좀
공신력 있다고 하시는 분들이
그 분 중에 정말 제대로 되신 분들이
그렇게 많지가 않았어요 제가 볼 때는
오히려 그것보다는 약간은
사실을 많이 숨기고
뭐 있는 척을 많이 하고 약간 보여주기 식? 이런 식으로
약간 한국 사람들이 좋아하는 그런 문화가 있어요
그거를 잘 하면은 그 사람이 굉장히
뛰어난 것처럼 보이다가
몇 년 안 돼서 사라지는 이런 스타일을 많이 봤기 때문에
그 문화 차이인 것 같기도 하고
잘은 모르겠지만
어쨌든 포프TV를 보시는 분들 중에는
제가 굉장히 불편한 말을 많이 하는 것 같아요
그냥 좀 대충 이렇게
무시하고 싶어하는 것들 이게 불편한 진실이라고 하죠
그 얘기를 제가 많이 하는데 그래도 보시는 분들은
그런 생각을 하시는 분이라고 생각을 하거든요
그래서 이제 좀 그런 부분에 대해서
헛된 소문을 퍼뜨리지 말자
그런 거를 좀 많이 말을 하고 싶어요
그리고 첨언을 하나 더 하자면
인터넷이라는 그거 자체가 그런 곳인 것 같아요
아 이거는 차라리 다음 비디오를 하나 만들죠 그냥
그게 나을 것 같아 길어질 것 같아요
그래서
음
오늘은 이 정도로 끝내는 게 좋을 것 같고
아까 정리도 다 해 드렸으니까 상관이 없고
뭐 제 비디오가 마음에 드셨다면은
구독 버튼을 눌러 주시면
저한테 또 도움이 되지 않을까 생각을 해요
뭐 좋아요 눌러 주셔도 좋고
유튜브에서 뭔가 그러면
노출을 더 많이 해 주는 것 같아요
그러면 맘에 드셨으면은 좋아요 버튼
뭐 구독하기 버튼 눌러 주시면 고맙고
음 포프였습니다
다음 편에 뵐게요