์๋
ํ์ธ์ ์๋ฐ ์ ์
๊ฐ๋ฐ์์
๋๋ค.
์ ๊ณต์ด ์ปดํจํฐ๊ณตํ์ด๋ผ ์์ฐ์ค๋ฝ๊ฒ ์๋ฐ ์ชฝ์ผ๋ก ๊ณต๋ถ๋ฅผ ํ๊ณ ์ทจ์
์ ํ๊ฒ ๋์ต๋๋ค.
์ผ์ ํ๋ค ๋ณด๋ ๊ฒ์ ๊ฐ๋ฐ์ด๋ C# ์ชฝ์ผ๋ก ๊ด์ฌ์ด ์๊ฒจ ๊ทธ ์ชฝ ๋ถ์ผ๋ก ์ด์ง์ ํ๊ณ ์ถ์๋ฐ ์๋ฐ์์ C#์ผ๋ก ์ง๋ก๋ฅผ ๋ณ๊ฒฝํ๋๊ฒ ๊ด์ฐฎ์๊น์? ์ฌ๋์ ๊ตฌํ๋ ๊ณณ๋ ๋ง์ง ์๋ค๊ณ ํ๊ธฐ๋ ํด์ ๋จผ์ ์ผํ๊ณ ๊ณ์ ๋ถ๋ค์๊ฒ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ด ์ฌ์ญ๋๋ค.
์ ๊ณต์ด ์ปด๊ณต์ด๋ผ C, C++์ ๋ํ ๊ธฐ์ด ์ง์์ ์์ง๋ง C# ์ชฝ์ ๊ณต๋ถ๋ฅผ ํด๋ณธ ์ ์ด ์์ด์ ์งง์ผ๋ฉด 3๊ฐ์์์ ๊ธธ๊ฒ๋ 6๊ฐ์๊น์ง ๊ธฐ๊ฐ์ ์ก๊ณ ๊ณต๋ถํด์ ์ทจ์
ํด๋ณด๋ ค ํฉ๋๋ค.
C#์ด๋ ์ ๋ํฐ ์ชฝ ๊ณต๋ถ๋ฅผ ํ ์๊ฐ์ธ๋ฐ ๋ ํ์ํ ์ง์๋ ์ถ์ฒํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์๋ฐ ์ผ์๋ฆฌ ์ก์์ผ๋ฉด ์ผ๋จ ๊ณ์ ํ์๋ ๊ฑฐ ์ถ์ฒํฉ๋๋ค.
์ผ๋จ ์ฌ๊ธฐ C#์ ๋ท๋ทํ๋ ์์ํฌ๋ผ ์
๊ณ์ํฉ์ด ๋์์ด ์๋ ๊ฑฐ์์. ๊ฒ์์ ์ ํ ๋ฌ๋ผ์์.
๋ท๋ท์ด๋ ์ ๋ํฐ๋ C#์ ๊ฐ์ง๋ง(๋ฒ์ ์ฐจ์ด, ์ ์ฝ์ ์์ง๋ง์) ๊ฒ์์ ๋ค๋ฅธ ๊ฐ๋ฐ๊ณผ ๋ง์ด ๋ค๋ฆ
๋๋ค. ๊ฒ์๊ฐ๋ฐ ์์ฒด๋ ๋ถ์ผ(2D, ์ฅ๋ฅด, ํด๋ผ/์๋ฒ, UI, ๊ทธ๋ํฝ๋์์ธ๋ฑ)๊ฐ ๋ง์์ ๊ฐ๊ฐ ๋ค๋ฅด๊ธดํ์ง๋ง ๊ฒฝ๋ ฅ ๋ช๋
์์ด๋ ๋ท๋ท๊ฐ๋ฐ์ ๋ฐ ์น๊ฐ๋ฐ์์ ์ ๋ํฐ๊ฐ๋ฐ์๋ ์๋ก ํธํ์ด ์๋ ๊ฒ๋๋ค.
์ ๋ํฐ๊ฐ๋ฐํ๋ค๊ณ ๋ท๋ท/์น/์ฑ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ ์ ์์ผ๋ฉฐ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
์๋ฐ/๋ท๋ท์ ํ๋ ์์ํฌ ๋จ์์ ๊ณ ๋ํ๋์ด ์ค๋น๋๊ฒ ๋ง์ ๋๋ฉ์ธ์ง์๊ณผ API๋ง ์์๋ ๋์ง๋ง ์ ๋ํฐ๋ ์ค๋น๋๊ฒ ๋ณ๋ก ์์ต๋๋ค.
์ง์ ๋ค ๋ง๋ค์ด์ผํ๋๋ฐ ์ง์ ๋ค ๋ง๋ค์ด์ผํ๋ค๋ ์์ค์ด ๋ค๋ฅธํ๋์์ ๋น์ฐํ๊ฒ ์๋ ๊ฒ๋ค์ด ์๊ธฐ๋๋ฌธ์ ๋งค์ฐ ๊ธฐ์ด์ ์ธ ๊ธฐ๋ฅ์ ๋งค์๊ฐ ํ๋ํ๋ ์ค๊ณ๊ณ ๋ฏผํด๊ฐ๋ฉด์ ์ด๋ ๊ฒ ํ๋๊ฒ ๋ง๋? ํ๋ฉด์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
์๋ฅผ๋ค์ด UI์ ListView๋ MVVM ๊ฐ์๊ฑฐ ์ธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋น๋ ๋ธ๋ฆฌ๊ฒ์ดํธ/์ด๋ฒคํธ ์ฝ๋ฐฑ ํธ๋ค๋ฌ ์ด๋ฐ๊ฒ๋ค๋ง ์ฐพ์์ ์ฐ๋ฉด๋์ง๋ง ์ ๋ํฐ์์๋ ๊ทธ ์์คํ
์์ฒด๋ฅผ ์ง์ ๊ตฌํํด์ผํฉ๋๋ค. ์คํฌ๋กค ์ฑ๋ฅ์ ์ํด ๊ฐ์ํ/์ฌ์ฌ์ฉ๋ทฐ๊ฐ ํ์ํ๋ฉด ์คํฌ๋กค๋ทฐ ํ๋ํ๋ ํ๋ฉด๋์ด ๊ณ์ฐํด์ ์ด๋ฒคํธ๋ ์ง์ ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ๋์ผ๋์. MS๊ฐ ํ๋ ์์ํฌ ๋ง๋๋ ์ผ ์ผ๋ถ๋ฅผ ์ง์ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
์
๊ณ๋ ๋ ๋ณด์์ ๋ฏผ๊ฐํด์ ์ง์๊ณต์ ๊ฐ ์ ๋์ง ์์ต๋๋ค. ๋ค๋ฅธ ํ๋์์๋ ๊ณ ๋ฏผ์์ฒด๋ฅผ ํ ํ์๊ฐ ์๋ ๊ฒ๋ค์ ์ง์ ๊ณ ๋ฏผํด์ ๋ง๋ค์ด์ผํ ์ผ์ด ๋ง์์. ๊ทธ๋ฌ๋ค๋ณด๋ ์ค์ค๋ก ์๊ฐํด๋ด์ผํ๊ณ ์ด๋ฐ ์ค๊ณ/์๊ณ ๋ฆฌ์ฆ์ด ๋ง๋?ํ๋ ๊ณ ๋ฏผ์ ๋งค์๊ฐํด์ผ๋๋๋ฐ ์ฝ๋ฉ๊ฒฝํ์ด ์ ์์๋ก ๋ ์ค๋ฆฌ๋ฌด์ค์ด๊ฒ ์ฃ .
๋ท๋ทํ๋ ์์ํฌ ๊ฐ์๊ฑธ ์ง์ ๋ฏ์ด๋ณด๊ณ ์ดํดํด๋ณธ ๊ฒฝํ์ด ์์ผ๋ฉด ๋์์ด ๋๊ธดํ์ง๋ง ๊ทธ๊ฒ๋ ์ผ๋ถ๋ง ๊ฒน์น ๋ฟ์
๋๋ค.
์ด์ฐ๋ณด๋ฉด ์ค๊ณ์ ๋ ์ ๊ธ์์ค์์ ๋
ผ๋ฆฌ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ๋๋ฌธ์ ๋ ์์ด์ ์ด๋ผ ์ฌ๋ฏธ์๊ธฐ๋ ํฉ๋๋ค๋ง ํ์ด์ด๋ฅผ ์ฌ๋ฐ๋ช
ํ๋ค๋๊ฒ, ํด์ผ ํ ์ผ์ด ๋๋ฌด ๋ง๋ค๋ณด๋ ์ง์นฉ๋๋ค.
๋ฌผ๋ก ์ฝ๋ฉ๋ถ์ผ ์ ๋ฃ์์
๋์๋ ๋ฐ์ ์ ์์ง๋ง 3์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์คํ์์ค๊ฐ์ ๊ฒฝํฅ์ด ํฝ๋๋ค. ๋น์ธ๊ธฐ ์์
์ ๋๋ด๊ณ ๋ ์
๋๋์๋ ์ ๋ชป๋ฐ๊ณ ๊ทธ๋ฌ๋ค๋ณด๋ ์ง์ ๋ง๋๋๊ฒ ์ํธํฉ๋๋ค.
5๊ฐ์ ์ข์์
BOBx5
3
C#/.NET ์ผ๋ก ์ผ์ปฌ์ด์ง๋ ์๋ฏธ๋ 3์ข
๋ฅ๊ฐ ์์ต๋๋ค.
-
.NET
:
.NET Core
(๊ตฌ ๋ช
์นญ) ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ๊ฒ์ผ๋ก ํ์ฌ MS์์ ํ๋ฐํ ์
๊ทธ๋ ์ด๋ ๋ฐ ๋ฉ์ธํฐ๋์ค๋ฅผ ์งํํ๊ณ ์๋ Windows/Linux ํฌ๋ก์ค ํ๋ซํผ ํ๋ ์์ํฌ/์ธ์ด ์
๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ท๋ท๋ฐ๋ธ์์ ์ธ๊ธ๋๋ ๊ฒ์ ์ด๊ฒ์ ์ง์นญํฉ๋๋ค.
-
.NET Framework
:
Windows ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ด์ ๋ฐฉ์์ผ๋ก ์์ง๊น์ง ๋ง์ ํ์ฌ๋ค์ด ์ฌ์ฉ ์ค์
๋๋ค.
์ผ์ข
์ ๋ ๊ฑฐ์ ํํ๋ก ์ทจ๊ธ๋๊ณ ์ ๊ท ๊ฐ๋ฐ์ ์์ด์๋ ์ง์ํ๋ ํธ๋ ๋์
๋๋ค.
-
Unity C#
:
.NET Framework
๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ํ์๋์ด ๋์จ ๋ณ๊ฐ์ ์ธ์ด๋ก, ๊ฒ์์ ํน์ฑ์ ๋ง๋ ๋ค์ํ ๊ณ ์ ๋ฌธ๋ฒ์ด ์์ต๋๋ค.
๋ง์ํ์ ๊ด์ฌ ๋ถ์ผ๋ 3๋ฒ์ด์ ๊ฒ ๊ฐ์ต๋๋ค๋ง,
๊ฐ์ธ์ ์ผ๋ก๋ ๋ท๋ท๋ฐ๋ธ์์๋ ๋ค๋ฃจ์๋ ๋ถ์ ๊ฑฐ์ ๋ชป๋ดค์ต๋๋ค.
์ ๊ฐ ์์ํด๋ณด์๋ฉด ํ์ฌ ์๋ฐ๋ฅผ ํ๊ณ ๊ณ์๋ค๋,
์๋ง Java + MyBatis ๋ฅผ ์ด์ฉํ ๋ฐฑ์๋ ๊ฐ๋ฐ์ด ์ฃผ๋ ฅ์ด์ค ๊ฒ ๊ฐ์ต๋๋ค.
๋น์ทํ ํฌ์ง์
์ โ .NET
์์ ์ฐพ์๋ฉด .NET
C# + EntityFramework
(or Dapper
)
์ผ ๊ฒ์
๋๋ค.
๊ฒ์์ชฝ์์๋ โ ์ ๋ง์ด ์ฐจ์ฉํ์ฌ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฐํ ํ๊ณ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์๊ณ ,
๋ง์ํ์ ์ค์ง์ ์ธ ํด๋ผ์ด์ธํธ์์ ๊ตฌ๋๋๋ ๊ฒ์ ๊ฐ๋ฐ์ ์ ๋ํฐ๋ณด๋จ C++ ์ด ์ฃผ๋ ฅ์ธ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
์ ๋ ๊ฒ์์
๊ณ์ ๊ทผ๋ฌดํ์ง๋ ์์์ ์ ํํ์ง๋ ์์ง๋ง, ๋ฃ๋ ์ด์ผ๊ธฐ๋ก๋
์ ๋ํฐ๋ฅผ ์ค๋ฌด๋ก ์ฌ์ฉํ๋ ํ์ฌ๋ค์ ๋๋ค์ ๊ฒ์์ด ์ฃผ๋ ฅ ๊ฐ๋ฐ์ด ์๋,
๋ค๋ฅธ ์
๊ณ๋ค์์ ๊ฒ์์ ์์๋ค์ ์ฐจ์ฉํ๊ณ ์ ํ ๋ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ต์ก ์
๊ณ์์ ๊ฒ์์ ์ธ ์์๋ฅผ ํ์ฉํ ํ์ต ํ๋ซํผ ๋ฑ์ด ์๊ฒ ๋ค์.
3๊ฐ์ ์ข์์
rkttu
4
์ฐธ๊ณ ๋ก Unity๊ฐ ์ฌ์ฉํ๋ Mono ๊ธฐ์ ์์ฒด์ ํฐ ๋ณํ๊ฐ ์์๊ธฐ ๋๋ฌธ์, .NET ์์ญ์ ๊ธฐ์ ์งํ์ ๋ํ ์ ๋ณด๋ฅผ ์ธ๊ธํ๊ณ ๋์ด๊ฐ ํ์๊ฐ ์์ด ๋๊ธ์ ๋จ๊น๋๋ค.
- ์ง๋ 2024๋
9์ 17์ผ๋ถ๋ก, WineHQ ์ฌ๋จ์ด Mono ํ๋ก์ ํธ์ ๋ํ ์์ ๊ถ์ ์ด์ ๋ฐ์๊ณ , ์๋ณธ Mono ํ๋ก์ ํธ์ ๊ฐ๋ฐ์ ์ค๋จ๋์์ผ๋ฉฐ, Microsoft์ .NET Core ๋ฐํ์์ ๊ธฐ์ ์ด ๋ณํฉ๋ ์ํ์
๋๋ค.
- ๋ฌผ๋ก WineHQ ์ฌ๋จ์ Mono ๋ฐํ์์ ๊ณ์ ์
๋ฐ์ดํธ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ ๋ฐฉํฅ์ฑ์ด ๊ธฐ์กด๊ณผ๋ ๋ค๋ฅด๋ฉฐ, ๊ฐ๋ฐ์๋ฅผ ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์ค์ฌ์ด ์๋ Wine ํ๋ก์ ํธ๊ฐ ์ถ๊ตฌํ๋ Windows ์ ํ๋ฆฌ์ผ์ด์
์ ํฌ๋ก์คํ๋ซํผ ์คํ ์ ๋ต์ ๋ฐฉ์ ์ ๋๋ ๊ฐ๋ฐ์ด ์งํ๋๋ฏ๋ก ์๋ณธ ํ๋ก์ ํธ์ ์ฑ๊ฒฉ๊ณผ๋ ๋ง์ด ๋ค๋ฆ
๋๋ค.
- Unity๋ Mono ํ๋ก์ ํธ ์๋ณธ์ forkํ์ฌ ๋ณธ์ธ๋ค์ ์์ฒด์ ์ธ .NET ๋ฐํ์ ๊ฐ๋ฐ์ ์ง์ํ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ์๋ณธ Mono ํ๋ก์ ํธ, WineHQ์ Mono ํ๋ก์ ํธ์๋ ๋ถ๋ฆฌ๋ Mono ๋ฐํ์ ์ฝ๋๋ก ์ ํ์ ๊ธฐ๋ฅ์ ํ์ฌํ๊ณ ์์ต๋๋ค.
- ๋ฐ๋ผ์ Unity์์ ์ฌ์ฉํ ์ ์๋ C#๊ณผ Mono ๋ฐํ์์ .NET๊ณผ ํธํ์ฑ์ด ์๋ ๊ธฐ์ ์ด์ง๋ง, ์๋ณธ .NET ๊ธฐ์ ๊ณผ๋ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ด ๊ฐ๊ฒฉ์ ์ฑ์ฐ๋ ๊ฒ์ด .NET ํ์ค (.NET Standard)์ด๋ฉฐ, Unity๋ .NET Standard 2.0์ ๊ท์ฝ์ ์ค์ํฉ๋๋ค. ์ด๋ .NET Core 2.x ๋ฒ์ ๋์ .NET Framework 4.6.x ๋ฒ์ ๋์ ํต์ฉ๋๋ ํ์ค ๊ท์ฝ์
๋๋ค.
- ์ด๋ฐ ๋งฅ๋ฝ์์, Unity์ C#๊ณผ .NET ๋ฐํ์ ์ง์์ ์ต์ ์ ๋
ธ๋ ฅ (Best Effort)์ผ๋ก ๋ณด๋ ๊ฒ์ด ํ๋นํฉ๋๋ค. ๊ทธ๋์ ์ค์ .NET ๊ธฐ์ ๊ณผ๋ ์ฐจ์ด๊ฐ ์์ ์ ์์์ ์ดํดํ์
์ผ ํฉ๋๋ค.
์์ธ๋ฌ Unity ๊ฐ๋ฐ์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋ท๋ท๋ฐ๋ธ๋ณด๋ค๋ ๋ค๋ฅธ Unity ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ ๊ฒ์ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ์ฐพ์๋ณด์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
2๊ฐ์ ์ข์์
Mono์ ๋ํด์๋ ์์ ์ .NET Core๋ก ๋ฐ๊ฟ๊บผ๋ค ๋ผ๋ ์๊ธฐ๊ฐ ์์๊ณ ์ค์ ๋ก ์ด๋ ์ ๋ ์ง์ฒ๋ ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ด์.
2๊ฐ์ ์ข์์
rkttu
6
๋ค, ๋ง์ํ์ ๊ฒ์ด ๋ง์ต๋๋ค.
๋ค๋ง ์ต์ ๋ฒ์ ์ Unity๋ฅผ ์จ์ผ ํ๋ค๋ ์ ์ ์กฐ๊ฑด์ด ๋ฐ๋ผ ๋ถ๊ธฐ ๋๋ฌธ์, ์ต์ ๋ฒ์ ์ Unity๋ก ๋น ๋ฅด๊ฒ ์
๋ฐ์ดํธ๋ฅผ ํ์ง ๋ชปํ๋ ์ํฉ์ ํด๋นํ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ fork ๋ฒ์ ์ Mono์ IL2CPP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Unity ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์๋ํ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๋ค๊ณ ์๊ฐ์ด ๋์ด ์ ๋ ๋ณด์์ ์ธ ์
์ฅ์ผ๋ก ์ด์ผ๊ธฐํ๊ฒ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
1๊ฐ์ ์ข์์
์ ํ๋์ด ๋๊ธ์ ์ด์ ๋ค์
์ ์ง๊ธ ๊ธ์ด ์ฒ์ ๋์ ๋ค์ด์์ต๋๋ค.
๊ฒ์์
๊ณ, .NET Framework ๊ธฐ๋ฐ ์ ์กฐ์
, JAVA ๊ฐ๋ฐ ๋ชจ๋ ๊ฒฝํํ ์
์ฅ์์ ๋์ค์ ๋ณด์ค ๋ถ๋ค์ด ์์ ๋ฏ ํ์ฌ ์กธ๋ฆฌ์ง๋ง ๋ช ์ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค.
- ํ ์์ ์์ ์ฌ๋ฏธ๋ฅผ ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋จน๊ณ ์ด๊ณ ์ถ๋ค๊ณ ํ๋ฉด JAVA ๊ฐ๋ฐ์ด ๋ ์ ๋ฆฌํ ๊ฒ ๊ฐ์ต๋๋ค.
- ๊ฒ์ ์
๊ณ์ ๊ฐ๊ณ ์ถ์ผ์ ๊ฒ์ด๋ฉด ๊ฒ์ ์ฑํฅ์ ์ปค๋ฎค๋ํฐ๊ฐ ์กฐ๊ธ ๋ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- C#์ ๋ํด์๋ Unity์์ ์ฐ๋ C#์ด๋ .NET์ C#์ด๋ ๊ฐ์ ๊ฒ๋๋ค๋ผ๊ณ ์ธ์ํ๋ ๊ฒ ๋ ๊น๊ฒ ๋ค์ด๊ฐ์ ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค. Unity๋ ๊ทธ๊ฒ๋ง์ผ๋ก๋ ๋ฐฐ์ธ ๊ฒ์ด ๋ง๊ณ ์ธ๊ณ๊ด์ด ์์ ์ ๋์ง๋ง .NET ์์์ ๋์ํ๋ค๋ ์ ์ ์๊ณ ๊ณ์
จ์ผ๋ฉด ํฉ๋๋ค.
๋ญ๊ฐ ์ค๋ช
์ด ์ด์ํ๋ค๋ฉด ํ์ฌ ๋งค์ฐ ์กธ๋ ค์ ๊ทธ๋ฐ ๊ฑฐ๋ ๋๊ทธ๋ฌ์ด ์ํด๋ฅผโฆ ๋ถํ๋๋ฆฝ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
2๊ฐ์ ์ข์์