์ฑ๊ธํค์ด๋ static๋ง ์ฐ๋๊ฑฐ๋ ์ฐจ์ด์ ์ด ๋ญ์? ๊ฐ์ข๋ง๋ค ์ฝ๋๊ฐ ๋ค๋ฅด๋๋ฐ ์ด๋ป๊ฒ ์จ์ผ๋๋๊ฑฐ์?
์ฑ๊ธํค๊ณผstatic ์ ๊ตณ์ด ๋๋๋ฉด ์ฌ๋ฌ์ฐจ์ด๊ฐ ์์ง๋ง ์ ๋ํฐ์์๋ MonoBehaviour ๋ฅผ ์์๋ฐ์์์๋ ์๋์ ์ฐจ์ด ์ฑ๊ธํค์ ๋์์ธํจํด์์ผ๋ก ๋ง๋๋๋ฐฉ๋ฒ์(์ฌ์ค๋ค ๋๊ฐ์๊ฑฐ์ง๋ง)์ฌ๋ฌ๊ฐ์ง๋๊น ์ผ๋จ ๋๋ง์๋๋๊ฑธ์จ๋ผ
์ฑ๊ธํค ํจํด์ด๋ static ๋ณ์์์ ์ฐจ์ด๋ ์์ฑ์ ์ ํํ๋ ๊ฒ์ ์์. ์ฑ๊ธํค ํจํด์ ์์ฑ์๋ ํ๊ดด์๋ฅผ ๋ฐ์ผ๋ก ๋ ธ์ถ ์ํค์ง ์๊ณ getInstance(), releaseInstance() ๊ฐ์ ๋ฉ์๋๋ก๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํด์ ๊ณ ์ ์ ์ธ์คํด์ค ํ๋๋ง์ ์ ์งํ๊ฒ ํ๋๋ฐ, ๋ง์ผ static ๋ณ์๋ก ์ ๊ทผ์ ํ๊ฒ ํ๋ฉด ์ผ๋ฐ ํด๋์ค๋ ์ฐจ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํ ์ ์์. ๊ทธ๋ผ ์ฑ๊ธํด์ด ์๋๊ฒ ๋๊ฑฐ์ง. ์ฝ๋๋ ๊ฐ์ข๋ง๋ค ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ธด ํ์ง๋ง ์๋ฆฌ๊ฐ ๋๊ฐ์ผ๋ฉด ๋ญ ์จ๋ ๋ฌธ์ ์์
์คํํฑ ํด๋์ค๋ก ์์ฑํ๋ฉด ๋์์์ฌ - dc App
๊ทธ๋ผ C#์ ํด๋์ค ๋์ static modifier๋ lazy Initialization ์ฑ๊ธํค์ด๋ ๋ค๋ฅผ๊ฒ ์๋๊ฑด๊ฐ - dc App
์คํํฑ ํด๋์ค๋ ์ธ์คํด์ค๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๋ก์ ์ํ๋ ๊ธฐ๋ฅ์ ์ํ ํ ์ ์์ ๋๊ฐ ์์ด์ฌ. ๋น์ฅ ์ฝ๊ฒ ๋ ์ค๋ฅด๋ ์๋ ์ฑ๊ธํค์ ์ธ์คํด์ค๋ ๋ฉ์๋์ ํ๋ผ๋งคํฐ๋ก ๋๊ธธ ์ ์์ง๋ง ์คํํฑ ํด๋์ค๋ ๊ทธ๋ ๊ฒ ํ ์๊ฐ ์์ง์ฌ. static ํด๋์ค๋ ์ธํฐํ์ด์ค ๊ตฌํ๋ ์๋๊ธฐ ๋๋ฌธ์ ์ ํ๋ ๋ง๊ตฌ์ฌ. OOP ๋ฒ์น ์๋ฐ ์ํ๋ ์๊ณ ๋ฑ๋ฑ ์ด์๋ ๋ง๋๋ผ๊ตฌ์ฌ. Singleton vs Static class๋ ๊ต์ฅํ ์์ฃผ ์ผ์ด๋๋ ๋ ผ์๊ฑฐ๋ฆฌ์ธ๊ฐ๋ด์ฌ
static ๋ฉค๋ฒ๋ ์คํ๊ณต๊ฐ์ ์์ฑ๋จ - dc App
์๋ชป ๋ ์ ๋ณด๋ฅผ ์ ๋ฌ ํ๊ณ ์๋๋ฐ static ๋ฉค๋ฒ๋ ํ์ ์์ฑ ๋จ.
https://www.tutorialsteacher.com/csharp/csharp-static
๋ง์ ์ ๊ฐ ๋จ์ด๋ฅผ ์๋ชป์ ์คํ ๊ณต๊ฐ์ด ์๋๋ผ ์คํํฑ ๊ณต๊ฐ์ ์๋ ํ์ด ์๋ ๋ค๋ฅธ ๋ณ๊ฐ ์คํ์ด์ค๋ฅผ ์ด๋ค๋ ๊ฒ์ ๋งํ๋ ค๊ณ ํจ - dc App
๊ทผ๋ฐ ์ด๊ฑด ์ ๋ ์ฒ์์ ์ข์ ์ ๋ณด์ ใฑใ ๊ทธ๋ผ HF ํ์ด๋ ์คํํฑ ๊ณต๊ฐ์ ์ฐจ์ด๊ฐ ๋จธ์ธ๊ฑฐ์ฃ ?? - dc App
static ๊ณต๊ฐ์ด๋ HF ํ์ด๋ ๊ธฐ๋ฅ์ด ์ ์ฌํ๊ธด ํ๋ฐ HF ํ์ c#์์๋ง ์ฌ์ฉํ๋ ๊ฐ๋ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ผ์ฌ. HF ํ์๋ ๋ญ๊ฐ ๋ ๋ณต์กํ ๊ฐ๋ ์ด ๋ง์๊ฑฐ๋ก ์๊ณ ์๋๋ฐ c# ์ํคํ ์ฒ๋ฅผ ๊น๊ฒ ๊ณต๋ถ ํ์ง ์์์ ๊ทธ๋ฅ ๊ทธ๋ฐ๊ฒ ์๋ค๋๋ผ ์ ๋ ๋ฐ์ ๋ชจ๋ฅด๊ฒ ๋ค์ฌ
์ค๋์ ์ด๊ฑธ ๊ณต๋ถํด์ผ๊ฒ ๊ตฐ ๋ชจ๋ฅด๋๊ฑธ ์๋ ค์ค์ ใฑใ ํจ - dc App
singleton ๊ฐ์ฒด๋ ๋ค์ด๋๋ฏน์ผ๋ก ํ์ํ ์๊ฐ(์ฃผ๋ก ์ค๋น๊ฐ ๋ ์๊ฐ ํน์ ํ์ํ ์๊ฐ) ์ ์ ์ผํ๊ฒ ์์ฑํด์ ์คํํฑ ์ด๋๋ ์ค์ ๋ฐ์๋ฃ์ ์ ์๋๊ฑฐ๊ณ - dc App
lazy initialization์ผ๋ก ์ง๋ฉด ๊ทธ๋ ๊ฒ ๋๊ฒ ์ง๋ง eager initialization ๋ฐฉ์์ผ๋ก ์ง๋ฉด ํด๋์ค ๋ก๋ฉ๊ณผ ๋์์ ์ธ์คํด์ค๋ฅผ ์์ฑํจ. ํญ์ ๋ค์ด๋๋ฏนํ๊ฒ ์์ฑํ๋๊ฒ ์๋
์ด๊ฒ๋ ๋ง๋ ๋ง์. ๊ทธ๋์ ์์ํ ๋น ๊ท๋ชจ๊ฐ ์ ๊ฑฐ๋ ๋ฏธ๋ฆฌ ์์ฑํด๋ ์๊ด์์ผ๋ฉด eager Initialization์ ์จ๋ ๋ฌด๋ฐฉํจ. ๊ทผ๋ฐ ์ฑ๊ธํค์ ์ฌ์ฉํ๋ ๋ชฉ์ ์ด lazy Initialization์ด ๋ ์ ์๋ค๋ ๊ฒ์ด๋ผ ์ด๋ ๊ฒ ๋๊ธ์ ๋ฌ์์. - dc App
ํ์คํ ๋งํ๊ณ ์ถ์๊ฑด ๊ฒฐ์ฝ ์ฑ๊ธํค๊ณผ ์คํํฑ ํด๋์ค๋ฅผ ๋์ผํ๊ฒ ๋ด์๋ ์๋๋ค๋ ๊ฒ์. ๋ชจ๋ฅด๋ฉด ์ฐจ๋ผ๋ฆฌ ์ฐ์ง ๋ง๋๊ฐ ์ด์คํ๊ฒ ์๊ณ ์์ผ๋ฉด ๊ฒฐ๊ตญ ์ํฐํจํด์ด ๋ ๊ฐ๋ฅ์ฑ์ด ๋๊ณ ๋๋ง ๊ณ ์ํ๋ค - dc App
๋ชจ๋ฅด๋ฉด ์ ๋๋ก ๊ณต๋ถํด์ ์ฐ๋ฉด ๋์ง ์ฐจ๋ผ๋ฆฌ ์ฐ์ง ๋ง๋ผ๊ณ ํ ๊ฒ๊น์ง์ผ ์๋
๋ชจ๋ฅด๋ฉด ์์ฐ๋๊ฒ ์ต๊ณ ์ ์ ๊ทธ๋์ ์ด์ ์์ฐ๋ ค๊ตฌ์ - dc App
๋๊ธ ์ด์คํ๊ฒ ๋ฌ๋ค ๋์ง๋ปํ๋ค ใทใท - dc App