์๋
ํ์ธ์,
.Net Core 1.0์์๋ ํ๋ซํผ ๊ฐ ์คํ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ง๋ ฌํ ์ง์์ด ์ค๋จ๋๋ค๋ ์์์ ๋ค์์ต๋๋ค. (๊ธฐ์ต์์ ํจ๋ฌ ํ๋ ์ด์ง) ์ด๊ฒ์ด ์ค์ ์ ์ธ ์๋ฏธ์์ ๋ฌด์์ ์๋ฏธํฉ๋๊น? BinaryFormatter์ Serialize ๋ฐ Deserialize ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ด ์ฝ๋๋ฒ ์ด์ค๋ ์์ ํ ์ฌ์ฉ๋์ง ์์ ์์ ์ด๋ฉฐ protobuf-net์ด๋ผ๊ณ ๋งํ๋ฉด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ณํํด์ผํฉ๋๊น? ์๋๋ฉด ๋ด๊ฐ ์คํด ํ์ต๋๊น?
๊ฐ์ฌ,
-์
์๋
ํ์ธ์ @joshfree , ์, ๋ถํํ๋ ๊ทธ๊ฒ์ด ํผ๋์ ์ผ์ผํจ ๋ฌธ์์์ต๋๋ค. ์ ์ ์ค JSON.NET์ json ์ง๋ ฌํ๋ฅผ ์ํํ๊ณ protobuf-net์ ์ด์ง ์ง๋ ฌํ๋ฅผ ์ํํ๋ฉฐ datacontractserializer๋ xml ์ง๋ ฌํ๋ฅผ ์ํํฉ๋๋ค. ๋ฌธ์ ๋ ์ด์ง ์ง๋ ฌํ๋ฅผ ์ํํ๋ ค๋ ๊ฒฝ์ฐ์
๋๋ค. protobuf-net์ ํ๋ฅญํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง ์ ํ์ ์
๋๋ค. Protobuf-nets repo์์ ์ง์๋๋ ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ ์ ํด๋์ค :
๋ฐ์ดํฐ ๊ณ์ฝ์ผ๋ก ํ์๋ฉ๋๋ค.
๋งค๊ฐ ๋ณ์์๋ ์์ฑ์
Silverlight : ๊ณต๊ฐ
๋ง์ ๊ณตํต ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ฑ
๋จ์ผ ์ฐจ์ ๋ฐฐ์ด : T []
๋ชฉ๋ก / IList
์ฌ์ / IDictionary
IEnumerable์ ๊ตฌํํ๊ณ Add (T) ๋ฉ์๋๊ฐ์๋ ๋ชจ๋ ์ ํ
๊ณผ๊ฑฐ์๋ binaryformatter๊ฐ ํญ์ ์์๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ ์์ง๋ง ๋ ์ด์ ๊ทธ๋ ์ง ์์๊น์? protobuf-net์์ ์ง์๋์ง ์๋ ์ ํ์ ์ด์ง ์ง๋ ฌํ์ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? ์ง์ ๋ง๋์๊ฒ ์ต๋๊น?
๋๋ ์ฌ์ ํ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ์ ์ ๋ํด ๊ฝค ์ด๋ณด์์ด๋ฏ๋ก ๋ฌด์ธ๊ฐ์ ๋ํ ์์ ์ ์์ ํ ๋์น ์ ์์ต๋๋ค.
๋ํ ์ด๋ค ์ค ์ด๋ ๊ฒ๋ ๋ถ์ฐ ์ปดํจํ (Azure ...)์์ ํ์์ ๋ฐ๋ผ ์์ธ๋ฅผ ์์ ์ ์ผ๋ก ์ง๋ ฌํ (๋ฐ ๋ชจ๋ ๊ด๋ จ ๋ฐ์ดํฐ ์ ์ง) ํ ์ ์์ต๋๋ค.
@cdrnet point๋ Orleans guys IIRC์ ๊ฐ์ ์ฌ๋๋ค์๊ฒ ํฐ ๊ณ ์ฐฉ ์ ์ ๋๋ค.
@joshfree ํฌํ ์ง์นจ์ด ์ง์ ํ๋ฏ์ด ๊ธฐ๋ฅผ .NET Core๋ก ๊ฐ์ ธ์ฌ ๊ณํ์ด ์์ต๋๋ค. .NET Remoting๊ณผ .NET Core์ AppDomain ๊ฐ๋ ์ด ์์ผ๋ฉด ์ด์ง serializer๋ ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค. .NET Core์์ ๊ณ์ ์ง์ ๋ DataContractSerializer (DCS), DataContractJsonSerializer (DCJS) ๋ฐ XmlSerializer์ ๊ฐ์ .NET Core์ ๋ค๋ฅธ serializer๋ฅผ ๊ณ ๋ คํ์ธ์. ๋ฌผ๋ก .NET Core์ ๋น๋ ๋ ํ์ฌ serializer๋ฅผ ๊ณ ๋ คํ ์๋ ์์ต๋๋ค. ์๋ง๋ ์ง๋ฌธ์ํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ํนํ ์ด์ง ์ง๋ ฌํ ๋ ํ์ด๋ก๋๊ฐ์๋ ์ง๋ ฌํ๊ธฐ๋ฅผ ์ฐพ๊ณ ์์ต๋๊น (๊ทธ๋ ๋ค๋ฉด ์) ์๋๋ฉด ๊ด์ฌ์๋ ์ ํ์ ์ง๋ ฌํ / ์ญ ์ง๋ ฌํ ํ ์์๋ ์ง๋ ฌํ๊ธฐ๋ฅผ ์ฐพ์ต๋๊น? ์ฐ๋ฆฌ๋ DCS, DCJS ๋ฐ XmlSerializer๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ถ๋ถ์ .NET ์ ํ์ ์ง๋ ฌํ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ด์ฌํ ๋ ธ๋ ฅํด ์์ต๋๋ค. ์ด๋ฌํ serializer๊ฐ ์๋ํ์ง ์๋ ํน์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ธ์ ๋ ์ง ์๋ ค์ฃผ์ญ์์ค.
@cdrnet ๋ฐ @ RichiCoder1 , ๊ทํ์ ์๊ฒฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์ธ ์ง๋ ฌํ์ ๋ํ ๋ ผ์์ ๋ํ ๊ณต๊ฐ ๋ฌธ์ dotnet / coreclr # 2715๊ฐ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ํผ๋๋ฐฑ์ ์ถ๊ฐํ์ญ์์ค. ๋ถ์ฐ ์์คํ ์์ ์์ธ๋ฅผ ์ง๋ ฌํ ํ ์์๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํ์ฌ .NET Core์์ ISerializable์ด ์์ผ๋ฉด ์ ์ฒด .NET ํ๋ ์ ์ํฌ ์์์ฒ๋ผ ์์ธ๋ฅผ ์ง๋ ฌํ ํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์ @zhenlan , ์๋ง๋ ์๋ ์ธ๊ธ ํ์ด์ผ binaryformatter๋ฅผ ์ํ๋ ์ฃผ๋ ์ด์ ๋ ์์ธ๋ฅผ (๋น) ์ง๋ ฌํํ๊ณ ์์ธ๋ฅผ ํฌํจํ๋ ์ฌ์ฉ์ ์ ์ ํด๋์ค์ ๋๋ค.
์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ถ์ฐ ์์คํ ์ผ๋ก, ์ผ๋ถ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ์ง๋ ฌํํ์ฌ tcp / ip๋ฅผ ํตํด ์ ์กํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด JSON.NET์ ํตํด ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ์ง๋ ฌํํ๋ ๊ฒ์ด ๋ ์ผ๋ฐ์ ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํด๋น ๋ฌธ์์ด์ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ๋ณํํ๊ณ tcp / ip๋ฅผ ํตํด ์ ์กํ๊ณ ๋ค๋ฅธ ์ชฝ ๋์์ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ํ ๋ฒ ๋๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ์ง๋ ฌํํ๊ณ ๋ฐ์ดํธ ๋ฐฐ์ด์์ ์ํ๋ ๊ฐ์ฒด๋ก ์ญ ์ง๋ ฌํํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์ค๋ฒ ํค๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ค๋ช ํด ์ฃผ์ @SamuelCox ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด์ ๋น์ ์ ์ฐ๋ ค๋ฅผ ์ดํด ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ง ์ง๋ ฌํ๋ ๊ฐ๊น์ด ์์คํ ์ ๋๋ค. Xml ๋๋ JSON๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ฐ๋ฐฉํ ํ์ค ๊ธฐ๋ฐ ์ง๋ ฌํ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ง๊ธ์ ํ์ํ์ง ์์ ์๋ ์์ง๋ง ํฅํ ์๋ก ๋ค๋ฅธ ํ๋ซํผ ๋๋ ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด / ์คํฌ๋ฆฝํธ ๊ฐ์ ์ง๋ ฌํ๋ฅผ ์ง์ํด์ผํ๋ ๊ฒฝ์ฐ ๋ ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ ํ์คํ์ง ์์ง๋ง ํ์ด๋ก๋์ ํฌ๊ธฐ๊ฐ ์ ๋ง๋ก ๋ฌธ์ ๊ฐ๋๋ ๊ฒฝ์ฐ ์ค๋๋ ๋ง์ ์๋ฒ์ ๋ด์ฅ ๋ ๊ธฐ๋ฅ์ธ ๋ฐ์ดํฐ ์์ถ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
๋๋ ๋ค๋ฅธ ๋ฌด์๋ณด๋ค ์ฑ๋ฅ ์ค๋ฒ ํค๋๋ฅผ ๋ ๋ง์ด ์๊ฐํ์ต๋๋ค. ๊ฐ์ฒด์์ ๋ฐ์ด๋๋ฆฌ๋ก ์ง์ ์ง๋ ฌํ ๋ฐ ์ญ ์ง๋ ฌํํ๋ ๊ฒ๊ณผ ๋น๊ตํ ๋ ๋ญ๋น๋๋ ์์ ์ด ๋ง์ด ๋ณด์ ๋๋ค. ๋๋ ์ ์ด๋ ํด๋ช ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ์ง๊ธ ์ด๊ฒ์ ์ข ๋ฃํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. ๋๋ ์ฌ์ ํ ์ฌ๊ธฐ์์ ์ด๋ฆฐ 4.6๊ณผ ์ฝ์ด 1.0 ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ ์ด์ ๋ฅผ ์ดํดํฉ๋๋ค.
๋ํ์ ์กฐ๊ธ ๋ฆ์์ง๋ง ์ฌ๊ธฐ์ ๋ด ๋ ์ผํธ๊ฐ ์์ต๋๋ค.
BinaryFormatter์ ์ ํธ๋ฆฌํฐ๊ฐ .NET remoting ๋ฐ AppDomains๋ก ์ ํ๋์ด ์๋ค๊ณ ๋ฏฟ๋ ๊ฒ์ ์ค์๋ผ๊ณ ์๊ฐํฉ๋๋ค. (๊ตฌ์) BinaryFormatter์ ์ต์ ๋ฒ์ ์ ์ฐจ์ด์ ์ ํด๋ก์ , ํ์ ์ ํ ๋ฐ ์ํ ๊ทธ๋ํ๋ฅผ ํฌํจํ์ฌ๋ณด๋ค ์ด๊ตญ์ ์ธ .NET ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ๋ ์์ ํ ๊ธฐ๋ฅ์ ๋๋ค. ํ์ฌ ์ค๋ ๋์ ๋์ด๋ ๋ค๋ฅธ serializer๋์ด ๋ชจ๋ ์์ ์ ์ํ ํ ์ ์์ต๋๋ค. Prajna ๋ฐ Mobius (์ผ๋ช SparkCLR)์ ๊ฐ์ Microsoft ํ๋ก์ ํธ๋ฅผ ํฌํจํ ๋ง์ ์ต์ฒจ๋จ ๋ถ์ฐ ํ๋ ์ ์ํฌ๊ฐ ์๋ํ๊ธฐ ์ํด BinaryFormatter์ ์์กดํ๋ ๊ฒ์ ์ฐ์ฐ์ด ์๋๋๋ค. ์ด๊ฒ์ .NET ์ธ๊ณ์๋ง ๊ตญํ๋์ง ์์ต๋๋ค. Spark๋ ํด๋ก์ ๋ฅผ ์ง๋ ฌํํ๊ธฐ ์ํด ์ค๋๋๊ณ ๋๋ฆฐ Java ๋ฐ์ด๋๋ฆฌ ์ง๋ ฌ ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
mbrace ํ๋ ์ ์ํฌ์์ ์ฌ์ฉํ๋ ์์ฒด FsPickler ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ์ฌ BinaryFormatter์ ๊ธฐ๋ฅ์ ๋ณต์ ํ๋ ๋ค๋ฅธ (์ด์ง ํ์์ด ์๋) serializer๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ CoreCLR์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ CoreCLR๋ก ์ด์ํ๋ ๊ฒ์ด ๋น์ค์ฉ์ ์ด๋ผ๊ณ ์๊ฐํ๋ ํ ๋ง์ ์ฃผ์ API๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋น์ฆ๋์ค ๊ด์ ์์ CoreCLR์ด ๋ถ์ฐ ์ปดํจํ / ๋น ๋ฐ์ดํฐ ์์ญ์์ JVM์ ๋ํ ์คํ ๊ฐ๋ฅํ ํฌ๋ก์ค ํ๋ซํผ ๊ฒฝ์์๊ฐ๋๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ ์ข์ ๊ฒ์ ๋๋ค. ์ด๋ POCO ๋ฐ ํด๋ก์ (์ด์ง ๋๋ ๊ธฐํ)์ ๋ํ ์์ ์ ์ธ ์ง๋ ฌํ ์ง์์ ์ ๊ณตํ๋ ํ๋ซํผ ์์ด๋ ๋ฐ์ํ ์ ์์ต๋๋ค.
peope๊ฐ ์ค์ ๋ก .NET Core๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํฉ๋๊น, ์๋๋ฉด Silverlight์ ๊ฐ์ ์๊ฐ ๋ญ๋น์ ๋๊น? ์ฌ๋๋ค์ด ์ค์ ๋ก .NET Core๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์ ๋๋ก ์๋ํ๋๋ก ๋ง๋์ธ์. ์ฌ๋๋ค์ด ์ง๋ ฌํ๊ฐ ํ์ํ๋ฉด ๊ตฌ์ถํ์ญ์์ค. ์ด๋ค์ ์ค์ ๋ก ๊ทํ์ ์ ํ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด๋ฉฐ ๊ทธ๋ค์ ์๊ฒฌ์ ๋ชจ๋ Microsoft ์ง์์ ์ง๋จ์ ์งํ๋ณด๋ค ํจ์ฌ ๋ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด ์ฌ๋๋ค์ Microsoft์ ๋ฌ๋ฆฌ ์ค์ ๋ก .NET์์ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ํญ๋ชฉ์ ๋น๋ํ๊ณ ์์ผ๋ฉฐ .NET Core๊ฐ ๋ฌด์์ด๋ ์ํ๋ ๊ฒฝ์ฐ ๊ทธ ์ ์ฉ์ฑ์ ์ค๋จํด์ผํฉ๋๋ค. ์๋ฌด๋ ๋น์ ์๊ฒ ์์ ํ ์ฌ ์์ฑ์ ์ํด .NET์ ๋ฒ๋ฆฌ๋ผ๊ณ ์๊ตฌํ์ง ์์์ต๋๋ค. ๋น์ ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ฒด .NET ํ๋ ์ ์ํฌ๋ฅผ ํฌํ ํ์ ์๋ ์์ต๋๋ค. ์ง๊ธ ์ฏค์ด๋ฉด ๋๋ฌ์ ๊ฒ์ ๋๋ค.
fwiw, CSLA .NET ์ ๋ชจ๋ฐ์ผ ๊ฐ์ฒด์ ๊ฐ๋ ์ ๊ธฐ๋ฐํ๊ธฐ ๋๋ฌธ์ ์์ ์ถฉ์ค๋ ์ง๋ ฌํ์ ์์กดํฉ๋๋ค.
Silverlight๊ฐ ๋์ค๊ณ BinaryFormatter ๋๋ NetDataContractSerializer๊ฐ ์์์ ๋ _and_๋ ์ด๋ฌํ ๋ชจ๋ ๋ถ์พํ ๋ฐ์ฌ ์ ํ์ด ์์๊ธฐ ๋๋ฌธ์ ์ต์ํ์ ๋ฐ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ BF ๋๋ NDCS์ ์์กดํ์ง ์๋ ์์ฒด ์ง๋ ฌ ๋ณํ๊ธฐ ๋ฅผ ๊ตฌํํ์ต๋๋ค.
Silverlight ์ดํ ์ธ๊ณ์์๋ BF / NDCS๋ฅผ UWP, WinRT, .NET Core ๋ฑ์์ ์์ ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋จ์ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ์์ ํ ์ถฉ์ค๋ ์ง๋ ฌํ ๊ธฐ๊ฐ ์กด์ฌํด์ผํ๋ค๋ ์ฃผ์ฅ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง .NET์ ๋ชจ๋ ๋ค์ํ ํ์ ์ ์กด์ฌํ๋ค๋ฉด ์ ๋ง ์ ์ฉํฉ๋๋ค (์ ์ด๋ imo).
@rockfordlhotka @opinionmachine @eiriktsarpalis ๋ ๋ง์ ์ฌ๋๋ค์ด ๋๊ฐ์ด ๋๋ผ๋ ๊ฒ์ ๋ฃ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค . ์ด ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ๋จ์ ๋ฐ๋ผ corefx ํ์ด ๋ ์ด์ ๋ชจ๋ํฐ๋งํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ @forki์์ ์ธ๊ธ ํ ๋ฐ์ ๊ฐ์ด DOTNET / coreclr # 2715์ ๋ํ ์ฐ๋ ค๋ฅผ ์ ํ ์ ์ข์ ๊ฑธ
์ง๋ ฌํ (๋ฐ appdomains)๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ๋์ฐํ ์์ด๋์ด๋ผ๋ ๋ฐ ๋์ํด์ผํฉ๋๋ค. ๋๋ ๊ทธ ๊ฒฐ์ ์ด ์ ์๊ฐ๋์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ง๋ก ๋๋ฅผ ์ป๋ ๊ฒ์ MS๊ฐ appdomains ๋ฑ์ ์ง์ํ๋ ๋ฐ ํ์ํ ์ฝ๋๋ฅผ ๊ณต๊ฐํ์ง ์๊ณ ์ปค๋ฎค๋ํฐ์ ๋งก๊ฒจ์ ๊ทธ๋ค์ด ํ ์ผ์ ์ฒ๋ฆฌํ๋ค๋ ๊ฒ์ ๋๋ค.
coreclr์ด .net์ "์๋ฒ"๋ฒ์ ์ด์ด์ผํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋ง์ ์๋ฒ ๊ธฐ๋ฅ์ด ๋ฐ๋ฅ์ ๋จ์ ์์ต๋๋ค.
์ ์ ํ ์ฌ๋ก : StackTrace / StackFrame์ ์ผ๋ถ ๊ฐ๋ฐ์์ ์ํด "์ค์ฉ"๋์๊ณ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์๊ธฐ ๋๋ฌธ์ corefx์์ ์ ์ธํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค (MS์ ๋ฐ๋ฅด๋ฉด). ๋๋ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ๋ํด ๊ทธ๋ค์ ๊ฐ๊ฐ์ ๋๋ฌํ๋ค๊ณ ๋ฏฟ์ต๋๋ค (์์ฒญ๋ ๋ฐ๋ฐ ํ์) ๊ทธ๋ฌ๋ ๋ด ๋ง์ ์ ๋ง๋ก? ๋๊ฐ์ด ๋ฌผ๊ฑด์ ์๊ฐํฉ๋๊น?
๊ทธ๋งํ ๊ฐ์น๋ .net ์ฝ์ด๊ฐ ์ ๋ง ๋ง์กฑ์ค๋ฝ๊ณ .net์ ํฐ ์ง์ ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ฑ๋ฅ ํฅ์์ ํ๋ฅญํ๋ฉฐ ์ฌ์ ํ ๋ด๊ฐ ๊ด์ฌ์ ๊ฐ๋ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ ํฌ๋ก์ค ํ๋ซํผ์ ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ๊ฐ์ง ์ ์ผํ ๋ฌธ์ ์ ๋๋ค. ์ ์ ํ ๊ณณ์ ๊ธฐ๋ฅ์ ์ญ์ ํ๋ ๋ฐ๋ ๋ง์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ต์ํ์ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ผ๋ง๋ ์ฑ๊ณต์ ์ผ๋ก ์ด๋ํ๋์ง ์ดํด๋ณด์ธ์. .net์ด ์ต์ํ์ ๋์์ธ์ด์ด์ผํ๋ค๋ ๋ง์ ์๋๋๋ค. ๊ทธ๊ฑด ์ฐ์ค๊ฝ ์ค๋ฌ์ธ ๊ฒ์ ๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ต์ํ์ ๋์์ธ์ ๋์ํ์ง ์์ต๋๋ค.ํ์ง๋ง ์ ๊ฐ ๋งํ๊ณ ์ํ๋ ๊ฒ์ MS๊ฐ ํน์ ๊ธฐ๋ฅ์ ๋จ์ด ๋จ๋ ธ๋ค ๊ณ ๋น๋ํด์๋ ์๋๋ค๋ ๊ฒ์ ๋๋ค.
@SamuelCox , ๊ฐ์ฌํฉ๋๋ค! :-)
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋งํ์ง๋ง ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก .NET Core์์ API๊ฐ ๋๋ฝ๋์์ต๋๋ค. ์ด๋ฌํ ํ์ ์ค ์ผ๋ถ๋ ์ฝ๊ฒ ๊ณ ์น ์ ์์ต๋๋ค (์ฐ๋ฆฌ๋ ๊ณ ์น ์ ์์ต๋๋ค). ์ผ๋ถ๋ ๊ณ ์น๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋น์ ์ด ๊ฒช๊ณ ์๋ ๋ฌธ์ ๋ค (์ง๋ ฌํ์ ๊ดํ์ด ์ ์ฒด ์ฐ๋ ๋ ์ธํธ์ ๊ฐ์)์ ๋ํด ์ฌ๋ฌ๋ถ์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฌ๋ฌ๋ถ์ ์๋๋ฆฌ์ค๋ฅผ ์ฐจ๋จ ํด์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ถ์ต๋๋ค.
๋จ์ผ ํ๋ ์ ์ํฌ์ ์ฌ๋ฌ ๋ฒ์ ์์ ์์ ๊ฐ์ฒด ๊ทธ๋ํ์ ์ด์ง ์ง๋ ฌํ๋ ์ด๋ ต์ต๋๋ค. ์๋ก ๋ค๋ฅธ ํ๋ ์ ์ํฌ์์ ๋ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ 'ํ๋ค๋ค'๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์์ ์ ์ํํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ผ ๋ณด์, ์ฑ๋ฅ, ์ ๋ขฐ์ฑ ๋ฑ ํ๋ซํผ์ ๋ค๋ฅธ ๋ชฉํ (์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ณต์ ํ๋ ๋ชฉํ)์ ๋ํด ์๋นํ ๊ด๋ฒ์ํ ์ํฅ์ ๋ฏธ์น๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
Json.NET + TypeNameHandling.All + PreserveReferencesHandling.All + MemberSerialization.Fields๋ ๊ฑฐ์ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. FormatterServices.GetUninitializedObject๋ ์์ง๋ง ์์ฑ์๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผํฉ๋๋ค.
FormatterServices.GetUninitializedObject๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ์ ๊ฐ ์๊ฐํ๋ ํต์ฌ ๋ฌธ์ ์ ๋๋ค. ์ธ๋ถ ๋ฆฌํ๋ ์ ๊ธฐ๋ฐ ์ง๋ ฌํ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํฐ ๋์์ด ๋ ์ ์์ง๋ง ์ด๋ฌํ ํ๋ ์ ์ํฌ๋ฅผ ์์ฑํ๋ ค๋ฉด์ด ํน์ API๊ฐ ์์ด์ผํฉ๋๋ค. CoreCLR ํ์ ๋ํ ์ ์ ๊ถ์ฅ ์ฌํญ์์ด API๋ฅผ ๋ค์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
์ด๋ ์์ ์์ .NET ์ปค๋ฎค๋ํฐ (์์ ์ ๋๋ ๊ธฐํ)๋ ํญ์ ์์ ์ก๊ณ ์๋ Microsoft์ ์์กดํ๋ ๊ฒ์ ์ค๋จํด์ผ ํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ํ ์์ฒญ๋ ์๊ตฌ ์ฌํญ์ด ์๊ณ ์ฌ์ฉํ ์์๋ ๊ฒ์ผ๋ก ๊ฝค ์ค๋ซ๋์ ์๋ ค์ ธ ์์๋ค๋ฉด, ๋์์ ์ ๊ณตํ๊ธฐ์ํ ์ปค๋ฎค๋ํฐ ํ๋์ด ์์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? Json.NET์ ์ปค๋ฎค๋ํฐ ๋์์ด๋ฉฐ ์ฐ๋ฆฌ๋ ํญ์ ๊ทธ๊ฒ์ ์ฌ์ฉํฉ๋๋ค. ์์ค ์ฝ๋๋ ์ฐธ์กฐ ์์ค ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ํ๋ซํผ์์๋ ์ ์๋ํ๋ ๊ฒ ๊ฐ๊ณ .NET์์๋ ์ ์๋ํ๋ค๊ณ ํ์ ํฉ๋๋ค. ์ ๊ฐ๋ณด๊ธฐ์ ์ด๊ฒ์ ํ๋ก์ ํธ๋ฅผ ์์ฑ ํ ์์๋ ์ต๊ณ ์ ๊ธฐํ์ ๋๋ค (์๊ตฌ๊ฐ์๋ ๊ฒ ๊ฐ์). ๊ทธ ๊ณต๋ฐฑ์ ์ปค๋ฎค๋ํฐ ๋์์ผ๋ก ์ฑ์ฐ๊ธฐ ์ด๊ธฐ์
@thecodejunkie ๋ฅผ ์ํ์ง๋ง,์ด๋ฅผ ์ํด ์ ์ ํ API๋ฅผ ๋ ธ์ถํ๋ ค๋ฉด ์ฌ์ ํ ๋ฐํ์์ด ํ์ํฉ๋๋ค.
์ฐธ๊ณ : ์ด๊ฒ์ .NET Core์์ ์๋ํฉ๋๋ค : Type appDomainType = Type.GetType("System.AppDomain");
. ๊ทธ๋ฆฌ๊ณ ๋ค, ๋ง์ ์ผ์ ํ ์ ์์ต๋๋ค ....
ํ๋ฐํธ ์๋ ์๋ฒ ์๋ต ์ฑ์ 30 % ํฅ์ ์์ผฐ๊ณ , ์ต๋๋ก๋์ 12 ๊ฐ ์ฝ์ด์์ ์ต๋๋ก๋์ 2 ๊ฐ ์ฝ์ด๋ก ์ค์์ผ๋ฉฐ, redis ์บ์ ํฌ๊ธฐ๋ฅผ 1.7Gb์์ 350Mb๋ก ์ค์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก Azure ํธ์คํ ์ 20 % ์ค์์ต๋๋ค (๋นํธ ๋ ์ง์ง)
BinaryFormatter๋ฅผ ์ง์ํ์ต๋๋ค!
netdatacontractserializer๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
BinaryFormatter๋ฅผ ์ฌ์ฉํ๋ฉด .Net 4.6.1์ด ํจ์ฌ ๋๋ ค์ง์ ๋ํ ๋ต๋ณ์ ์ฐพ๊ณ ์์ต๋๋ค.
์ด๋ฌํ API๊ฐ ๋ค์ ๋์์ฌ ๊ฒ์ด๋ผ๋ ์ ์ ์ดํดํ๊ณ ์์ต๋๋ค (์ง๋ ฌํ). ์ด์์ ์ด์ง ์๊ณ ๋ถ์์ง๊ธฐ ์ฌ์ด ๋ฌธ์ ๊ฐ ์์ง๋ง ์ต์ํ ๊ธฐ์กด ์ฝ๋๊ฐ ๊ณ์ ์คํ๋๋๋กํด์ผํฉ๋๋ค.
์ฝ์ด ํ๋ ์ ์ํฌ๋ฅผ์ํ ๋ ๋ค๋ฅธ ๊ฐ๋จํ ๊ฐ์ฒด ์ง๋ ฌ ๋ณํ๊ธฐ๋ฅผ ์ค๊ณํ๋ ๊ฒ๋ ๊ฐ์น๊ฐ ์์ต๋๋ค. ํ๋๋ ๊ฒฝ๋์ด์ง๋ง ์์คํ ๊ฐ ๋ฐ ์ ์ฌ์ ์ผ๋ก ๋ฒ์ ๊ฐ ๋ฌธ์ ์ ๋ํด ๋ ํ๋ ฅ์ ์ ๋๋ค.
์ทจ์ฝ์ฑ ์ธ์๋ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@blowdart WRT ๋ณด์, https://blog.scrt.ch/2016/05/12/net-serialiception/ ๊ณผ ๊ฐ์ ๊ฒ์ ์๋ฏธ
๋ค, ๊ทธ๋ฐ ์ข ๋ฅ์ ๋๋ค. ์ ํ์ ํฌํจํ๋ ์ง๋ ฌํ ํ์์ Java๊ฐ ์ฌํด ๋ฐ๊ฒฌ ํ ๊ฒ์ฒ๋ผ ์ํํฉ๋๋ค. ์ ์ฒด ์ทจ์ฝ์ ํด๋์ค๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ์ ์ด์ง ์ง๋ ฌํ๋ฅผ ์ญ์ ํ์ ๋ ๋งค์ฐ ๊ธฐ๋ปค์ต๋๋ค.
ํธ์ ๋ด์ ๊ฐ๊ธฐ
Serializer๋ ๋ฌผ๊ฑด์ ๋ณด๋ด๋ ๊ฒ๋ฟ๋ง ์๋๋ผ in-proc์๋ ํ์ํฉ๋๋ค.
๋ฐ์ด๋๋ฆฌ ์๋ฆฌ์ผ ๋ผ์ด์ ๋ ์ ์ ํ๊ฒ ์ํ๋๋ฉด ์ฒ๋ฆฌ์ค์ธ ์์ฒ๋ง ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ๋ ์ ์ฒด ๋ค์ดํฐ๋ธ ๊ฐ์ฒด ํ๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋ฉ๋๋ค.
์ด๊ฒ ์ข ๋ด:
https://www.infoq.com/articles/Big-Memory-Part-2
์ง๋ ฌํ API๋ ์ ์์ ์ธ ํด๋ฌ์คํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค.
๊ฐ์ฒด ์ธ์คํด์ค CLR-> ํ
์คํธ-> CLR์ ํ
๋ ํฌํธํ๋ ๊ฒ์ ๋งค์ฐ ๋ถํธํ๋ฉฐ ์์ฒญ๋ ์ค๋ฒ ํค๋์
๋๋ค.
๋งค์ฐ ๋๋ฆฌ๊ณ ๋ฐ์ดํฐ ๊ทธ๋จ์ด ๊ฑฐ๋ํ๊ธฐ ๋๋ฌธ์ BinaryFormatter๋ฅผ ๊บผ๋ด๋ ๊ฒ์ ์ค์๊ฐ ์๋ ์๋ ์์ง๋ง
์ด๋ ์ ์ฒด CLR ์ง๋ ฌํ ์๋ฏธ ์ฒด๊ณ๋ฅผ ์ง์ํ๋ NFX.Slim ์ธ์ ์์ฅ์์ ์ ์ผํ ์ง๋ ฌ ๋ณํ๊ธฐ์์ต๋๋ค.
์์ธํ ์๋ ๋ฐ ํฌ๊ธฐ ์ฐจํธ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
http://aumcode.github.io/serbench/
[OnSer / Deser] ์ ํ๊ตฐ์ผ๋ก ISerializable์ ํ๋ซํผ ๋ด ์๊ฐ ์ด๋์ ๋ง์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ด์ NET๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์๋ ์๋๋๋ค. ๋ณด๊ดํ์ง ์์ผ์๊ฒ ์ต๋๊น?
์ ์ด๋ ๋ณต์กํ ์ปฌ๋ ์
(์ : ์ฌ์ )์์ ์ง์ํฉ๋๋ค. ์ ํ ์ด๋ ต์ง ์์ต๋๋ค.
๋ชจ๋ ์ฌ๋์ด JSON์ ์ฌ์ฉํ๋๋ก ๋ง๋๋ ๊ฒ์ ๋ฐ์ด๋๋ฆฌ ์ง๋ ฌ ๋ณํ๊ธฐ (BinaryFormatter๊ฐ ์๋)๋ณด๋ค ์๊ฐ์ด ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ ๋์ ์ผ๋ก ๋์ ์๊ฐ์
๋๋ค.
๋ชจ๋๊ฐ ๋น์ฆ๋์ค ๋ก์ง์์ด ํธ์ํฐ์ ์ ์ฌํ ์ฑ์ ๋ง๋ค๊ณ ์๋ ๊ฒ ๊ฐ๋์?
@itadapter ๋ ์ ํํ ์์๋ ๋ํธ๊ฐ ํ๋ ์๋๋ฐ, ์ด๋ JSON.Net์ด ๋ง์์์ ์ ์ผํ ์ง๋ ฌํ ๊ฒ์์ด ์๋๋ผ๋ ๊ฒ์ ๋๋ค. MsgPack, Protobuf ๋ฐ Microsoft์ ์์ฒด Bond๋ ์์ต๋๋ค. (ํธ์ง : ๋ ๋ฒ์งธ ๋งํฌ๋ Protobuf๋ฅผ ํธ์ถํฉ๋๋ค). Json์ด ์ ์ผํ ์ต์ ์ ์๋๋๋ค. ๊ทธ๋๋ ํฅ๋ฏธ๋ก์ด ์๋ฏธ๋ก (์์ธ)์ผ๋ก .Net ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ๋ ๋ฐ์๋ ์ฌ์ ํ ํฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฟก ๋นต๋จ
์, ๋ฌผ๋ก ์
๋๋ค. ์๋ ์ฐจํธ์์ ๋ณผ ์ ์๋ฏ์ด JIL์ ๊ฐ์ฅ ๋น ๋ฅธ JSON ์ธ๋ฆด ๋ผ์ด์ ์ด์ง๋ง ํ
์คํธ ๊ธฐ๋ฐ ์๋ฆฌ์ผ ๋ผ์ด์ ๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฑด๋๋ฆด ์ ์์ต๋๋ค. Protobuf๋ ์ง์ ํ ๋คํ์ฑ๊ณผ ๋ณต์กํ ๊ทธ๋ํ๋ฅผ ์ง์ํ์ง ๋ชปํ๋ ๋์ ๋งค์ฐ ๋น ๋ฆ
๋๋ค.
๋ด๊ฐ ๋งํ๋ ๊ฒ์ :
์ธ๊ธฐ์๋ serializer๋ฅผ ๋ณด์ฌ์ฃผ๋ "Typical Person"์ ๋ฒค์น ๋งํฌ :
http://aumcode.github.io/serbench/Specimens_Typical_Person/web/overview-charts.htm
์ด ์ค๋ ๋์ ๋๊ตฐ๊ฐ๊ฐ ์์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ISerializable ๋ฑ์ ๋ฐ์ด๋๋ฆฌ ์ง๋ ฌ ๋ณํ๊ธฐ๊ฐ corefx์์ ์ ๊ณต๋์์ต๋๋ค.
https://github.com/dotnet/corefx/tree/master/src/System.Runtime.Serialization.Formatters
@zhenlan ๋ด๊ฐ ์๊ฐํ๋ .NetStandard2.0 ์์ ์ ์ผ๋ถ์ ๋๊น?
@ RichiCoder1 ๋ค, ๋ง์ต๋๋ค.
@zhenlan์ ํ๋ฅญํฉ๋๋ค!
@zhenlan Standard ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์ ์ฌ์ฉํ ์์๋ ์ง๋ ฌํ ๊ฐ๋ฅ ์์ฑ์ ์ฐพ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋์น๊ณ ์์ต๋๊น?
@justinhelgerson ๊ฑฐ๊ธฐ ์์ด์ผํฉ๋๋ค.
๊ณต์ง ์ฌํญ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ง์นจ์ ๋ฐ๋ผ 2.0 Preview1 SDK๋ฅผ ์ค์น ํ์ต๋๊น?
.NET Core ํ๋ก์ ํธ๋ฅผ ๋ง๋ ํ .csproj ํ์ผ์ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ ๊ฒฝ์ฐ <TargetFramework>netstandard2.0</TargetFramework>
, ์ฝ์ ์ฑ์ ๋ง๋ ๊ฒฝ์ฐ <TargetFramework>netcoreapp2.0</TargetFramework>
์๋์ง ํ์ธํ ์ ์์ต๋๊น?
BTW,์ด ์ค๋ ๋์ ๋ง์ ์ฌ๋๋ค์ด ์ด์ง ์ง๋ ฌ ๋ณํ๊ธฐ์ ๊ด์ฌ์ด ์์ผ๋ฏ๋ก .NET Core 2.0์ [Serializable] ์ถ์์ ๋ํ dotnet / corefx # 19119์ ๋ํ ํ ๋ก ์ ๊ด์ฌ์ด์์ ์ ์์ต๋๋ค. ์๊ฒฌ์ด ์์ผ์๋ฉด ์ ํฌ์๊ฒ ์๋ ค์ฃผ์ญ์์ค.
@zhenlan ๋น ๋ฅธ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. NuGet์ ํตํด ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ค์นํ์ง๋ง .csproj ํ์ผ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ์ง ์์์ต๋๋ค. ๊ทธ๊ฒ ํธ๋ฆญ์ด์์ต๋๋ค! ์ถ์์ ๋ํด ์ฝ๊ณ ์ฌ์ฉ ์ฌ๋ก์ ์ํฅ์ ๋ฏธ์น ๊ฒฝ์ฐ ์ ๋ ฅ์ ์ ๊ณต ํ ๊ฒ์ ๋๋ค.
@justinhelgerson , ์ค์ผ์ผ ๋ฐฑ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ 1์๋ ์์ง๋ง (์์ง ์์ ์ค์ ๋๋ค!), ๊ณง ์ผ์ผ ๋น๋ ๋๋ ํฅํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ์๋ ํ ์์์ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
peope๊ฐ ์ค์ ๋ก .NET Core๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํฉ๋๊น, ์๋๋ฉด Silverlight์ ๊ฐ์ ์๊ฐ ๋ญ๋น์ ๋๊น? ์ฌ๋๋ค์ด ์ค์ ๋ก .NET Core๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์ ๋๋ก ์๋ํ๋๋ก ๋ง๋์ธ์. ์ฌ๋๋ค์ด ์ง๋ ฌํ๊ฐ ํ์ํ๋ฉด ๊ตฌ์ถํ์ญ์์ค. ์ด๋ค์ ์ค์ ๋ก ๊ทํ์ ์ ํ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด๋ฉฐ ๊ทธ๋ค์ ์๊ฒฌ์ ๋ชจ๋ Microsoft ์ง์์ ์ง๋จ์ ์งํ๋ณด๋ค ํจ์ฌ ๋ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด ์ฌ๋๋ค์ Microsoft์ ๋ฌ๋ฆฌ ์ค์ ๋ก .NET์์ ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ํญ๋ชฉ์ ๋น๋ํ๊ณ ์์ผ๋ฉฐ .NET Core๊ฐ ๋ฌด์์ด๋ ์ํ๋ ๊ฒฝ์ฐ ๊ทธ ์ ์ฉ์ฑ์ ์ค๋จํด์ผํฉ๋๋ค. ์๋ฌด๋ ๋น์ ์๊ฒ ์์ ํ ์ฌ ์์ฑ์ ์ํด .NET์ ๋ฒ๋ฆฌ๋ผ๊ณ ์๊ตฌํ์ง ์์์ต๋๋ค. ๋น์ ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ฒด .NET ํ๋ ์ ์ํฌ๋ฅผ ํฌํ ํ์ ์๋ ์์ต๋๋ค. ์ง๊ธ ์ฏค์ด๋ฉด ๋๋ฌ์ ๊ฒ์ ๋๋ค.