๋ง์ง๋ง ์ปค๋ฎค๋ํฐ ์คํ ๋์
์ดํ project.json
๋จ๊ณ์ ํ์ง์ ๋ํ ๋ฐํ๊ฐ ์์์ต๋๋ค.
์ฌ๊ธฐ์ ๋ด๊ฐ ๋ณผ ์ ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ๋ช ๊ฐ์ง ์ค๋ช ์ด ํ์ํฉ๋๋ค.
project.json
(nuget.json?) ๊ฐ ์์ผ๋ฉด NuGet ํญ๋ชฉ์ ์ด๋ป๊ฒ ๋ฉ๋๊น?project.json
์ ๋ํ ์ต๊ณ ์ ๋ฐ๋ชจ ๊ธฐ๋ฅ ์ค ํ๋์
๋๋ค.์ด๋ฌํ ์ง๋ฌธ์ ๋ํ ๋ช ํํ ๋ต๋ณ์ด ๊ฐ๋ฅํฉ๋๊น?
๊ฐ์ฌํฉ๋๋ค,
์คํ ๋์ ์์ Damian์ Nuget ๊ด๋ จ ํญ๋ชฉ์ด ํ์ฌ packages.config๋ฅผ ๋์ฒดํ ํญ๋ชฉ์ผ๋ก ์ด๋ํ ๊ฒ์ด๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค. ๋ถ๋ช ํ ์ด๋ฌํ ๊ฒฐ์ ์ ๊ณต์ ํ ๊ธธ์ ๊ฐ๊ณ ์์ผ๋ฉฐ ์ด ์์ ์์ ๊ตฌ์ฒด์ ์ธ ๋ต๋ณ์ ์ป์ ์ ์์์ง๋ ์๋ฌธ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ "JSON์ด ์ด๋ฌํ ์ข ์์ฑ์ ํํํ๋ ๊ฒ์ด ๋ ๊ฐ๋จํ๋ค"๋ ๋ฐ ๋์ํ์ง ์์ต๋๋ค. ์ฅ๋จ์ ์ด ์์ต๋๋ค. https://gist.github.com/darrelmiller/07fed784d2c20de9f5d3719977167181์ ์ฐธ์กฐ
_if_๊ฐ nuget.json์ผ๋ก ์ด๋ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ํฉ๋๋ค. ์ด์จ๋ dev ํธ์ง์ด ๊ฐ๋ฅํด์ผํ๋ค๊ณ ์๊ฐํ project.Json์ ์ ์ผํ ๋ถ๋ถ์ ๋๋ค.
@darrelmiller Yaml์ ์๋ง๋ ์ฅํฉํ ์ธก๋ฉด์์ ๋ ๋์ ๋์์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด ๋์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด๋ก ์์์ ;).
@sandorfr ์ ๋๋ค. ๊ทธ๋ฌ๋ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ๋ค์ ์ด๋ํ๋ ์ด์ ์ค ํ๋๋ .net ์ํ๊ณ์ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ์ ๋ํ ๊ธฐ์กด์ ์ค์ํ ๋๊ตฌ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด ์๊ฒฌ์ XML์ด ๋ณธ์ง์ ์ผ๋ก ๋์์ง ์๋ค๋ ์ ์ ์ง์ ํ๊ธฐ ์ํด ์ต์์ ํ์์ ์๋ณํ๋ ค๊ณ ์๋ํ๊ณ ์๋ณํ๋ ค๋ ๊ฒ์ด ์๋๋๋ค.
๋ค, ์ด๋ฒ ์ฃผ ์ต์ ์ ์์์ ๋๋ค. ์๊ฐ์ ๋๋๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค... :(์ค์ ๋ก Xml์ ๋์์ง ์์ง๋ง msbuild๋... ๊ทธ๋ฆฌ๊ณ msbuild xml ๊ธฐ๋ณธ ํ๋ก์ ํธ๋ ๊ทํ๊ฐ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ๋งค๋๋ฝ์ง ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ๋ค์ ์ด๋ํ๋ ์ด์ ์ค ํ๋๋ .net ์ํ๊ณ์ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ์ ๋ํ ๊ธฐ์กด์ ์ค์ํ ๋๊ตฌ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์๋๊ฐ msbuild์ ๊ฐ์ด ์ํ๋ฌผ์ ์์ผ๋ก ์ด๋ฐํ๋ ค๋ ์๋๋ผ๋ฉด ๊ทธ๊ฒ์ด ์์ ํ ์๋ก์ด ๊ฒ์์ ๋ํ๋ด๊ธฐ ์ํด ๋ชจ๋ ๊ฒ์ " core " ์ ๋ฏธ์ฌ๋ฅผ ๋ถ์ธ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ ๊ณผ์ ์ด 2๋ ๋๊ฒ ๋๋ฌด ๊ณ ํต์ค๋ฌ์ ์ง๋ง ์๋ก์ด ์ถ๊ฐ์ ๊ฐ์ ์ด ๋ชจ๋ ์ํ๊ณ๋ฅผ ๋ค๋ฅธ ์ํ๊ณ์ ์ผ์น์ํค๊ณ ๋ชจ๋ ์ ๋นํ ์ด์ ๊ฐ ์๋ ๋ณํ์๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋๋ค์ด ๊ด์ฐฎ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์๊ธฐ ์ํ ๋ฌผ์ง ๊ธฐ์ ๊ฐ๋ฐ์๋ค์ด ๋น๊ณต๊ฐ๋ก ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ธฐ ์์ํ๊ณ ์ฐ๋ฆฌ๋ ์ด์ํด์ผ ํ ๋ง์ ์ง์ ๋ณด๊ณ ์์ต๋๋ค.
XML ๊ธฐ๋ฐ ๊ตฌ์ฑ์ด ์๋ ์ํ๊ณ๋ ๋ง์ง ์์ต๋๋ค. ์ค์ ๋ก ์๋ก ์ค๊ณ๋ ๋ชจ๋ ์ํ๊ณ๋ ๋ค๋ฅธ ํ์(YAML, JSON ๋ฑ)์ ์์ฉํ๊ณ ์์ต๋๋ค. ์์ ๋ฏธ๋์ด์ ์๋ ๋ชจ๋ ์ฌ๋๋ค์ ๋ฐ์์ ๋ณด์ธ์. ์ด ๋ณํ๋ฅผ ์ข์ํ๋ ์ฌ๋์ ๋ง์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ธ์ ์ผ๋ก ์ ๊ณต๋ ํผ๋๋ฐฑ์ด ํ์ ๋ ์ค์ํด ๋ณด์ ๋๋ค. ๊ทธ๊ฒ์ ๋์ ๊ฒ์ด ์๋๋๋ค. ์ด์ ๋ฅผ ์ดํดํ์ง๋ง ์ด ์ํ๊ณ์์ ๊ฒฐ์ ์ด ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ผ ๋ฟ์ ๋๋ค.
์ด๋ฒ์ฃผ ์ต์ ์ ๋ด์ค์ +1. ์ด์ ๋ํ ๋ ผ์๋ ์ด๋์์ ์ด๋ฃจ์ด์ก์ต๋๊น? ๋๋ ์๋ฌด ๊ฒ๋ ์ฐพ์ ์ ์์ผ๋ฉฐ ์ผ๋ฐฉ์ ์ธ ๊ฒฐ์ ์ ๋๋ค.
๋๋ ์ด ๊ฒฐ์ ์ ๋ํ ์ปค๋ฎค๋ํฐ ์ง์์ ๋ณด์ง ๋ชปํ๊ณ ๋ฐ๋๋ ๋ง์ด ํ์ต๋๋ค(๋ง์ง๋ง ๊ณ์ฐ์์ 85%์์ 15%). ์ด๋ค ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋๊ฐ ๊ฒฐ์ ์ ๋ด๋ ธ๋์ง ํ ๋ก ์ ์ด๋ป๊ฒ ์งํ๋๋์?
์ด๊ฒ์ด .NET Core์์ ์์ ์ ์ํํ๋ ๋ฐฉ์์ ๋๊น? ๋น๊ณต๊ฐ ๋ ๊ฑฐ์ ๊ธฐ์ ๋ชฉ๋ก์ ์ง์ํ๊ธฐ ์ํด ๋น๊ณต๊ฐ๋ก ํ์ง์ ์ ํ์ํค์ญ๋๊น?
๋ถ๋ ์์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ project.json์์ .csproj๋ฅผ ๋ง๋๋ VS ํ์ฅ์ ๋ง๋ค์ด ๋ด ์๋ค.
๊ทธ๋ฌ๋ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ์ ๋ชฝ์ผ๋ก ์ฐ๋ฆฌ๋ฅผ ๋๋๋ ค ๋ณด๋ด์ง ๋ง์ญ์์ค. ๊ทธ๊ฒ๋ค์ ๋์ ๋์์ ๋ ๋์ ์๊ฐ์ด์๊ณ ์ฐ๋ฆฌ๋ 10๋ ๋๊ฒ ๋์ ๋ณํฉ๊ณผ ์ด๋ ค์ด ๊ฐ๋ ์ฑ์ ๋ํ ์ธ๊ธ์ ๋ด๊ณ ์์ต๋๋ค. ์ถฉ๋ถ ํด.
๋๋ ๋น์ ์ด ๋๋ฌด ๋น๊ด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฃผ๋ก ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ด๊ฒ์ ๋๋๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ค์ด ๊ทธ๋ค์ ๊ณํ์ ๋ํด ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ฒ ํ๊ณ ์ฐ๋ฆฌ๋ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค. @DamianEdwards ๋ project.json ๋ชจ๋ธ์ ์ข์ ๋ถ๋ถ์ ์ ์งํ๊ณ ์ถ๋ค๊ณ ๋ถ๋ช ํ ๋งํ์ต๋๋ค.
์ ์๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ปดํ์ผ ๋ฉด์์๋ Visual Studio๋ฅผ ์ค์นํ์ง ์๊ณ ๋ ์ปดํ์ผ์ด ๊ฐ๋ฅํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋์๊ฒ ์ค์ ๋ช ๋ น์ด "dotnet build"์ธ์ง "msbuild"์ธ์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ ์ฒด ์๋ฃจ์ ์ ์ปดํ์ผํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ - ์์ง "dotnet cli"์ ์กด์ฌํ์ง ์์ต๋๋ค(์ ์ด๋ ๋ด๊ฐ ์๋ ํ).
์ด๊ฒ์ด ๋ฌ์ฑ๋ ์ ์๋ค๋ฉด, ๋๋ ๊ทธ๋ค์ด ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ด ๋ฌด์์ด๋ ๊ด์ฐฎ์ต๋๋ค. XML์ ํ๋ฅญํ์ง ์์ง๋ง JSON์๋ ๋ถ๋ช ํ ๋จ์ ๋ ์์ต๋๋ค.
ํธ์ง : ์ด๊ฒ์ด .NET Core ๋ฑ์ ๊ธฐ๋ณธ (๊ทธ๋ฆฌ๊ณ ํ๋ฅญํ) ์์ด๋์ด๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
IMHO, ์ฃผ์ ๋ฌธ์ ๋ RTM ์ง์ ์ ์ด๋ฌํ ์ ํ์ ๊ธ๊ฒฉํ ๋ณํ๊ฐ ์ข์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฒ ํ ์๊ฐ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๊ฐ๋ฐ์/ํ์ด ๊ทธ๋ค์ง ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ด ์ง๋ 2๋ ๋์ ํ๊ณ ์๋ project.json ์์คํ ์ ๋ฐ๋ผ ํ์ฌ ์ ํ/๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ ์์ํฌ์ ๋ํด ์๊ฐํด ๋ณด์ธ์. Asp.Net์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ/์ํ/๋ฒ ํ๊ฐ ์๋ RC์ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ณ๊ฒฝ์ ๊ฐ๋ฐ์/ํ์ ์ ๋ขฐ๋ฅผ ๊นจ๋จ๋ฆฝ๋๋ค.
IMHO, ์ฃผ์ ๋ฌธ์ ๋ RTM ์ง์ ์ ์ด๋ฌํ ์ ํ์ ๊ธ๊ฒฉํ ๋ณํ๊ฐ ์ข์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ ์ฒ์์๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง๋ง ๋ด๊ฐ ์ดํดํ๋ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ง๋ ์์ ๊ฒ์ ๋๋ค. ์ด๋ project.json/xproj/csproj ํ์ผ์๋ง ์ํฅ์ ๋ฏธ์น๋ฉฐ ๋ณ๊ฒฝ์ด ์๋์ผ ์ ์๋ค๊ณ ๋งํ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ Visual Studio๋ฅผ ์ ๊ทธ๋ ์ด๋ํ ๋ ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ ๋ฐ์ํ ์ด์ ํ๋ก์ ํธ ๋ง์ด๊ทธ๋ ์ด์ ๋จ๊ณ์ ์ ์ฌํฉ๋๋ค.
BTW ์ ๋ ํญ์ project.json ๋ฐ xproj ํ์ผ(Visual Studio ํ ํ๋ฆฟ์ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค์ ์ผ๋ถ ์ถ๋ ฅ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋๋๋ก ํธ์งํด์ผ ํจ)์ด ์ด์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
BTW ์ ๋ ํญ์ project.json ๋ฐ xproj ํ์ผ(Visual Studio ํ ํ๋ฆฟ์ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค์ ์ผ๋ถ ์ถ๋ ฅ ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋๋๋ก ํธ์งํด์ผ ํจ)์ด ์ด์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ด์ฉ๋ฉด ์ด์ํ ์๋ ์์ง๋ง ๊ทธ๋ค์ ๋ค๋ฅธ ๊ฒ๋ค์ ๋ํด ๋๋ตํฉ๋๋ค. project.json์ .net ํต์ฌ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๋ฐ ํ์ํ ์ ์ผํ ํ์ผ์ด๊ณ xproj๋ Visual Studio๋ผ๋ ๋ ์ ๋๊ตฌ์ ๊ด๋ จ์ด ์์ต๋๋ค. webstorm์ ์ฌ์ฉํ์ฌ ๋ ธ๋ ํ๋ก์ ํธ์์ ์์ ํ๋ ๊ฒฝ์ฐ package.json ๋ฐ .idea์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ผ ๋ฟ์ ๋๋ค. Visual Studio๋ ์ํ๋ ๊ฒฝ์ฐ ์์ฑ ์๋์์ project.json์ ์จ๊ธธ ์ ์๊ณ ๋ชจ๋ ๊ฒ์ ํจ๊ป ํผํฉํ์ง ์๊ณ ์ํ๋ ๊ฒฝ์ฐ ๋ณํฉ๋ ํ๋ ์ดํธ GUI ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋๋ xproj์ ๋ํ ๋ชจ๋ ๊ฒ์ ์์ด ๋ฒ๋ฆฐ ๋๋ฌด ์ค๋ซ๋์ VS Code์ Mac์์์ด ๋ฌผ๊ฑด์ ์ฌ์ฉํด ์์ต๋๋ค. OTOH, Visual Studio์์ ๋๋ฒ๊น ๊ณผ ํจ์ฌ ๋ ๋ง์ ๊ฒ์ ๋์ณค์ต๋๋ค!
๋๋ ๋น์ ์ด ๋๋ฌด ๋น๊ด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฃผ๋ก ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ด๊ฒ์ ๋๋๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค
์๋์, ์ฃ์กํฉ๋๋ค. ์ ๊ฐ ๋๋ฌด ๋น๊ด์ ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. XML์ ์ฝ๋ ๋ณํฉ์ ์ํํ ๋ชจ๋ ์ํฉ, ์ฆ ๋ชจ๋ ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ ํฉํ์ง ์์ ํ์์ ๋๋ค. XML์ ๊ตฌ์ฑ ํ์ผ ๋ฐ ํ๋ก์ ํธ ํ์ผ๊ณผ ๊ฐ์ ๊ฒ์ ์ํด ์ค๊ณ๋์ง ์์์ผ๋ฉฐ ์ ๋ ์ฌ์ฉ๋์ด์๋ ์ ๋ฉ๋๋ค. .NET์ ๋ชจ๋ ์ฌ๋๋ค์ด XML์ด ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํ์ ๋ ๋ค์ ๋น๋๋๋ ๋ถ์ด์ ๊ฒช์์ต๋๋ค.
http://c2.com/cgi/wiki?XmlSucks
http://www.ibm.com/developerworks/xml/library/x-sbxml/index.html
http://nothing-more.blogspot.co.za/2004/10/where-xml-goes-astray.html
์ด์ ๋ชจ๋ ์ฌ๋๋ค์ด JSON์ด ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ ๋ .NET Core๊ฐ ๊ตฌ์ถ๋๊ณ ์์ต๋๋ค. ๋๋ JSON์ด XML๋ณด๋ค ๋ ์ฅ๊ธฐ์ ์ธ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ง๋ง, XML ์ถฉ๋๋ณด๋ค JSON ์ถฉ๋์ ๋ณํฉํ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
ํ๋ก์ ํธ ํ์ผ์ ๋ํ XML ์ฐ๋ ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ์ง ์๋ ์ ์ ํ ๊ณต๊ธฐ๋ฅผ ์ฐพ์๊ณ JSON ํ์ผ์ ์ฝ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ JSON ํ์ผ์ Visual Studio ์ธ๋ถ์์ ์์ ํ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. XML/MSBuild๋ก ๋์๊ฐ๊ณ ์ถ์ง ์์ต๋๋ค.
๋ค, ์ด๊ฒ๋ค์ ์ ๊ฐ์ธ์ ์ธ ๋๋์ด๊ณ ๋ค ์ฃผ๊ด์ ์ ๋๋ค. ํ์ง๋ง ํธ์ํฐ์ ๋ค๋ฅธ ๊ณณ์ ๋๊ธ์ ๋ฐ๋ฅด๋ฉด ์ ๋ ๊ทธ๊ฒ๋ค์ด ๊ณ ๋ฆฝ๋์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์์งํ ๋งํด์, ์ด ๊ฒฐ์ ์ .NET Core์ ์ ์ฒด ๋ฐฉํฅ, ํนํ ์ด์ ๊ฐ์ ์ค์ํ ๊ฒฐ์ ์ด ๋ด๋ ค์ง๋ ๋ฐฉ์์ ์์ ํ ์์ฌํ๊ฒ ๋ง๋ญ๋๋ค.
@DamianEdwards ๋ project.json ๋ชจ๋ธ์ ์ข์ ๋ถ๋ถ์ ์ ์งํ๊ณ ์ถ๋ค๊ณ ๋ถ๋ช ํ ๋งํ์ต๋๋ค.
๋ด ๊ด์ ์์ ๋ณผ ๋ project.json ๋ชจ๋ธ์ ๊ฐ์ฅ ์ข์ ๋ถ๋ถ์ csproj๋, MSBuild๋, XML๋ ์๋๋ผ๋ ์ ์ ๋๋ค. ๊ทธ "์ข์" ๋ถํ์ด ์ ์ง๋ฉ๋๊น? ๋ถ๋ช ํ ์๋๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค์ด ๋ง์นจ๋ด ์๋๋ฅผ ๊น๊ณ ์๋ค๊ณ ๋ฏฟ๊ฒ ๋ ํ, ๊ทธ๊ฒ์ ๋ชจ๋ ์๋ชป๋ ๋ฐฉํฅ์ด์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ์๋ก์ด ๋น๋ ์์คํ , Gulp ๋ฐ project.json ๋ฐ ์ํฉ์ด ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง์ ๋ํด ๋ค์๊ณ , ๊ทธ ๋ค์์๋ ๋ชจ๋ ๊ฐ์ง์์ผ๋ฉฐ ๋ค์ ๊ตฌ์ MSBuild์ธ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
JSON ๋ฐ XML ํ์์ ๋ณํฉ ์ธก๋ฉด์์ ๊ฑฐ์ ๋์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋ค ๋ซ๋ ํ๊ทธ๊ฐ ์์ต๋๋ค(JSON์์๋ ์ค๊ดํธ์ผ ๋ฟ์). ์ด๋ ๋น/ํ๋/๋ค ์๋๋ฆฌ์ค์ ๋ฌธ์ ๊ฐ ์์์ ์๋ฏธํฉ๋๋ค. ๋น JSON ๋ฐฐ์ด์ ํญ๋ชฉ์ด ์๋ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. JSON์ ๋ชฉ๋ก์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ฉด ๋ ์ค์ ๋ณ๊ฒฝํ๋ ๋ ์ผํ์ ์ถ๊ฐ ๋จ์ ์ด ์๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
๊ทธ๊ฒ์ ํผํ๋ ค๋ฉด YAML ๋ฑ์ผ๋ก ์ด๋ํด์ผํฉ๋๋ค.
csproj์ IMO ๋ฌธ์ ๋ XML์ด ์๋๋ผ Visual Studio๊ฐ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ๋ชจ๋ cs ํ์ผ์ด ํฌํจ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ณ ๋๊ตฌ๊ฐ ํ์ผ์ ํญ๋ชฉ์ ์์๋ก ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด ๋ณํฉ์ด ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋ ์ฑ ์ธก๋ฉด์์๋ JSON์ ์ ํธํฉ๋๋ค. ์ฒ์๋ถํฐ project.json์ ์์ฑํ ์ ์์์ต๋๋ค. ๋ ์ด์ csproj๋ก ๊ทธ๋ ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค(csproj์๋ ์์์ ProjectGuid ๋ฑ์ด ํ์ํจ). ๋ฐ๋ผ์ ์ด๋ฅผ ์ํ ๋๊ตฌ/๋ช ๋ น์ค ์ง์์ด ํ์คํ ํ์ํฉ๋๋ค.
๋ด๊ฐ ๋ง์ด ๋ฃ์ง ๋ชปํ ์ด ๋ชจ๋ ๊ฒ์ ๋ํ ๋์ ์ฃผ์ ๊ด์ฌ์ฌ๋ .csproj
ํ๋ก์ ํธ ํ์ผ๋ณด๋ค ์ฐธ์กฐ์ ๊ดํด์ project.json
๊ฐ ํจ์ฌ ๋ ์ ์ธ์ ์ด๋ผ๋ ๊ฒ์
๋๋ค. project.json
ํ์ผ์ ์๋ ์ข
์์ฑ์ ์ฅ์ ๊ณผ ๋ด๊ฐ ์ฐ๋ฆฌ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ด ํ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ๋ฅผ ๊ณ ๋ํ๋ ์ด์ ๋ "์ด ์ข
์์ฑ์ด ํ์ํฉ๋๋ค"๋ผ๊ณ ๋งํ๋ฉด ๋ก์ปฌ ํ๋ก์ ํธ๋ NuGet ํจํค์ง. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ๋ง์ ์ ์ฐ์ฑ๊ณผ ๋ฉ์ง ์๋ก์ด ์ต์
์ ์ ๊ณตํ ๊ฒ์
๋๋ค. ๋์กฐ์ ์ผ๋ก, ํ์ฌ .csproj
ํ์ผ์ ์ฐธ์กฐ๋ ๋์คํฌ์ .dll
ํ์ผ์ ๋ํ ํ๋ ์๋ ๊ฒฝ๋ก์
๋๋ค. ์ง๊ธ์ ๊ธฐ์กด ํ๋ก์ ํธ์ packages.config์ ํญ๋ชฉ์ ์ถ๊ฐํด๋ ์๋ฌด ๊ฒ๋ ํ์ง ์์ต๋๋ค. ํด๋น ํจํค์ง์ ํน์ .dll
์ ๋ํ ์ฐธ์กฐ๋ .csproj
ํ์ผ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. . ์ด๋ Visual Studio ๋ด์ NuGet ๋๊ตฌ๋ฅผ ํตํด ์ํ๋์ง๋ง project.json
ํ์ผ์ ํ ์ค์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ํจ์ฌ ๊ฐ๋จํ ๋ ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค.
๋๋ ํ์ด project.json
ํ์ผ์์ ์ ๊ณตํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ์งํ๊ณ .csproj
ํ์์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ธฐ๋ฅผ ์ํ์ง๋ง project.json
๋ฅผ ํ์ผ๋ก ์ ์งํ๋ ๊ฒ์ ๋ํด์๋ ์ด์ผ๊ธฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋น์ ์ NuGet ํจํค์ง๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ์ ํจ๊ป ํ์ฌ์ ์ํฉ๊ณผ ๋น๊ตํ์ฌ ์ถ๊ฐ ํ ์ ๋ฌด์์ ๋ณผ ์ ์์ต๋๋ค packages.config
๋น์ ์ ์ฌ์ ํ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ถ๊ฐํด์ผํ๊ธฐ ๋๋ฌธ์ ์ด๋์ ๋จ์ง์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค .dll
.csproj
์๋ .csproj
ํ์ผ์ด ๋ฏธ๋๊ฐ ๋๋ค๋ฉด Core ํ์ด ๋๊น์ง ๊ฐ์ project.json
๋๋ nuget.json์ ์ญ์ ํ๊ฑฐ๋ _์์ ํ_ ํธ์ถ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. .csproj
ํ์์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ถ๊ฐํ๋ ๋ณด๋ค ์ ์ธ์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค. JSON ํ์ผ ๋์ XML ํ์ผ์ ํธ์งํด์ผ ์ ์ด ์ ์์ง๋ง(์ ๋ ํ์คํ JSON์ ์ ํธํ์ง๋ง) project.json
์ ์ ์ธ์ ํน์ฑ์ ์๋ ๊ฒ์ ์ ๋ง ๋ถ๋๋ฌ์ด
https://www.surveymonkey.com/r/H6Q88PP ์์ ํผ๋๋ฐฑ์ ์ฃผ์ธ์.
๋ถ๋ช ํ ํ๊ธฐ ์ํด Standup ๋ ธํธ๋ฅผ ์ฝ์ ๋ ํ ๊ฐ์ง ์ต์ ์ nuget install --save ์ผ์ข ์ ์ต์ ์ ๊ฐ๋ ๊ฒ์ ๋๋ค(https://blogs.msdn.microsoft.com/webdev/2016/05/11/ ์ฐธ์กฐ). Notes-from-the-asp-net-community-standup-may-10-2016/). ๋๋ ๊ทธ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง 'intellisense๋ก .json ํ์ผ ํธ์ง'์ ๋์ฒดํ๋ ๊ฒ์ ๋์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ ์์ ์ ์ ธ๋ก ์ ํํ๊ณ ์ถ์ง ์์ ์ฐ๋ฆฌ ์ค ์ผ๋ถ์๊ฒ๋ ํธ์ง๊ธฐ์ ๋จธ๋ฌด๋ฅด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ ์ทจํฅ์ ๊ฐ์ธ์ ์ผ๋ก ๋ ๊ฐ์ง ๊ฒฝํ์ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ ๋๋ค. ์ข ์์ฑ์ ์ถ๊ฐํ๊ธฐ ์ํ ๋ช ๋ น์ค + UI๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
์ ๋ ์ฝ๋์ ๋๋ค. ์๋ํฐ๋ฅผ ๋ ๋๊ณ ์ถ์ง ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๋์ฐํ ๊ฒฐ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ฌ๋ฌ๋ถ์ .NET Core๋ฅผ ์ง์ ์ผ๋ก ๋จ์ํ๊ฒ ๋ง๋ค๊ณ ์ถ๋ค๊ณ ๋งํ์ง๋ง ์ด ๋ณ๊ฒฝ์ ์ํํ์ต๋๋ค. ๋๋ ๋น์ ์ด MSBuild์ ์ผ๋ง๋ ๋ง์ ๋ฆฝ์คํฑ์ ๋ฐ๋ฅด๋ ์๊ดํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ ํ โโMSBuild๊ฐ ๋ ๊ฒ์ด๊ณ ์ธ๋ถ์ธ์ ๊ทธ๊ฒ์ ๋ณด๊ณ ์ฆ์ ๊บผ๋ฒ๋ฆด ๊ฒ์ ๋๋ค. ์์ผ๋ก ์ฝ๊ฒ ํธ์งํ ์ ์๋ ํ์์ ์ ๋ ์๋๋๋ค. ์ด๋ ค์ด ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๊ฐ ์์์ ์๋ ์๊ฒ ์ง๋ง, ํ๋ก์ ํธ ์์คํ ์ ๋จ์ํ ํ๋ก์ ํธ ์์คํ ์ด์์ผ๋ก ๋ง๋ค๋ ค๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๋๋ค์ด ๋น๋์์ ๋ ๋ณต์กํ ์์ ์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ฑฐ๋ msbuild๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. project.json์ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ ์ง๊ธ์ ์ ๋ง ๋ถ๋๋ฝ์ต๋๋ค.
MSBUILD ํ์ผ์์ ๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ์ธ์ฉ๋ฌธ์ ๋ฌด์์ ๋๊น?
๋๋ ์ต๊ทผ์ csproj ํ์ผ๋ก ๋ง์ ์๊ฐ์ ๋ณด๋ด์ผ ํ์ต๋๋ค. ๊ทธ๋ค์ Ant/Maven๊ณผ ์๋นํ ๋น์ทํ๊ฒ ๋ณด์ด๊ณ ํ๋ํฉ๋๋ค. ์ด๊ฒ์ ๊ทธ๋ค์๊ฒ ์ ๋ฆฌํ ์ ์ด ์๋๋๋ค.
Ant/Maven์ ๋ง์ ์ฌ๋์ ๋ฐ์๊ณ ์ดํ ๋ง์ Java ๊ฐ๋ฐ์๋ค์๊ฒ ๋ฏธ์์ ๋ฐ์์ต๋๋ค. XML์ ์ฒ๋ฆฌํด์ผ ํ ๋งค์ฐ ์ฅํฉํ ๊ตฌ๋ฌธ์ ๋๋ค.
ํ์ง๋ง ์ง์ง ์ด์ธ์๋ ๋ฝ์ธ(lockin)์ด๋ค. ์, msbuild๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์ํํ ์ ์์ง๋ง ๊ตฌ๋ฌธ์ ์ค์ ๋ก ๊ฐ๋ฐ์๊ฐ ์ฝ๊ธฐ/ํธ์งํ๋ ๊ฒ์ด ์๋๋ผ IDE์์ ์ํ๋ฅผ ์ง๋ ฌํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ช ๋ น์ค ์คํ๊ธฐ๊ฐ ์๋ค๊ณ ํด์ ํ์์ด ๊ฐ๋ฐ์์๊ฒ ์น์ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. VS์ ๋จธ๋ฌด๋ฅด๋ ํ ์ค์ ๋ก ๋์น ์ฑ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๋ ๋ ์๋ง์ ๋ ์ด์ ํธ์ํ์ง ์์ต๋๋ค. csproj ํ์ผ์ .Net์ด Java์์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ผ๋ฉด ํ๋ ํ ๊ฐ์ง์ ๋๋ค.
MSBuild์ Visual Studio๊ฐ ํ์ฌ MSBuild๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ์๋ ๊ฐ MSBuild ํ์ผ์ ์ง์ ํธ์งํด ์์ผ๋ฉฐ ๋ชจ๋ ํ๋ก์ ํธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์: https://github.com/tavis-software/Tavis.home/blob/master/build/Build.proj
Visual Studio๊ฐ ์์ฑํ๋ csproj ํ์ผ์ ๊ฝค ๋ถ์พํ์ง๋ง MSBuild์์ ์ด๋ฅผ ๋น๋ํ๋ ๊ฒ์ ์ฝ๋ ์์ฑ๊ธฐ๊ฐ ๊ทธ๊ฒ์ผ๋ก ๋ชป์๊ธด ์ฝ๋๋ฅผ ํ ๋ฒ ์์ฑํ๋ ๊ฒ์ ๋ณด์๊ธฐ ๋๋ฌธ์ C#์ด ์ฐ๋ ๊ธฐ๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
@darrelmiller ๋์ํฉ๋๋ค.
์๊ฐ์ 6๊ฐ์ ์์ผ๋ก ์ด๋ํ์ฌ "๊ทธ๋ ๊ฒ ๋งํ" ์๊ฐ์ธ์ง ๋๋ "์ด์์ ํผํ" ์๊ฐ์ธ์ง ๋ด ์๋ค.
๊ทธ์ ๋ธ๋ก๊ทธ์์ @shawnwildermuth ํธ์ถ์ ๋ฐ๋ผ ๋๋ ๋ด ์์ ์ 2์ผํธ๋ฅผ ๋์ง ๊ฒ์ ๋๋ค:
์ด๊ฒ ์ ๊ทธ๋ ๊ฒ ํฐ์ผ์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค์. ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก XML ๊ธฐ๋ฐ csproj๋ก ๋ค์ ์ด๋ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์ ๋ ๊ฐ๋ฐ์๋ก์ ํธํ์ฑ์ ๋ ๊ด์ฌ์ด ์๊ณ ์ด๊ฒ์ด ํต์ฌ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ MSBuild๋ก ๋์๊ฐ๋ ๊ฒ์ ํ๋ฅญํ ์กฐ์น๋ผ๊ณ ์๊ฐํฉ๋๋ค. MSBuild๋ ์๋ํ๋ฉฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์๋ํ๋ฉฐ ์๋ก์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ ธ์ค๊ณ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์๋ก์ด ๊ฒ์ผ๋ก ๊ต์ฒดํ๋ ๋์ ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ ์๋ํ๋ ๊ฒ์ ๊ฐ์ ํ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ์ ํ๋๋ก ํฉ๋๋ค. ๋ชจ๋ ์ฌ๋๋ค์ ์์ ์ด ๋ฌด์ธ๊ฐ๋ฅผ ๋ค์ ์์ฑํ๊ณ ๋ ์ข๊ฒ ๋ง๋ค ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ๊ทธ ๋น์์ ์ค์ํ๋ ์์ ๋ฌธ์ ๊ณต๊ฐ๋ง ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ๋์ค์ ํ์ฅํ๊ณ ์ถ์ ๋ ๋๊ฐ์ ์ค๋๋ ๊ฒ์ ๋ค์ ์ง๊ณ ์๋ ์์ ์ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค. ๋น์ ์ ์ฒ์์ ๊ต์ฒด๋ฅผ ์๋ํ์ต๋๋ค. ์ด๋ฏธ ์๋ํ๋ ๊ฒ์ ๊ฐ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ ์๋ก์ด ํฌ๋ก์ค ํ๋ซํผ ๋ฐํ์์ ๊ตฌํํ๋ ๋์ Mono๋ฅผ ๋ ์ข๊ฒ ๋ง๋ค๊ณ ๊ฒฉ์ฐจ๋ฅผ ์ค์ด๋ ๊ฒ์ ์ ํธํ๋ ์ด์ ์ด๊ธฐ๋ ํ์ง๋ง ๊ทธ๊ฑด ๋ค๋ฅธ ๋ ผ์์ ๋๋ค.
์ต์ข ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ: 95% ์ ๋ขฐ๋์์ ยฑ10%์ธ 9๋ฐฑ๋ง .NET ๊ฐ๋ฐ์ ์ธ๊ตฌ์ ๋ํด 100๊ฐ์ ์๋ต.
project.json์ผ๋ก์ ์ด๋์ด ๋ง์์ ๋์
จ๋์?
๋ค, ๊ฐ์ฅ ๊ธฐ๋ํ๋ ๊ธฐ๋ฅ ์ค ํ๋์์ต๋๋ค. 19.19%
์ 39.39%
์๋์ค 13.13%
์๋, 16.16%๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ๋์ฐํ ๋ฐฉํฅ์ด์๋ค.
MSBuild๋ก ๋ค์ ์ด๋ํ๋ ๊ฒ์ ๋ํด ๋ง์กฑํ์ญ๋๊น?
์, ์ด์ ์ฑํ์ ๋ํด ์๊ฐํ ์ ์์ต๋๋ค. 9.09%
์ 16.16%
์๋์ค 30.30%
์๋์, ์ด๊ฒ์ .NET Core๊ฐ 29.29%๋ฅผ ์ฐจ์งํ๋ ๋ฐฉํฅ์ ๋ํด ์๋ฌธ์ ๊ฐ๊ฒ ํฉ๋๋ค.
์๊ด์์ด 15.15%
MSBuild๊ฐ ๊ฐ์ ๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๊น?
ํฅ์? ์ด๋ฏธ ์๋ฒฝํฉ๋๋ค. 1.01%
์ 63.64%
์๋์ค 12.12%
๊ทผ๋ณธ์ ์ผ๋ก ๋ง๊ฐ์ก๋๋ฐ ์ด๋ป๊ฒ ๊ฐ์ ํ ์ ์์ต๋๊น? 20.20%
์๊ด์์ด 3.03%
์ด๋ฒ ๊ฒฐ์ ์ด ์ณ์๋ค๊ณ ์๊ฐํ์ญ๋๊น?
์, ํ์์ ํผ๋๋ฐฑ์ ๋ฐ์ 20.41%๋ก ํด์ผ ํ ๋ ๋ฐฉํฅ์ ๋ณ๊ฒฝํ์ต๋๋ค.
์ 6.12%
์๋์ค 24.49%
์๋์, ํ์ ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ์ง ์๊ณ ์ฑ
์๊ฐ ์๋ ๋น๊ณต๊ฐ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค. 39.80%
์๊ด์์ด 9.18%
์ด ๊ฒฐ์ ์ .NET Core์ ๋ํ ์ธ์์ ์ด๋ค ์ํฅ์ ์ค๋๊น?
๊ฐ์ , ๋ง์นจ๋ด ์ ์ ๋ ฅ 13.00%์ ๊ฐ๊น์์ง๊ณ ์์ต๋๋ค.
11.00% ํฅ์
42.00% ์
ํ
๊ทธ๊ฒ์ ์
ํ์ํค๊ณ , ๋ชจ๋ ๊ฒ์ ์์ฌํ๊ฒ ๋ง๋ญ๋๋ค. 18.00%
์ ๊ฒฝ์ฐ์ง๋ง 16%
100๋ช ์ด ์ค๋ฌธ์กฐ์ฌ๋ฅผ ํ์ต๋๋ค. ๋๋ ์ง๊ธ๊น์ง ๊ทธ๊ฒ์ ๋ํด ์์ง ๋ชปํ์ต๋๋ค. ๋ํ๋ฒํธ๊ฐ ์์ ๋ ๋ค์ ํ ๋ฒ ๋ด ์๋ค. ๊ธฐ๊ปํด์ผ 100๋ช ์ด๋ผ๋ ๋ง์ด ์ฐ์ค๊ฝ์ค๋ฝ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค์ ๋ก ํ์๋ ๋๋ก 100๋ช ์ด 95% ์ ๋ขฐ๋ก ยฑ10%์ ์ค์ฐจ ๋ฒ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ง์ ํ ๋ฐ์์ ๋ณด๋ ค๋ฉด ์ด๋ ์ ๋์ ์์ ๊ฐ์ด ํ์ํฉ๋๊น? 900๋ง ๊ฐ๋ฐ์ ๋ชจ๋๋ฅผ ์กฐ์ฌํด์ผ ํ๋์?
Project.json์ VS์ ๋๋จธ์ง ๋ถ๋ถ์ผ๋ก ํ์ฅํ๊ธฐ ์ํด UserVoice์ ๋ํ 800ํ๋ ์ถ์ธ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ง์ ์ผ๋ก ๋ํ์ ์ธ ์ํ์ ๋ง๋ค๋ ค๋ฉด Microsoft๊ฐ ํด์ผ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ์ด ๊ฒฐ์ ์ ๋ํด ํ ๋ฒ๋ ์๊ฒฌ์ ๊ตฌํ์ง ํ ํ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๊ทธ๋ค์ ๊ฐ์ธ ์ค๋ฌธ ์กฐ์ฌ๋ฅผ ํ๋ ๋๋ณด๋ค ํจ์ฌ ๋ ๋์ ๋๋ฌ ๋ฒ์๋ฅผ ๊ฐ์ง ๊ฒ์ ๋๋ค. 100๊ฐ ์ด์์ ๊ฒฐ๊ณผ์ ์ก์ธ์คํ๋ ค๋ฉด ๋ด SurveyMonkey ๊ณํ์ ์ ๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด Microsoft ๊ฐ ์์ฒด์ ์ผ๋ก ์ํ
์๋ฏธ ์๋ ์ซ์๋ฅผ ์ํ๋ค๋ฉด 900๋ง ๊ฐ๋ฐ์๋ฅผ ๊ณต์ ํ๊ฒ ๋ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. ๊ฐ์ ๊ด์ฌ์ฌ๋ฅผ ๊ณต์ ํ๊ณ ๋ชจ๋ ์ฌ๋์๊ฒ ์ค๋ฌธ์กฐ์ฌ์ ์ฐธ์ฌํ๋๋ก ์์ฒญํ๊ธฐ ๋๋ฌธ์ ๋๋ฅผ ํ๋ก์ฐํ๋ 100๋ช ์ Twitter ํ๋ก์ด๊ฐ ์๋ ๊ฒฝ์ฐ ํน์ ๊ฐ๋ฐ์ ๊ทธ๋ฃน์ ๋ํํ๋ ๋งค์ฐ ์ผ๋ฐฉ์ ์ธ ๊ด์ ์ ๊ฐ์ง 100๋ช ์ ์ฌ๋๋ค์ด ์์ต๋๋ค.
MSBUILD ๋ถํ์ ๋ํ ์ ์ฅ์์ ์ ์ํ ์ ๋น์ฑ์ ๊ธฐ์กด ๋๊ตฌ ๊ฐ์ ํตํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ๊ธฐ์กด ํ๋ก์ ํธ์์ .NET Core๋ฅผ ๋ณด๋ค ์ฝ๊ฒ โโ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ ํฐ ํ๋ก์ ํธ๋ฅผ .NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ํ ์์งํ ๋งํด์ ํ๋ก์ ํธ ์์คํ ์ด ๊ฐ์ฅ ์ด๋ ค์ ์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ์ ์ผํ ์ ๋นํ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋์๊ฒ ํฐ ์ด์ ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค. ๋๋ ๋ํ ์๋์ผ๋ก ํ์ผ ํธ์ง์ ํฌํจํ์ฌ csproj ์์คํ ์ผ๋ก ์๋ ๋์ ์ผํ์ต๋๋ค. ๊ทธ๊ฒ์ ํญ์ ๊ณ ํต์ค๋ฌ์ ์ต๋๋ค. project.json ๊ธฐ๋ฐ ์์คํ ์ ํจ์ฌ ๋ ๊ฐ๋จํ๊ณ ๋ชจ๋ ์ฌ๋(์ด๋ณด์ ํฌํจ)์ด ํจ์ฌ ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ชฉํ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ ์ฐ๋ฆฌ๋ MSBUILD๋ฅผ ๋ถํ์์ผ ํ ๋ฐ์ง ๋ค๋ก ๋ฌผ๋ฌ์๊ณ ์์ต๋๋ค. ๋ด ๊ฐ์ธ์ ์ธ ์๊ฐ์ ์ด๊ฒ์ด ํฐ ์ค์๋ผ๋ ๊ฒ์ ๋๋ค. project.json์ ์ ์งํ๊ธฐ ์ํด ํฌํํ์ต๋๋ค.
์ฌ์ค ์ ๋ Twitter ํ๋ก์ด๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ์ด๋ค์ ๋๋ถ๋ถ ์ ๊ฐ Twitter ์คํธ๋ฆผ์ ๊ฒ์ํ .NET Core ๊ฐ๋ฐ์์ ํ๋ก์ด์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋งํ์ง๋ง, ๊ทธ๋ฌํ ์ค๋ฌธ ์กฐ์ฌ๋ฅผ ์ํํ๋ ์ฌ๋ฐ๋ฅธ ์ฌ๋์ ํ์คํ Microsoft์ ๋๊น? ์ฌ๋๋ค์๊ฒ ์ค์ ๋ก ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ฌป๋ ์ผ์ด ์ ๋์๊ฒ๋ง ๋จ์ ์์ต๋๊น?
์ MS๋ ์ฌ๋๋ค์ ์๊ฐ์ ๋ฌด์ํ์ง ์์ต๋๊น?
TBH 30๋ถ ์ ๊น์ง ์ค๋ฌธ์กฐ์ฌ๊ฐ ์๋ ์ค๋ ๋ชจ๋ฅด๊ณ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ๋น๊ณต๊ฐ๋ก ํ๊ณ ๊ณ์ ์ค๋ ๋ชฐ๋์ต๋๋ค. ๋์ํฉ๋๋ค... Microsoft๊ฐ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ฐ๋ฐ์ ๋ฐ์์ ๊ด์ฌ์ด ์๋ค๋ฉด ๊ทธ๋ฌํ ์ค๋ฌธ ์กฐ์ฌ๋ฅผ ์คํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ง๋ ๊ทธ๋ค์ ์ด๋ฏธ ์์ ๋ฅผ ํ๊ณ ์ด๊ฒ์ด ๊ทธ๋ค์ด ์ด ๋ณ๊ฒฝ์ ํ๋ ์ด์ ์ ๋๋ค. ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ํญ์ ๊ทธ๋ ๊ฒ ๋ถ์ ์ ์ผ๋ก ๋ณด์ง๋ ์์ ๊ฒ์ ๋๋ค. ์๋ํ๋ฉด ์ด ๋ชจ๋ ์ฌ๋๋ค์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ์ด ๋ฌผ๊ฑด์ ๋ง๋ค๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ด ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ ๊ฐ๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
๊ทธ๋ค์ด ์์ ๋ฅผ ํ๋ค๋ฉด ๊ฐ๋ฐ์์ 60%๊ฐ ์ด ์์ง์์ ๋ฐ๋ํ๋ค๋ ๊ฒ์ ์์์ ๊ฒ์ด๊ณ ๊ทธ์ ๋ฐ๋ผ ์์ฌ ์ํตํ๊ณ ์ฐธ์ฌํ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ฐ์์ ๋ํด ์ ํ ์์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์ฐธ์ฌํ์ง ์์์์ ์๋ฏธํฉ๋๋ค.
์ ๋ VS์ฉ ์ํฐํ๋ผ์ด์ฆ ๋ผ์ด์ ์ค์ ๋ํ ์ ๋ฃ ๊ณ ๊ฐ์ ๋๋ค. ๋๋ ์๋ฌด๊ฒ๋ ๋ณด์ง ๋ชปํ๋ค. ์ ๋ 4๊ฐ์ ์ฐ๋ ํ ์๋น์ค ํ์ฌ์์ ์ผํ๋ฉฐ ๊ธฐ์ ๊ณ ๊ฐ์๊ฒ๋ ๋น์ฉ์ ์ง๋ถํฉ๋๋ค. ๊ทธ๋ค์ ์๋ฌด๊ฒ๋ ๋ณด์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ค์ ์ ํํ ๋๊ตฌ์ ๊ต์ ํ ์ต๋๊น? ์ด์ ฏ๋ฐค๋ถํฐ ๊ทธ ์ง๋ฌธ์ ํ๊ณ ์๋๋ฐ ๋ต๋ณ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค.
์ด๊ฒ์ .NET Core ์ด์ผ๊ธฐ์ ๊ทผ๋ณธ์ ์ธ ๋ถ๋ถ์ ๋ํ ๋๊ท๋ชจ์ ๋ฆ์ ์ฃผ์ ๋ณ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ ์ธ ๊ฒ์ผ๋ก ๋ณด๊ณ ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ฏธ๋์ ํต์ฌ์ผ๋ก ์ฐ๋ฆฌ์๊ฒ ์ ๋ฌ๋์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ (์๋ง๋ ์ด๋ฆฌ์๊ฒ๋) ์ด๋ฅผ ์ด ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก CD/CI ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ผ๋ฉฐ ์ด์ ๋ ์์ ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ ๋ถ์ ์ ์ผ๋ก ๋ณด๊ณ ์์ต๋๋ค. ํ๋ฃจ ์ข ์ผ ์์ฌ ๊ฒฐ์ ์ ๋ํ ์ธ๋ถ ์ฌํญ์ ์๊ตฌํ๋ ๋์ ์์ ํ ๋ผ๋์ค ์นจ๋ฌต์ด ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ด๊ฐ ๋ค์ ๋ฐ์ ๋ฐ๋ฅด๋ฉด ๋๊ตฌ ์ ์์๋ฅผ ๋๊ธฐ ์ํด ์ฌ์ฉ์๋ฅผ ๋ฒ์ค ์๋๋ก ๋ชฐ์๋ฃ์๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ค์ด ๋ด๊ฐ ์๋ ๋๊ตฌ ์ ์กฐ์ ์ฒด๋ก๋ถํฐ VS ๋ผ์ด์ผ์ค ๋น์ฉ์ ์ง์ํ ์ ์์ต๋๊น?
@shederman ๊ทํ์ ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ์ ๋์ํ์ง๋ง, ์ง๋ฌธ์ ๋ถ๋ช ํ w/ json ํ์์ ์ ์งํ๋ ์ ํธํ๋ ๋ฐฉํฅ์ผ๋ก ๊ธฐ์ธ์ด์ ธ ์์ผ๋ฉฐ ์ค์ ๋ก ์ข์ ์ค๋ฌธ์กฐ์ฌ๊ฐ ๋์ง๋ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ฌ๋ฏธ๋ก ๋ฐ์๋ค์์ผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์ด์ง ์์ ๊ฒ์ ๋๋ค(์ฃ์กํฉ๋๋ค). ๋๋ ์ ์ฐ๋ฆฌ๊ฐ ๋ ๋ค ๊ฐ์ง ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ ๋ msbuild๋ ๊ทธ ๋ฐ์ ๊ฒ๋ค์ ์ข์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋์ญ์์ค. ์ ๋ json์ ์ฌ๋ํฉ๋๋ค. ์ ์น๊ตฌ์ ๋๋ค.
์ด์์ ์ธ ์ค๋ฌธ์กฐ์ฌ๊ฐ ์๋๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. 5๋ถ ๋ง์ ๋ง๋ค์์ต๋๋ค. ์์ ์: ๋ด๊ฐ ์ ๊ทธ๊ฒ์ ๋ง๋๋๊ฐ?
Microsoft๊ฐ ์ฌ๋๋ค์ ์๊ฐ์ ์์๋ด๋ ๋ฐ ๊ด์ฌ์ด ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋๋ 30๊ฐ ์ ๋์ ์๋ต๋ง์ ์์ํ๋๋ฐ, ๊ทธ๋ค์ด ์๊ฒฌ์ ์ต์ง ๋ถ๋ฆฌ๊ธฐ๋ณด๋ค ํ ๋ก ์ ์ฌ๊ฐํ๊ณ , ๊ทธ๋ค์ ์๊ฐ์ ๊ณต๊ฐ์ ์ผ๋ก ๊ณต์ ํ๊ณ , ์ฐ๋ฆฌ์ ์ ์ ํ๊ฒ ์ฐธ์ฌํ๋๋ก ์ค๋ํ๊ธฐ์ ์ถฉ๋ถํ๊ธฐ๋ฅผ ๋ฐ๋์ต๋๋ค.
ํ์ฌ 138๊ฐ์ ์๋ต์ด ์์ง๋ง Microsoft์ ๊ฒฐ์ ์ด ์๋ชป๋ ๊ฒฐ์ ์ด์์ ์๋ ์์์ ๊ณ ๋ คํ๋๋ผ๋ ์ฌ์ ํ Microsoft์ ์งํ๋ ์์ต๋๋ค. ์ฌ์ค์ ๊ทผ๊ฑฐํ์ง ์์ ์ค๋ช ์ ํ๋๋ ์์ฃผ ๋ชจํธํ ์.
๋ด๊ฐ ์ํ๋ ๊ฒ์ ์ด ๊ฒฐ์ ์ ๋ํ ์ ์ ํ ์ฐธ์ฌ์ ๋๋ค. ๋น๋ฐ ์ ๋ณด์ ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ๋น๊ณต๊ฐ๋ก ๊ฒฐ์ ๋ ์ฃผ์ ๊ฒฐ์ ์ด ์๋๋๋ค. ์ด ๊ณผ์ ์์ ์ ์ผํ๊ฒ ๋๋ฝ๋ ๋จ์ด์ธ ํฌ๋ช ํ๊ณ ๊ณต๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.
์ค, ์๋ค์. Microsoft๋ ํ๋ ์์ํฌ๋ฅผ ์์ ํ๊ณ ๊ทธ๊ฐ ์ํ๋ ๊ฒ์ ํ๋๋ก ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ์๊ฐํด๋ณด์ธ์. ์ฌ๋๋ค์ 2014๋ 3์-4์๋ถํฐ ์ด ์์ ์ ํ๊ณ ์์ผ๋ฉฐ ์ถ์ 1๊ฐ์ ์ ์ ์ด๋ฌํ ์ ํ์ ๊ทน์ ์ธ ๋ณํ๋ฅผ ๋ง๋๋ ๊ฒ์ ์ฐ์ค๊ฝ์ค๋ฌ์ด ์ผ์ ๋๋ค. ๊ฐ๋ฐ์์ ์ ๋ขฐ๋ฅผ ๋ฌด๋๋จ๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ์ฌ๋๋ค์ ์๊ฐ์ ๋ญ๋นํฉ๋๋ค. ์ปค๋ฎค๋ํฐ๋ฅผ ์ ๋ขฐํ ์ ์๋ค๋ฉด ์คํ ์์ค ํ๋ ์์ํฌ๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. ์ด๋์ด ๋ฐฉ์์ ์ด๋ฌํ ์ ํ์ ๋ณ๊ฒฝ์ ์ํํ ๋ ์๋ฌด๋ ๋ฐฉํดํ์ง ์๋๋ก ์ฆ์ ์์ค๋ฅผ ๋ซ์ผ์ญ์์ค.
์ด ์๊ฐ์ Microsoft์ ๋ณ๋ช ์ ์์ฒญํ๊ณ ๊ณต๊ฐํ๋(MVP ๋๋ ์ปค๋ฎค๋ํฐ ํ์) ํ์ค์ ์ ๋๋ค.
@shederman
๊ทธ๋ค์ด ์์ ๋ฅผ ํ๋ค๋ฉด ๊ฐ๋ฐ์์ 60%๊ฐ ์ด ์์ง์์ ๋ฐ๋ํ๋ค๋ ๊ฒ์ ์์์ ๊ฒ์ ๋๋ค.
.net ์ํ๊ณ์ ๊ฐ๋ฐ์ ์ค 20% ์ด์์ด project.json์ ์กด์ฌ๋ฅผ ์๊ณ ์๋ค๋ ์ฌ์ค์ด ์ ๋ฅผ ๋๋ผ๊ฒ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋๋๋ก ์ฐ๋ฆฌ๊ฐ ์๋ก์ด ๊ธฐ์ ๊ฐ๋ฐ์ ์ต์ ์ ์ ์์ ์ฝ๊ฐ์ ๊ฐ๋ฐ์ ๊ฑฐํ ์์ ์ด๊ณ ์๋ค๋ ์ฌ์ค์ ์์ต๋๋ค.
์ ๋ project.json์ ๋งค๋ ฅ ์ค ๋ง์ ๋ถ๋ถ์ด ๋จ์์ฑ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ 3๋ ์ ASP Net Insiders์ ๋ ์ ์ฒ์ ์๊ฐ๋ ์ดํ๋ก ๊ฐ๋ฐ์ ๋ฐ๋ผ์๋ค๋ฉด ๋ ๋ง์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ง์ํ๋ ค๊ณ ํ ์๋ก ๋ ๋ณต์กํด์ง๊ธฐ ์์ํ์ต๋๋ค. ์ ์ฒด .net ์ํ๊ณ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ฌ๋๋ฐ๋ ๋จ์ํจ์ ๋ง์ ๋ถ๋ถ์ด ์์ค๋ ๊น ๋๋ ต์ต๋๋ค.
์ด๊ฒ์ project.json์ด ๋ช ๊ฐ์ง ๋ฉ์ง ์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ค์ง ์๋๋ค๋ ๊ฒ์ ๋งํ๋ ๊ฒ์ด ์๋๋ฉฐ, ํ๋ก์ ํธ ํ์์ ์ฌ๋์ด ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ์ฅ์ ์ MSBuild์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ ๋ฌ์ฑ ๊ฐ๋ฅํ๊ณ project.json์ ๋ชจ๋ ๊ณณ์์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋นจ๋ฆฌ ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ํํ์ ์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
.net ์ํ๊ณ์ ๊ฐ๋ฐ์ ์ค 20% ์ด์์ด project.json์ ์กด์ฌ๋ฅผ ์๊ณ ์๋ค๋ ์ฌ์ค์ด ์ ๋ฅผ ๋๋ผ๊ฒ ํ ๊ฒ์ ๋๋ค.
.net eco์ 20% ๋ฏธ๋ง ๊ฐ๋ฐ์๊ฐ MVC ๋ฐ Web Api์ ๋ํด ์๊ณ ์์ต๋๋ค. 70๋ช ์ด์์ ์ฌ๋๋ค์ด WebForms, WCF, WebService๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ค์ ํ ๋ฒ Microsoft์ ๋ณ๋ช ์ ์์ฒญํฉ๋๋ค. ํ์ค์ ์ผ ์ ์๋๋ก ๋์ ํด ์ฃผ์ญ์์ค.
@shederman ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ์ ๋ํ ๊ทํ์ ๋ณด๊ณ ์๋ .NET ๊ฐ๋ฐ์ ์ง๋จ์ ๋ํด ์ ํํ์ง ์์ ์ ์์ผ๋ฉฐ ... "๊ทธ๋ค์ .NET Core ๊ฐ๋ฐ์์ ๋๋ถ๋ถ์ ์ถ์ข ํ๋ ์ข์ ๋ํ ์ํ์ด ์๋ ์๋ ์์ต๋๋ค. ๋ด๊ฐ ์ฌ๋ฆฐ ํธ์ํฐ ์คํธ๋ฆผ." ํ๋ณธ์ ๋ชจ์ง๋จ ์ ์ฒด์ ๋ํด ์์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ ๋ขฐ ๊ตฌ๊ฐ์ ๋ช ์ํ๋ ๋ฐ ์ ๋์ ์ผ๋ก ํ์ํ ๋ฌด์์ ํ๋ณธ์ด
์ ์ฒด ์ธ๊ตฌ์ ๋ํ ์ค๋ฌธ ์กฐ์ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฉํ ํต๊ณ์ ๊ฒฐ๋ก ์ ๋์ถํ ์ ์์ต๋๋ค. ๊ทธ๋๋ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ํด์ฃผ์ ์ ๊ธฐ์ฉ๋๋ค. ๋น์ ์ ๋ง์ ์ฐ์ํ ํฌ์ธํธ๋ฅผ ์ ์ํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ง์ ์ฌ๋๋ค์ด ๋ณํ์ ๋ํด ํ๋ฅผ ๋ด๊ฑฐ๋ ์ฐ๋ คํ๊ณ ์์์ ๋ํ๋ ๋๋ค. ๊ทธ๋ฌ๋ ์๋ชป๋ ํต๊ณ์ ๊ฒฐ๋ก ์ ๊ฒ์ํ์ง ๋ง์ญ์์ค. ์ฌ์ค์ ๋ฌด์๋ฏธํ ์์น๋ฅผ ํผ๋จ๋ฆฌ๊ณ "๊ฐ๋ฐ์์ 60%๊ฐ ์ด ์์ง์์ ๋ฐ๋ํ๋ค๋ ๊ฒ์ ์์์ ๊ฒ์ ๋๋ค."์ ๊ฐ์ ํฐ๋ฌด๋์๋ ๋ฐ์ธ์ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์์ฅ ๊ธฐ๋ฐ์ 70% ์ด์์ ๊ท์ฐฎ๊ฒ ํ๋ ค๋ฉด ๋ฌด์์ด๋ ๋ณ๊ฒฝํด์ผ ํ๋ ์์ ์ด ๋ฌด์์ ๋๊น? ์ฐ๋ฆฌ๊ฐ ์๋ ๊ณณ์ ๊ทธ๋๋ก ๋จธ๋ฌผ๋ฉด์ ์ ์ง์ ์ธ ์งํ๋ฅผ ๊ณ์ํฉ์๋ค. ๊ณ ์ฅ๋์ง ์์๋ค๋ฉด ๊ณ ์น์ง ๋ง์ธ์, ๊ทธ๋ ์ฃ ?
๋๋ project.json์ด ๋ณต์ก์ฑ์ ์ถ์ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ ์ ์ 100% ๋์ํฉ๋๋ค. csproj์ ๋ค์ ๋ณํฉํ๋ ์๋ฃจ์ ์ด์๋? ๋๋ ์ฌ๋๋ค์๊ฒ ์๋๋ฅด์ง ์๊ณ ์ผ์ ๋ฐ๋ก์ก๋ ๋ฐ ๋ํด ์์ ํ Microsoft ๋ค์ ์๋ค๊ณ ๋งํ์ต๋๋ค. csproj๋ก์ ์ด๋์ด ๊ธํด ๋ณด์ ๋๋ค.
RC2 ์ดํ์ ์ด๊ฒ์ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ด๊ฒ์ ์ด๋์์ ์์ต๋๊น? Xamarin ์ธ์๊ฐ ์ด์ ๊ด๋ จ์ด ์์ต๋๊น? dotnet-cli
ํตํฉ์ด์๋? ๋น
ํด๋ผ์ด์ธํธ์๋? ๋๊ฐ ์์...
๋๋ ๋์ค์๊ฒ RC1 -> RC2๊ฐ ์ต์ ์ด๋ผ๊ณ ์ค๋ช ํ ์ ์์๋ค. dotnet cli์ ํตํฉ๋์์ต๋๋ค. ํ์ง๋ง project.json ๋ณ๊ฒฝ? ๋๋ ๊ทธ๊ฒ์ ์ค๋ช ํ๊ธฐ ์ํด ํ ๋ง์ด ์๋ค. ๋ค๋ง ๋ด๊ฐ ๋ชจ๋ฅธ๋ค. ์ฌ๋๋ค์ ํผ๋์ค๋ฌ์ํ๊ณ ๋๋ ๊ทธ๋ค์ ๋ํ ์ค๋๋ ฅ ์๋ ๋ ผ๊ฑฐ๊ฐ ์์ต๋๋ค.
RC2 ์ดํ์ ์ด๊ฒ์ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ ์ด๋์์ ์์ต๋๊น? Xamarin ์ธ์๊ฐ ์ด์ ๊ด๋ จ์ด ์์ต๋๊น? dotnet-cli ํตํฉ์ด์๋? ๋น ํด๋ผ์ด์ธํธ์๋? ๋๊ฐ ์์...
์ด๊ฒ์ด ํฌ์ธํธ ์๊ฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ csproj๋ก์ ์ด์ ์ ๋ํ ์ ์ฒด ์ด์ผ๊ธฐ๋ฅผ ๋ชจ๋ฆ ๋๋ค. ์ด์ ๋ค๋ก ๊ธฐ๋๊ณ ํด์์ ์ทจํ๊ณ ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋์ง ์ง์ผ๋ณด๊ณ ์ดํดํ๋ ๋์ ๋ชจ๋๊ฐ Microsoft๋ฅผ ์ ์ฃผํ๊ณ ์ต์ ์ ์ํฉ์ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด ์ฌ๋๋ค์ ์ฐ๋ฆฌ์ ์ฐ๋ฆฌ๋ง์ ์ํด ์ด ๋ฌผ๊ฑด์ ๋ง๋ค๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ํ ๋ช ์ ํฐ ๊ณ ๊ฐ ๋๋ฌธ์ ๊ทธ๋ฐ ๋ณ๊ฒฝ์ ํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ํ ๋ช ์ ํฐ ๊ณ ๊ฐ์ ์ ์ฒด ์ปค๋ฎค๋ํฐ๋ฅผ ์์ ์ํ์ด ์๋ ๊ฒฝ์ฐ ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. Microsoft .NET ์์ฝ ์์คํ ์ HUUUUUUGE์ด๋ฉฐ .NET Core๋ฅผ ์ด ์์คํ ์ ์ ๋ง์ถ๋ ๊ฒ์ ๋ถ๋ช ํ ๋ณต์กํ ์์ ์ด๋ฏ๋ก ๋ชจ๋๊ฐ ์กฐ๊ธ ์ง์ ํ๊ณ ์ด ์ฌ๋๋ค ๋ค์ ํ๋ช ํ ์ฌ๋๋ค์ด ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ฌ๋ฐ๋ฅธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋๋ก ์ ์ํฉ๋๋ค. ์ฅ๊ธฐ์ ์ผ๋ก ๊ฐ์ฅ ํฐ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ์ด ๋ชจ๋ ๋ถ์ ์ ์ธ ์ฑ๊ธํ ์ถ์ธก์ด ๋๋ฅผ ์ง๋ฃจ
@darrelmiller ์ฃ์กํฉ๋๋ค. 60%๋ผ๊ณ ํ๋ฉด ์ค๋ฌธ์กฐ์ฌ์ ์๋ตํ ์ฌ๋๋ค์ 60%๋ฅผ ์๋ฏธํฉ๋๋ค.
@GuardRex ๋น์ ์ด ์ ๋์ ์ผ๋ก ์ณ์ต๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์ ์ ํ ๊ฒฐ๊ณผ๋ฅผ ์ค ์ ์๋ ์ ์ผํ ์กฐ์ง์ MS์ด๊ณ ๊ทธ๋ค์ ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ์ค๋ฌธ์กฐ์ฌ๋ ๋จ์ํ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ ์ํ์ ์ ๊ณตํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋ผ ๋ง์ฐํ ์ง์ ์์ค์ ์ธก์ ํ๊ธฐ ์ํ ๊ฒ์ด์์ต๋๋ค. ๋๋ ์ด ๊ฒฐ์ ์ ๊ณต๊ฐํ๊ธฐ์ ์ถฉ๋ถํ ๋ถํ์ด ์์์ ๋ณด์ฌ์ฃผ์๋ค๊ณ ์๊ฐํ์ง๋ง, ๋ง์ดํฌ๋ก์ํํธ๋ ๊ทธ๋ค์ ๋ฌด์ ์นจ๋ฌต์ด ์ด๋ค ์งํ๋ผ๋ ์ ๋์ํ์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
์ฌ๊ธฐ ์ง๋ฌธ์ด ์์ต๋๋ค. MS๊ฐ ์ค์๋ฅผ ์ ์ง๋ ๋ค๋ ๊ฒ์ ์ธ์ ํ๋ ค๋ฉด ์ ํํ ๋ฌด์์ด ํ์ํ ๊น์? ๊ทธ๋ค์ด ํ ๋ก ์ ์ฌ๊ฐํ๋ ค๋ฉด ๋ฌด์์ด ํ์ํ ๊น์? ํ ์์ ์์ ๋ต์ "์ฐ๋ฆฌ๋ ๋น์ ์ ๊ด์ ์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ , ์ฐ๋ฆฌ์ ๊ฒฐ์ ์ด ์ ํจํ๋ฉฐ, ๊ทธ ์ด์ ๋ฅผ ๊ณต์ ํ์ง ์์ ๊ฒ์ ๋๋ค"์ธ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๋ชจ๋๊ฐ ์กฐ๊ธ ์ง์ ํ๊ณ ์ด ์ฌ๋๋ค ๋ค์ ํ๋ช ํ ์ฌ๋๋ค์ด ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ฌ๋ฐ๋ฅธ ๊ฒฐ์ ์ ๋ด๋ ค ์ฅ๊ธฐ์ ์ผ๋ก ์ต๋์ ์ด์ต์ ์ป์ ์ ์๋ค๊ณ ๊ฐ์ ํ ๊ฒ์ ์ ์ํฉ๋๋ค.
๋ด๊ฐ ๋งํ ๊ฒ์ ๊ทธ ๋ค์ ์๋ ์๋ฆฌํ ์ฌ๋๋ค๊ณผ ๊ทธ๋ค์ด ํญ์ ์ณ๊ณ ์คํ ์์ค ์ปค๋ฎค๋ํฐ๊ฐ ๋ฐ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ ํด๋ก์ฆ ์์ค๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค.
@shederman "ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ ์ํ์ ์ ๊ณตํ์ง ์๋ ๊ฒ" ... ๊ด์ฐฎ์ต๋๋ค. ํ์ง๋ง ์ค๋ฌธ์กฐ์ฌ๊ฐ ๊ทธ ์์ฒด๋ก ์ฅ์ ์ด ๋๋๋ก ํ๊ณ ์ด ์ค์ ์ ๊ฑฐํด ์ฃผ์ จ์ผ๋ฉด ํฉ๋๋ค...
์ต์ข ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ: 95% ์ ๋ขฐ๋์์ ยฑ10%์ธ 9๋ฐฑ๋ง .NET ๊ฐ๋ฐ์ ์ธ๊ตฌ์ ๋ํด 100๊ฐ์ ์๋ต.
์ ๋ง ๊ณจ์น์ํ ๋ถ๋ถ์ ๋๋ค. .NET ๊ฐ๋ฐ์์ 60%๊ฐ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ซ์ดํ๊ฑฐ๋ ์ซ์ดํ๋ค๋ ๊ฒ์ด ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํด๋น ์ํ์์๋ ํ์ํ ์ ์์ต๋๋ค. ์, ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ํด ํฌ๊ฒ ์ฐ๋ คํ๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค
@abcplex : ์คํ์์ค๋ผ๊ณ ํด์ 16๋ช ์ด GitHub์์ ์ด์๋ฅผ ์ด๊ณ ์คํฌ๋ฆผ ์ ํํ ๋๋ง๋ค ์ ํํด์ผ ํ๋ ๊ฒ์ ์๋๋๋ค.
@MaximRuiller Standup Notes ๋ ๋ณ๊ฒฝ ๋๊ธฐ๋ฅผ ์ ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ฝ์์ ๋ ํ์ค์ xproj๊ฐ csproj๋ก ๋์ฒด๋๊ณ ์๊ณ project.json์ด nuget.json์ผ๋ก ์ด๋ฆ์ด ๋ฐ๋๊ณ _some_ ํญ๋ชฉ์ด project.json์์ ์ฎ๊ฒจ์ง ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ ๋์ ์์ ๋์จ ์ฝ๋ฉํธ์์ ์ด๊ฒ์ ๊ฝค ์ต๊ทผ์ ๊ฒฐ์ ์ด์์ต๋๋ค. ์ปค๋ฎค๋ํฐ๋ ๊ฑฐ์ ์ฆ์ RTM ์ดํ๊น์ง project.json์ด ์๋ฌด ๋ฐ๋ ๊ฐ์ง ์์ ๊ฒ์ด๋ฏ๋ก ๋ณ๊ฒฝ์ด ๋ค์ ๋ฐ์ํ ์ ์๋ค๊ณ ๋ค์์ต๋๋ค.
๋์๊ฒ ์ด๊ฒ์ ์ผ์ด๋ ์ ์๋ ๊ฐ์ฅ ํฌ๊ด์ ์ด๊ณ ํฌ๋ช ํ ๊ณผ์ ์ฒ๋ผ ๋ณด์ธ๋ค.
@darrelmiller ๊ทธ๊ฑด, ๋น์ ์๊ฒ ๋์ํด์ผ ํ ๊ฒ์ ๋๋ค. ๊ฝค ํฌ๋ช ํฉ๋๋ค.
๊ทธ๋ค์ด ํผ๋๋ฐฑ์ ์ํ๋ค๋ฉด, ๋๋ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ์ป์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ ์ธ์ธ ์ผ์ ์์ต๋๋ค. ์ฌ๋๋ค์ด ๋งํ์ต๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๋ ๊ท๋ฅผ ๊ธฐ์ธ์๋ค. ๊ทธ๋ค์ด ํ ์ ์๋ ์ผ์ธ์ง, ์๋๋ฉด ์์ด ๋ฌถ์ฌ ์๋์ง ๋ด ์๋ค.
์ด์ ์๊ฐ๋ง์ด ์ฐ๋ฆฌ์๊ฒ ๋งํด์ค ๊ฒ์ ๋๋ค.
ํฌ๋ช ์ฑ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ํฌ๋ช ํ ์ผ์ ํ๋ฅญํ๊ฒ ํด๋์ต๋๋ค. ๋ฌธ์ ๋ ์ปค๋ฎค๋ํฐ๊ฐ ์ด์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ชจ๋ฅธ ์ฑ ์ค๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์ํ์์ ๋์์ธํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์๋ง๋ ๊ทธ๋ค์ด ๊ฒํ ํ ์ฅ๋จ์ ๋ชฉ๋ก์ ๋ฌธ์ํํ๊ณ ์ด ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ๊ทผ๋ณธ์ ์ธ ๊ฒ์ ๋ํด ์ปค๋ฎค๋ํฐ์ ์ ์ถํ์ด์ผ ํ์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ๊ฑด๋ ๊ทธ๋ค์ ๊ทธ๋ฌํ ์ ํ์ ์ ๋ณด๋ฅผ ๊ณง ๊ฒ์ํ ๊ฒ์ด์ง๋ง, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ฏธ ๊ฒฐ์ ์ด ๋ด๋ ค์ง ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
์ด๊ฒ์ ๋ค๋ฅธ ๋๊ตฌ๋ณด๋ค ์ผ๋ฆฌ ์ด๋ตํฐ์๊ฒ ๋ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
JSON์ ์ฝ๊ธฐ๊ฐ ์ข์ง๋ง ๋จ์ํ ๋๋ง ๊ฐ๋ฅํฉ๋๋ค. </system>
๊ฐ ]}
๋ณด๋ค ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ธ ์๊ฒฌ์ XML ๊ณ ์ ์ ์ฅํฉํจ์ ํ์๋ก ํ์ง ์๋ ํ๋ก์ ํธ ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ์ ์ธ๋ก๋/๋ก๋์ ๋ํ ์ ์๊ฐ์ ๋ฐ์ํฉ๋๋ค.
JSON ๋ XML์ ๋ํ ๋
ผ์๊ฐ ์ ๋ง ์์ด์ผ ํฉ๋๊น? IMHO๋ ์ ๋ง ์ค์ํ์ง ์์ต๋๋ค.
(๋ฌผ๋ก , ์ ๋ ๊ฐ์ธ์ ์ผ๋ก XML๋ณด๋ค JSON์ ๋ ์ข์ํ์ง๋ง ์ด๊ฒ์ ์ค์ํ์ง ์์ต๋๋ค)
๋ด๊ฐ ASP.NET Core์ ๋ํด ์ ๋ง ์ข์ํ๋ ๊ฒ์ Visual Studio ๋ฐ ๊ธฐํ IDE์์ ๋งค์ฐ ๊ฐ๋ฐฉ์ ์ด๊ณ ๋ ๋ฆฝ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ฌ์ ํ ์ฃผ์ด์ง๋ค๋ฉด ๋๋ ์ด ๊ฒฐ์ ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์๋นํ ๋ง์ ์ ๋ ํ ํ ๋ก ์ด ์งํ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ๋ง์ ์ฌ๋๋ค์ด ์๋ ฅ์ ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฃผ์ฅ์ "MSBuild๊ฐ ์๋ชป๋์์ต๋๋ค!"์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ์ ๊ทผ ๋ฐฉ์ ๋ชจ๋์ ๋ํด ๋ฌด์์ด ์ข๊ณ ๋์จ์ ๋ํ ์ถฉ๋ถํ ์ดํด๊ฐ ์ด๋ฃจ์ด์ง์ง ์๊ณ ์์ต๋๋ค.
์ด๊ฒ์ด "๋ค๋ก๊ฐ๋ ๋จ๊ณ"๋ผ๊ณ ๋งํ๋ ๋ชจ๋ ์ฌ๋์ "csproj"๋ก ๋์๊ฐ์ง๋ง ๋ช ๋ ๋์ ์ฌ์ฉํ๋ csproj ํ์ผ๊ณผ _๋์ผํ์ง_ ์์ ๊ฒ์์ ์ ์ํ์ญ์์ค. ํ๋๋ "์" csproj ํ์ ์ ํ์ผ ๋ชฉ๋ก์ด ํ์๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋ถ๋ช ํ ๋ฐํ์ต๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด project.json ํ์์ ์ข์ํ๋ ์ฃผ๋ ์ด์ ์ด์ ์ฃผ๋ ์ด์ ๋ ์ด ํ์ผ ๋ชฉ๋ก์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ๋ก ์ฆ๊ฐ์ ์ธ ์ฐจ์ด์ ๋๋ค. ์ค๋ xproj๋ฅผ ์ดํด๋ณด๋ฉด "์๋ก์ด" csproj์์ ๋ฌด์์ ๊ธฐ๋ํ ์ ์๋์ง ๋๋ต ์ ์ ์์ ๊ฒ์ ๋๋ค. ์กฐ๊ธ ๋ ์ปค์ง ์ ์์ง๋ง project.json์์ ๊ฐ์ ธ์จ ๋ช ๊ฐ์ง ์ถ๊ฐ ์์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค์ ํ ๋ก ์ "MSBuild๊ฐ ์ผ๋ง๋ ๋์์ง"๊ฐ ์๋๋ผ ์ csproj์์ ๋ณด๊ณ ์ถ์ ๊ฒ๊ณผ .json ํ์ผ์ ๋จ๊ธฐ๊ณ ์ถ์ ๊ฒ์ด ์๋๋๋ค.
@dustinmoris ๋น์ ์ ๋ถ๊ณตํํฉ๋๋ค. ์ปค๋ฎค๋ํฐ๋ ๋๋ถ๋ถ์ ๋ณํ๋ฅผ ํ์ํ์ง๋ง ์ด๋ฒ๋ง์ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๋ฅผ ๊ณผ๊ฑฐ๋ก ๋ฐ๋ ค๊ฐ๊ณ ์์ผ๋ฉฐ, ๊ทธ๋ค์ ์ด๋ฏธ ์ด์ ์ ๋ํ ํต์ฐฐ๋ ฅ ์์ด ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๊ฒฐ์ ์ด ์ต์ข ์ ์ธ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๋ฏ๋ก ์ปค๋ฎค๋ํฐ๊ฐ ๋ ๋์ ์ ์์ ํ ์ ์๋ ๊ณณ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ ํ์ผ์ ์ง์ ํธ์งํ๊ณ project.json ์ ์ ๊ณ ํต์ค๋ฝ๊ฒ ์์ ํ์ต๋๋ค. Msbuild๋ ๋ถ์กฑ ์ง์์ ๊ดํ ๊ฒ์ด๋ฉฐ ๊ทธ๊ฒ์ ๋ง์คํฐํ๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ".net 4.5์์ .net ์ฝ์ด๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ ๊ฒ"์ด๋ผ๋ ๋ง์ ๋ค์ ์ ์งํ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ํ์คํ ๊ณจ์นซ๊ฑฐ๋ฆฌ๊ฐ ์๋๋๋ค...
๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ฐ ๊ฐ์ง๊ณ ์๋ csproj ํ์ผ๊ณผ ๊ฐ์ง ์์ ๊ฒ์ ๋๋ค.
XML์ด ๋ ๊น์? ๋ค, ๊ทธ๋ ๊ฒ ์๊ฐํ์ต๋๋ค.
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด project.json ํ์์ ์ข์ํ๋ ์ฃผ๋ ์ด์ ์ด์ ์ฃผ๋ ์ด์ ๋ ์ด ํ์ผ ๋ชฉ๋ก์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ค ์ ๋ณด์ ๊ทผ๊ฑฐํ์ฌ ์ด๊ฒ์ ๋งํ๋๊ฐ? ๋ด ๋ง์, ํ์ผ ๋ชฉ๋ก์ด ์๋ค๋ ๊ฒ์ด ํฐ ์ฅ์ ์ด์ง๋ง ๊ฒฐ์ฝ ์ ์๊ฒ๋ง ์ ์ผํ ๊ฒ์ ์๋๋๋ค.
์ค๋ xproj๋ฅผ ์ดํด๋ณด๋ฉด "์๋ก์ด" csproj์์ ๋ฌด์์ ๊ธฐ๋ํ ์ ์๋์ง ๋๋ต ์ ์ ์์ ๊ฒ์ ๋๋ค.
์ค๋์ xproj๊ฐ ์์ต๋๋ค. ์ ๊ทธ๋ฐ ๊ฒ์ด ํ์ํ ๊น์?
์ค์ ํ ๋ก ์ "MSBuild๊ฐ ์ผ๋ง๋ ๋์์ง"์ ๊ดํ ๊ฒ์ด ์๋๋ฉฐ ํด์๋ ์ ๋ฉ๋๋ค.
ํ ๋ก ์ด _ํด์๋ ์ ๋๋_ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํฐํ MSBuild๋ .NET Core ์ฑํ์ ์ฃผ์ ์ฅ์ ์ด์์ต๋๋ค. ๋ด (๋ถ๋ช ํ) ๋น๊ณผํ์ , ๋ฐํฅ์ค, ํธํฅ๋ ์ค๋ฌธ์กฐ์ฌ์ ๋ํ ์๋ต์์ 20%๋ ์ด๊ฒ์ด ๊ทผ๋ณธ์ ์ผ๋ก ์๋ชป๋์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
@shederman ๊ทํ์ ์๋ต์ ์ ๊ฐ ์ธ๊ธํ๋ ๊ฒ๊ณผ ์ ํํ ๊ฐ์ ์ข ๋ฅ์ ์ ๋ ํ ํ ๋ก ์ ๋๋ค. "MSBuild๊ฐ ๋์๋ค!"์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ฃผ์ฅ์ ํ๊ณ ์์ง๋ง ๊ฑด์ค์ ์ธ ํ ๋ก ์ ํตํด ์ด๋ฅผ ๋ท๋ฐ์นจํ๊ณ ์์ง๋ ์์ต๋๋ค.
XML์ด ๋ ๊น์? ๋ค, ๊ทธ๋ ๊ฒ ์๊ฐํ์ต๋๋ค.
์. ๊ทธ๋ฆฌ๊ณ ? ๋ฌธ์ ๊ฐ _XML_์ด ๋ง์์ ๋ค์ง ์๋๋ค๋ ๊ฒ์ด๋ผ๋ฉด ์ถฉ๋ถํฉ๋๋ค. JSON์ด XML๋ณด๋ค ์ฐ์ํ๋ค๊ณ ์๊ฐํ๋ค๋ฉด ๊ทธ ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ _project ๊ตฌ์กฐ_์ ๊ตฌ๋ฌธ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ถํํ๋ XML๊ณผ JSON์ ๋ชจ๋ ์ธ๊ณ์์ ๊ฐ์์ ์์น๋ฅผ โโ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ ๋ ๋ค์ ๋๋ ทํ ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ ์ด๋ ๊ฒ์ด ๋ ๋์์ง์ ๋ํ ๊ฒฐ์ ์ ์ธ "์ ๋ต"์ ์์ ๊ฒ์ ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ๋ด๊ฐ ๋น์ ์ด๋ผ๋ฉด _ํ๋ก์ ํธ ๊ตฌ์กฐ_์ ์ฐจ์ด์ ์ด ์ด๋์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ฌ๋ผ์ง๋์ง์ ์ง์คํ ๊ฒ์ ๋๋ค.
์ด๋ค ์ ๋ณด์ ๊ทผ๊ฑฐํ์ฌ ์ด๊ฒ์ ๋งํ๋๊ฐ? ๋ด ๋ง์, ํ์ผ ๋ชฉ๋ก์ด ์๋ค๋ ๊ฒ์ด ํฐ ์ฅ์ ์ด์ง๋ง ๊ฒฐ์ฝ ์ ์๊ฒ๋ง ์ ์ผํ ๊ฒ์ ์๋๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ ์ผํ ์ด์ ์ด๋ผ๊ณ ์ฃผ์ฅํ ์ ์ด ์์ผ๋ฉฐ ๋จ์ํ ๊ทธ๊ฒ์ด _main_ ์ด์ ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ๋ช ๊ฐ์ ์ project.json ํ์์ ๋ํ ํ ๋ก ์ ์ดํด๋ณด๊ณ ์ฌ๋๋ค์ด ๊ฐ์ฅ ๋จผ์ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์๊ณ ๊ฐ๋จํ๋ค๋ ๊ฒ์ ๋๋ค. JSON์ด ๊ตฌ๋ฌธ์ ์ผ๋ก ๋ ๊น๋ํด์๊ฐ ์๋๋ผ ํ๋ก์ ํธ ํ์ผ ๋ชฉ๋ก์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ด ์ธ๊ธํ๋ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ณํฉ์ด ์๋๊ณ ํ์ผ ์ฐธ์กฐ๊ฐ ๋ง์ด ๋์ด๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ๋ณํฉ๋๋ค๋ ๊ฒ์ ๋๋ค.
์ค๋์ xproj๊ฐ ์์ต๋๋ค. ์ ๊ทธ๋ฐ ๊ฒ์ด ํ์ํ ๊น์?
์ด ์ ์ฒด ํ ๋ก ์ ์ต์ ํ๋ก์ ํธ ํ์ผ ํ์์ ๊ดํ ๊ฒ์ ๋๋ค. ํ์ฌ ํ๊ฒฝ์ ๋น๊ตํ์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ ์ ๋ณด๊ฐ ์๋ ์๊ฒฌ์ด ๋ ๊ฒ์ ๋๋ค.
์ ๊ทธ๊ฒ์ด ํ ๋ก ์ด ๋์ด์๋ ์ ๋๋๊ฐ? ํฐํ MSBuild๋ .NET Core ์ฑํ์ ์ฃผ์ ์ฅ์ ์ด์์ต๋๋ค. ๋ด (๋ถ๋ช ํ) ๋น๊ณผํ์ , ๋ฐํฅ์ค, ํธํฅ๋ ์ค๋ฌธ์กฐ์ฌ์ ๋ํ ์๋ต์์ 20%๋ ์ด๊ฒ์ด ๊ทผ๋ณธ์ ์ผ๋ก ์๋ชป๋์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์ค์ ๋ก _MSBuild_์ ๋ํด ๋ ผ์ํ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ Visual Studio๊ฐ ์ญ์ฌ์ ์ผ๋ก MSBuild ํ๋ก์ ํธ๋ฅผ ์ฒ๋ฆฌํ ๋ฐฉ์์ ๋ํด ๋ ผ์ํ๊ณ ์๋ ๊ฒ์ ๋๋ค. MSBuild๋ ์ค์ ๋ก ํ๋ก์ ํธ์ ๋ชจ๋ ๋จ์ผ ํ์ผ์ ๋์ดํ ํ์๊ฐ ์๋ ๊ฒ์ ํฌํจํ์ฌ ์ด๋ฏธ ํ์ํ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ง์ํฉ๋๋ค.
๋ ์ค์ํ ๊ฒ์, ์ง๊ธ๊น์ง ์ด ํ ๋ก ์์ ๋น์ ์ด ํ ์ผ์ XML์ด ๋ง์์ ๋ค์ง ์๋๋ค๊ณ ์๋ฆฌ์น๊ณ ์ธ์น๋ ๊ฒ๋ฟ์ ๋๋ค. ๊ธ์", ์ง๊ธ์ ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ๋ฏ์ด ์ผ๋ฐ์ ์ผ๋ก "์ด์ " csproj์ ๋์ด๋ ํ์ผ ์๋ก ์ค์ด๋ญ๋๋ค. xproj ํ์์ ์ดํด๋ณด๋ ๊ฒ์ด ๊ท์ฐฎ๋ค๋ฉด ๋งค์ฐ ์์ ๊ฒ์ ์ ์ ์์ ๊ฒ์ด๋ฉฐ Daniel์ ์คํ ๋์ ๋์ "์๋ก์ด" csproj ํ์์ด ํ์ฌ project.json ํ์ผ๊ณผ ํฌ๊ธฐ๊ฐ ๊ฑฐ์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ๋ฌธ์ ? ๋น์ ์ ๋๋ดํ ์ฃผ์ฅ์ ํผ์น์ง๋ง ์ ํ ๋ท๋ฐ์นจํ์ง ์์ต๋๋ค.
@neoKushan ์ ๋นํ ์ด์ ์์ด Microsoft๋ฅผ ๋ฐฉ์ดํจ์ผ๋ก์จ ๊ณง Microsoft๋ก๋ถํฐ ์ผ์ข ์ ์์ ๋ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐฑ๋์ด์์ ๋ด๋ฆฌ๋ ์ต์ ์ ๊ฒฐ์ ์ด๋ผ๋ ์ฌ์ค์ ๊นจ๋ซ์ต๋๋ค. asp net์ ๋ค์ ์์ค๋ฅผ ๋ซ๊ณ Microsoft์ ๊ฐ์ ์ง์ง์๊ฐ ์คํ ์์ค ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์์๊ฒ ๋ฌป์ง ์๊ณ ์ํ๋ ๊ฒ์ ๊ฒฐ์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@abcplex ์ํ๊ณ ์๊ฐ๋ฝ์ง ํ๋ ๊ฒ ์ธ์๋ ๋ํ์ ๊ธฐ์ฌํ
์ง๊ธ๊น์ง ๋น์ ์ ๋น์ ์ ์ค์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๋จ ํ ๊ฐ์ง ์ด์ ๋ ๋์ดํ์ง ์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ถํ๋ง ํ๊ณ ์์ต๋๋ค.
@neoKushan ๊ฐ์ฅ ํฐ ํฌ์ธํธ๋ RTM์ผ๋ก ํ ๋ฌ ์ ์ ์ด๋ฌํ ์ ํ์ ๋ณํ๋ฅผ ์ํ ์๊ธฐ๊ฐ ์๋๋ผ๋ ๊ฒ์ ๋๋ค. ์ด ์๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
@abcplex RTM์์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ์ง ์์ต๋๋ค. RTM ์ดํ์ ์ ์ง์ ์ผ๋ก
JSON ๋ XML(Standup Blog Post์์ ์ผ๋ถ ์ฌ๋๋ค์ด ์์ฒญํ๋ ๊ฒ์ฒ๋ผ XAML๊ณผ ๋น๊ต)์ ์ด์ ๋๊ตฌ์ ๋ชจ๋ ์ข ๋ฅ์ ํ์ ํธํ์ฑ์ ๊ฐ๋ ์ฅ์ ์์ ์ฃผ์๋ฅผ ์ฐ๋งํ๊ฒ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ ์ด๊ฒ์ด ๋งค์ฐ ์๋ชป๋ ์ฌ๊ณ ๋ฐฉ์์ด๋ผ๊ณ ์ฃผ์ฅํ๊ณ ์ถ์ต๋๋ค. ์ข๋ ์ซ๋ csproj์ MSBuild๋ ๋๊ตฌ ์ฒด์ธ์ ํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ ๋์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์ง์ํ๋ ant์ ์ ํต์ ๋ฐ๋ฆ ๋๋ค. ์ด๊ฒ๋ค์ ๋งค์ฐ ๋ค๋ฅด์ง๋ง ์ด ์ ์ฐ์ ํ๋ก์ ํธ์ "์ ์" ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ ผ๋ฆฌ๋ฅผ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ด ํ๋ ์ผ์ ์ผ์ ์์ฒญ๋๊ฒ ๋ณต์กํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค.
์์ ์ธ๊ณ์์๋ "๋งจ ์๋์ ์์ด์ผ ํจ"์ด ์๋ก ์ด๋ํ๊ฑฐ๋ ๋๊ตฐ๊ฐ ํ๊ฒฝ ๋ณ์๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์ด ๊ฐ์๊ธฐ ์๋ชป๋ .targets ํ์ผ์ ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ํ์ผ์ด ๊นจ์ง ๊ฒ์ ์ฌ๋ฌ ๋ฒ ๋ณด์์ต๋๋ค. ์ ์ธ์ ๊ตฌ๋ฌธ์์ First-Level ์์(root-of-root)๊ฐ ์์ ์ข ์์ ์ด๋ผ๋ ๋ฐ๋ก ๊ทธ ๊ฐ๋ ์ ์์ ํ ๊นจ์ก์ต๋๋ค. ๊ทธ๊ฒ์ด MSBuild์ csproj์ ๋ ์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์์ ๋ค์ ๊ฐ์ ธ์ค๋ ์ ์ฐ์ ๋๋ค. ์ด์ csproj๋ฅผ ์ดํดํ๋ ค๋ฉด "์คํ"ํ๊ณ MSBuild์ ๋๊ฐ์ด ์คํํด์ผ ํฉ๋๋ค. ์, MSBuild๋ ์คํ ์์ค์ด์ง๋ง ์ค์ ๋ก๋ ์๋ฌด ๊ฒ๋ ์์ ํ์ง ์์ต๋๋ค. ์ฌ์ ํ ๋จ์ผ ๊ฐ์ ์ข ์์ฑ์ ๋์ ํฉ๋๋ค. ์ฌ์ ํ ์ด๋๊ฐ์ ์๋ ๋งค์ง ํ๊ฒ ํ์ผ์ ์์กดํฉ๋๋ค.
ํ๋ก์ ํธ ํ์ผ์๋ ํน์ ์์ ์์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ ๋๊ตฌ ์ฒด์ธ์ ๋ชจ์์ ์ํฅ์ ๋ฐ์ง ์๋ ๋ช ๊ฐ์ง ํน์ฑ์ด ์์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ".net 4.5์์ .net ์ฝ์ด๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ ๊ฒ"์ด๋ผ๋ ๋ง์ ๋ค์ ์ ์งํ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ํ์คํ ๊ณจ์นซ๊ฑฐ๋ฆฌ๊ฐ ์๋๋๋ค...
100% ๋์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋น๋ฉดํ ๊ณผ์ ๊ฐ ๋ฌด์์ธ์ง ๋ถ๋ช ํ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐ ์์ด ์ ์ผํ ์ด๋ ค์์ ํน์ .NET ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ค(System.Drawing ์ฐธ์กฐ), .NET ์ฝ์ด ์ง์์ ๋ํ Microsoft ํ์ ๊ณผ๋ฌตํจ์ด์์ต๋๋ค. (DocumentDB๋ฅผ ๋ณด๊ณ ์์) ๋ฐ ์ฃผ์ ๋ฒ์ ๊ฐ์ ์์ํ ์ ์๋ ํ์ค ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ.
์ด๋ ์์ ์์๋ project.json ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ฌ์ค ๊ทธ๊ฒ ์ฅ์ ์ด์๋ค. Ctrl+Shift+B๋ฅผ ํ ๋ ๋ง์ ์ฒ๋ผ ๋ฐ์ํ๋ ๋ณด์ด์ง ์๋ ์ธ๋ถ ์ฌํญ์ MSBuild๋ฅผ ๋คํํ ์ ์๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@neoKushan
@shederman
๋๋ XML์ ์ข์ํ์ง ์๋๋ค. ํ๋ก์ ํธ ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ๋ํด ์๋ชป๋ ํ์์ ๋๋ค. "๋ชจ๋ ๊ฒ์ ์ํ XML" ๋จ๊ณ์์ ๋์ ๋์์ ๋ ๊ทธ๊ฒ์ ๋์ ์๊ฐ์ด์๊ณ ์ง๊ธ์ ๋์ ์๊ฐ์ ๋๋ค.
์ด๊ฒ ์ค ์ด๋ ๊ฒ๋ ๊ทธ๊ฒ์ด ๋์ ์๊ฐ์ธ _์ด์ _๋ฅผ ์ค๋ช ํ์ง ๋ชปํฉ๋๋ค.
JSON ํ์ผ์ด XML ํ์ผ๋ณด๋ค ํจ์ฌ ๋ ์ ๋ณํฉ๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ ์๊ฒฌ์์ ์ธ์ ํ์ง๋ง ์ ๊ฒฝํ์ ๊ทผ๊ฑฐํ ๊ฒ์ ๋๋ค.
๋๋ ์ ๋ชฝ .json ๋ณํฉ๊ณผ ์ ๋ชฝ .xml ๋ณํฉ์ ๊ฒช์์ต๋๋ค. ๋ณํฉ์ ๊ดํด์๋ ํน๋ณํ ๋ง์์ ๋ค์ง ์์ต๋๋ค. ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ํ์์ ๊ด๊ณ์์ด ํ์ผ์ _size_์ ๋ฌธ์ ๊ฐ ์๋ ๋ณํฉ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
xproj ํ์ผ์ด ํ์ํ์ง ์๊ณ ์ฌ์ฉํ์ง ์๋ vscode๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋์ ํ์ฌ ํ๊ฒฝ์ด๊ณ ๋์๊ฒ ์๋ฌด ์๋ฏธ๊ฐ ์๋ xproj ํ์ผ์ ์ํ์ง ์๊ฑฐ๋ ํ์๋ก ํ์ง ์์ต๋๋ค.
๊ทธ๋ ๋ค๊ณ ํด์ ํ์ฌ xproj ํ์ผ ์๋ณด๊ณ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๊ทธ๋ ๊ฒ ํ์ง ์์ผ๋ฉด ์๊ฐ๋ฝ์ ๊ท์ ๋๊ณ ๋์ ๊ฐ๊ณ "๋ผ๋ผ๋ผ"๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ ํ์๋ฅผ ํ๋ ๊ฒ์
๋๋ค.
๋ค์ ๋งํด, ๋ณํ๊ฐ ์ผ์ด๋๊ณ ์๋ค๋ ์ฌ์ค์ ํ๋ฅผ ๋ด๊ณ ๊ทธ๊ฒ์ ๋ํด ์ ์ํ๋ฉฐ ์๋ฌด ๊ฒ๋ ์ฑ์ทจํ์ง ๋ชปํ๊ฑฐ๋ ์ค์ ๋ํ์ ์ฐธ์ฌํ์ฌ ์ด๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ง์ํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์ง ๊ฒฐ์ ๋์ง ์์ ํ ๊ฐ์ง๋ nuget ์ข ์์ฑ์ด csproj์ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ธ์ง ๋๋ nuget.json์ด ๋ ๊ฒ์ธ์ง์ ๋๋ค. ๋ฐ๋ก ๊ฑฐ๊ธฐ์ ๊ธฐ๋ณธ ์ค์ ์ด ์์ต๋๋ค. .json ํ์ผ์ ์ข ์์ฑ ๋ชฉ๋ก์ด ์์ผ๋ฉด csproj์ ๋ฌด์์ด ๋จ์ต๋๊น? ์ผ๋ง๋ ์์ฃผ ๋ณ๊ฒฝ๋ฉ๋๊น? _๊ทธ๊ฒ์_ ๋ณํฉํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ธ๊น์?
๋๋ ๊ฐ์ธ์ ์ผ๋ก ๊ทธ๊ฒ์ด ํ๋์ ํ๋ก์ ํธ ํ์ผ์ ๋ชจ๋ ํฌํจ๋์ด ์๊ธฐ๋ฅผ ์ํ์ง๋ง ํ๋ก์ ํธ ์์ฒด์์ ๋๊ฒ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋งค๋ ฅ๊ณผ ์ด์ ์ ๋ณผ ์ ์์ต๋๋ค. ๋ ๋ค ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ ์๋ง๋ ๊ฐ์ฅ ์ข์ ์๋ฃจ์ ์ ๋ ๋ค ํ์ฉํ๊ณ ์ข ์์ฑ ๋ชฉ๋ก์ด ์๋ csproj๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ข ์์ฑ์ด ์๋ .json ํ์ผ์ ๊ฐ๋ฆฌํฌ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. MSbuild ์์ฒด์ ์ฝ๊ฐ์ ๋ณต์ก์ฑ์ด ์ถ๊ฐ๋๋ ๋์ ๋ ์ธ๊ณ์ ๋ชจ๋์ ์ต๊ณ ๊ฐ ์น๋ฆฌํฉ๋๋ค.
์๋์, ์ ๋ MSBuild์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. MSBuild ๋ฐ Team Build๋ก ๋ง์ ์์ ์ ์ํํ์ต๋๋ค. ๊ทธ๋ค์ ๊ฒฐ์ฝ ์ฌ๋ฏธ ์์๊ณ ๊ฒฐ์ฝ ์ฝ์ง ์์์ผ๋ฉฐ ํญ์ ์งํํ์์ ๋ผ์ง์ ์จ๋ฆ์ ํ์ต๋๋ค. ์ ๋ MSBuild๋ฅผ ์ซ์ดํ๋ฉฐ ํผ์๊ฐ ์๋๋๋ค.
TFS์ XAML ๊ธฐ๋ฐ ๋น๋ ์ ์๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ด๋ ์ด ํญ๋ชฉ(์ผ๋ถ)์ ๋ํด์๋ ๋์ํ ์ ์์ต๋๋ค.
MSBuild๋ ๊ฐ๋จํ ์์ ๋ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ๋์์ ์ดํด๋ณด๊ณ MSBuild์ ์ํด ๊น๋ฐ์ด์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ gulp์ sbt๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ณด์ญ์์ค.
๊ทธ๋ฐ ๋ค์ ์ ๋ชจ์ฐจ์์ ์ฅ๋๊ฐ์ ๋์ง์ง ๋ง๊ณ "์๋ก์ด" ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ _์ค์ ๋ก_ ์ด๋ค ๋ชจ์ต์ด์ด์ผ ํ๋์ง์ ๋ํ ํ ๋ก ์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฏธ๋๋ฅผ ์์ํด ๋ณด์ญ์์ค. ๊ทธ ํ๋ก์ ํธ ํ์ผ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๊ฒผ์ผ๋ฉด ํฉ๋๊น?
XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฏธ๋๋ฅผ ์์ํด ๋ณด์ญ์์ค.
์. ์ข์, ๊ทธ๋ผ ๋ด๊ฐ ์ํ์ง ์๋ ๋ฏธ๋๋ฅผ ์์ํ๊ณ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํด์ผ ํฉ๋๊น? ์, ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค. ์ข ๋ ํ๋์ ์ด๊ณ ํ์ ์ ์ธ ๋น๋ ์์คํ ์ ์ดํด๋ณด๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์์ฃผ ๋จผ ๊ณผ๊ฑฐ์ XML์ ๋จ๊ธด ๊ฒ๋ค์ ๋๋ค.
์ด๋์:
var gulp = require('gulp')
, minifyCss = require("gulp-minify-css");
gulp.task('minify-css', function () {
gulp.src('./Css/one.css') // path to your file
.pipe(minifyCss())
.pipe(gulp.dest('path/to/destination'));
});
์๋๋ฉด ์ด์ฉ๋ฉด
organization := "com.devdaily"
name := "ScalatraTest1"
version := "0.1.0-SNAPSHOT"
scalaVersion := "2.9.1"
seq(webSettings :_*)
libraryDependencies ++= Seq(
"org.scalatra" %% "scalatra" % "2.0.4",
"org.scalatra" %% "scalatra-scalate" % "2.0.4",
"org.scalatra" %% "scalatra-specs2" % "2.0.4" % "test",
"ch.qos.logback" % "logback-classic" % "1.0.0" % "runtime",
"org.eclipse.jetty" % "jetty-webapp" % "7.6.0.v20120127" % "container",
"javax.servlet" % "servlet-api" % "2.5" % "provided",
"com.mongodb.casbah" %% "casbah" % "2.1.5-1"
)
resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"
์ค, ๊ทธ๋, ๋น์ ์ด์ ์ฐ๊ฒฐํ๋ xproj ํจ์ฌ ๋ ๊ทธ๋ ๋ค. ๋ฉ์ง๊ณ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํํ๋ ฅ, ํํ๋ ฅ์ ์์ง ๋ง์ธ์. ๊ทธ ProjectGuid๋ ๋ฌด์์ ์ํ ๊ฒ์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ๋๋ ๋๊ตฌ ๋ฒ์ ์ ์ค์ ํ๋ 90์๋ฅผ ์ข์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ DnxInvisibleContent? ๋ด ๋น๋ ์์คํ ์ด ์๋ฉด ์ ์ฉํ๊ฐ์? ๋ด๊ฐ ์คํํ์ง ์๋ IDE์ ์ด๋ค ํ์ผ์ด ํ์๋์ง ์์ต๋๊น?
์ ๋ชจ์ฐจ์์ ์ฅ๋๊ฐ์ ๋์ง์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ํ์ง ์์ต๋๋ค :-)
์๋, ๋๋ฌ์ด. Immo์ ๊ธด ๋ํ๋ฅผ ๋๋ด๊ณ ์ด ์ ํฌ๋ฅผ ๋๋์ต๋๋ค. ๋ชจ๋ ์ฌ๋์ ๋ถ๋ถ์ ์ธ ๊ฒฌํด๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์์ ์ ๋ฐฉ์์ด ๋ชจ๋ ์ฌ๋์๊ฒ ์๋ฒฝํ์ง ์์ ์ ์๋ค๋ ํฐ๋ฌด๋์๋ ๊ฐ๋ ์ ๋ฃ๊ณ ์ถ์ดํ๋ ์ฌ๋์ ์์ต๋๋ค.
[์์ค์ ์ ๊ฑฐํ๋๋ก ์์ ๋จ]
@shederman : ์ฌ๊ธฐ์ ๋น๋ ์ ์ ํ์ผ์ด ํ์๋ฉ๋๋ค. ํ๋ก์ ํธ ์ ์๋ก ๋น๋ ์ ์์์ ๋ฒ์ด๋๊ณ ์ถ์ต๋๋ค. ์์ฑ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ๊ณผ ๋ณ๋๋ก ์์ฑํ ํ๋ก์ ํธ/์ํฐํฉํธ์ ๋ํ ์ ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ์ํ ๊ณต๊ฐ์ด ์์ต๋๋ค. ์ด ๋์ ๋ณํฉํ๋ค๋ ๊ฒ์ MSBuild ํ์ผ์ ํ๋ก์ ํธ ํ์ผ๋ก ์ฌ์ฉํ ๋์ ์ฃผ์ ๋ฌธ์ ์ค ํ๋์ ๋๋ค.
์์ฑํ ์ํฐํฉํธ, ์ฌ์ฉํ ์ข ์์ฑ ๋ฐ ๋๊ตฌ ์ฒด์ธ, ๋์คํฌ์์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ค์ํ ์์์ ๋ ์ด์์์ ์ค๋ช ํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ง ์ง์ ํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๋ถ๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก MSBuild๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ๋ก ์งํํ์ญ์์ค. ๊ฟ๊บฝ๊ฟ๊บฝ, babel ๋๋ what-have-you๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋์๊ฒ ๊ทธ๊ฒ์ project.json์ด ์ํํ๋๋ก ์ค์ ๋ ๊ฒ์ ๋๋ค. (๋๋ ๊ฑฐ๊ธฐ์์ ๋ช ๋ น์ ์ ์ํ๋ ๊ธฐ๋ฅ์ ํฌ์ด ์๋์์ง๋ง)
๋ค, ์ดํด๊ฐ ๋ฉ๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ project.json์ ๋ํด ์ข์ํ๋ ๊ฒ ์ค ํ๋์์ต๋๋ค. ๊ทธ๊ฒ์ "์ด๋ป๊ฒ"๊ฐ ์๋๋ผ "๋ฌด์"์ ์ ์ํ์ต๋๋ค. ํ๋์ ํ์ผ์ ๋๋ฌด ๋ง์ ๊ฒ์ ๋ฃ์ผ๋ฉด ํ์ผ์ด ๋๋ฌด ๋ณต์กํด์ง๋๋ค. ํนํ IDE๊ฐ ์ด๋ฆฌ์์ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ด์ฉ์ ํธ์ง์์ ๊ฐ๋จํ IDE์ ํ์ํ์ง ์์ต๋๋ค.
VS Code์ ๊ฐ์ ๋ฎ์ ํ์ฌ UI์์๋ ํ๋ก์ ํธ ์์คํ ์ด ๋ณ๋ก ํ์ํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋น๋์ ๋๋ค. ๋น๋ํด์ผ ํ ๋ด์ฉ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ ์ ์ธ์ ์ธ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ์ด๋ค ๋จ๊ณ๋ฅผ ์ํํด์ผ ํ๋์ง ๋งํ๋ฉด์ ์ผ๋ถ๋ ํ์์ ์ผ ์ ์์ต๋๋ค.
์, MSBuilds์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ํ๋์ ์์คํ ์์ ๋ชจ๋ ์์ ์ ์ํํ๋ ค๊ณ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. project.json์ ์๋์ํค๋ ๊ฒ๊ณผ๋ ๋ฐ๋๋ก MSBuild๋ฅผ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ ๋ช ๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ฃผ์ธ์. ๋๋ ๊ทธ๊ฒ์ ๋ณด์ง ์๋๋ค. ๋ด ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋๋ฌด ๋จ์ํ ์ ์์ผ๋ฏ๋ก ๋ช ๊ฐ์ง๋ฅผ ๋ณด์ฌ์ฃผ์ธ์.
@shederman ์คํ ๋์ ๋ ธํธ์๋ ํ๋ก์ ํธ ๊ฐ์ ์์ค ํ์ผ์ ๊ณต์ ํ ์ ์์ด์ผ ํ๋ค๊ณ ์ธ๊ธ๋์ด ์์ต๋๋ค.
๊ทธ๋์ ... ์ด๊ฒ์ ์คํ ์์ค ํ๋ก์ ํธ์ด๊ณ Microsoft๊ฐ "์กด์ฌํ๋ ํ"์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ฌ๋๋ค์๊ฒ ๊ทธ๋ ๊ฒ ์ค์ํ๋ค๋ฉด - ๊ทธ๋ฆฌ๊ณ ๋๋ ์ฌ๊ธฐ์ ๋ฌด์งํ ์ง๋ฌธ์ํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ๋์์ต๋๋ค - ์ผ๋ง๋ ๋ง์ ์๊ฐ .NET Core๊ฐ MSBuild์ ๋์์ผ๋ก project.json์ ๊ณ์ ์ฌ์ฉํ ์ ์๋๋ก /effort/energy๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น? ์ถฉ๋ถํ ์ฌ๋๋ค์ด ๊ธฐ์ฌํ๊ณ ์ฝ๋๊ฐ ์ถฉ๋ถํ๋ค๋ฉด MS๊ฐ ์ด ํ๋ก์ ํธ์์ ์ด๋ฅผ ์๋ฝํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์คํ ์์ค์ ์๋ฆ๋ค์(๊ทธ๋ฆฌ๊ณ ๋ชฐ๋ฝ)์ ์ผ๋ถ๋ ๊ธฐ๋ณธ ์ ์ง ๊ด๋ฆฌ์๊ฐ ๋ค๋ฅธ ์ฌ๋์ด ์ ๊ณตํ๋ ๊ฒ์ ๋๋ฌด ๋ง์ด ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ๋ถ๊ธฐํ ์ํ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์คํ ์์ค์ธ ์ฝ๋์ ์์ ์ค ์ผ๋ถ๋ ๋จ์ํ ๋ณด๋ ๊ฒ์ด ์๋๋ผ ์์ ํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ฐ์ธ์ ์ธ ๊ฒฌํด๋ ํฅํ ๊ณํ์ ๊ดํ ๊ฒ์ด๋ผ๋ ์ ์์ Xamarin๊ณผ ๊ด๋ จ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ํ ์ต๊ทผ์ ์คํ ๋์ ์์ ์ฝ์ ์ฑ์ ๋น๋ํ๋ ๊ฒ์ด ์ผ๋ฅ ์๋ฏผ์ด ๋๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ค์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ ์๋ก์ด .NET(ASP.NET 5 + DNX)์ ์น ์ฑ ๊ตฌ์ถ์ ์ค์ ์ ๋์์ง๋ง ์ด์ ๋ ๊ทธ ์ด์์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋น๊ต์ ์ต๊ทผ์ ๋ฐ์ํ์ผ๋ฉฐ .NET ๋ฐ ASP.NET ํ์ด ๋ณํฉ๋์์ผ๋ฉฐ Xamarin๋ ๊ตฌ๋งคํ์ต๋๋ค. ๊ทธ๋ค์ ์ด๋ฌํ ์ฌ๋ฌ ์๋๋ฆฌ์ค(๋ฐ ์ฌ๊ธฐ์์ ์ถ์ธกํ์ง ์์ ์๋ก์ด ๋ฏธ๋ ์๋๋ฆฌ์ค)๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ ๋์ ํ๋ก์ ํธ ์์คํ ์ด ํ์ํ๊ณ .NET Core๋ ๊ณง ์ ๊ณตํ๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๋ฌด์์ ํ ๊น์? ํ์ํ ๊ฒ์ ์ด๋ฏธ ์ฒ๋ฆฌํ๊ณ ์ฒ์๋ถํฐ ์์ํ ์ ์๋ ๊ธฐ์กด MSBuild๋ฅผ ์์ ํ ๋ฌด์ํ์๊ฒ ์ต๋๊น? ๋ฏธ์ํ์ง๋ง, ๋๋ ๋ด๊ฐ ์ ํํ ๊ธธ์ ์๊ณ ์๋ค.
๋ฌธ์ ์ ์ข์ ๋นํธ๋ ๋ณํฉ๊ณผ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก์ ํธ ํ์ผ์ ํ๋ก์ ํธ์ ํ์ผ ์ด๋ฆ์ด ํฌํจ๋์ด ์์ง ์๊ณ ์ข ์์ฑ์ด ๋ณ๋์ ๊ตฌ์ฑ ํ์ผ๋ก ํธ์๋๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ ํ์ผ์ด ๋ณ๊ฒฝ๋์ด์ผ ๋ณํฉ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ ธ์ผ ํฉ๋๋ค. ๋น๊ต์ ๋๋ฌผ๊ฒ.
๊ทธ๋ฅ ๋ด ์๊ฒฌ
๋ณํฉ ๋ฌธ์ ๋ ๋จ ํ๋์ ๋ฌธ์ ์ ๋๋ค. MSBuild์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ์ด ์๋๋ฆฌ์ค์ ๋ฏธ์น ๊ฒฐ๊ณผ ์ค ํ๋๋ ์ด์ MSBuild๋ฅผ Linux ๋ฐ OSX๋ก ์ด์ํ๋ ๋ฐ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ค์ผ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค! ์์ ํด๋ด.
๋๋ ๊ทธ๋ค์ ์ด์ ๋ฅผ ์์ง๋ง ๊ทธ๋ค์ ์ด์ ๋ ๋์๊ฒ ์ ํ ํจ๊ณผ๊ฐ ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์๊ฒ ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๊ฐ๊ณ ์๋ ๋ฐฉํฅ์ ๋ํ ํ๊ณ ํ ํ์ ์ ๋ฐํ์ผ๋ก ํฌ์๋ฅผ ํ๊ณ , ๊ทธ๋ค์ ์๋ฌด๋ฐ ์ฑ ์ ์์ด ๋ค์ ํฌ์์ ์ฐฉ์ํ์ผ๋ฉฐ, ์๋ง๋ ๊ทธ๋ค์ด ๋ ๋์ ๊ฒฐ์ ์ _์ปค๋ฎค๋์ผ์ด์ _ํ์ด์ผ ํ๋ค๋ ํ์์ ๋ถ๊ณผํ์ต๋๋ค. ๊ทธ๋ค์ MSBuild๊ฐ ์ง์ํ๋ ์ฃ์ง ์ผ์ด์ค์ ์ด๋ฌํ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ง์ํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ด์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก project.json์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์์ต๋๋ค. ๊ธ์, ๊ทธ๊ฒ์ ์ฌ๋ฐ๋ฅธ ์๊ฐ์ผ๋ก ์๋ฌด๋ ๊ทธ ๋ชจ๋ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ง์ํ์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ _์ ๋_ ์ค๋จํ์ง ์์ ๊ฒ์์ ์๋ฏธํฉ๋๋ค. ํ์คํ ASP.NET ํ๋ก์ ํธ๋ฅผ ์ํํ๋ ์ฌ๋์ ์ด๋ฌํ ์ฃ์ง ์ผ์ด์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
ํฌํฌ๊ฐ ๊ฐ๋ฅํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ผ๋ง๋ ํฌ๊ณ ํตํฉ๋์ด ์๋์ง๋ฅผ ๊ณ ๋ คํ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์กฐ์ฐจ ๊ณ ๋ คํ๋ ๊ฒ์ ๋ฒ ์ฐฌ ์ ๋ง์ ๋๋ค. ํ์ค์ ์ด๊ฒ์ด ์ง์ ํ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์๋๋ผ Microsoft ํ๋ก์ ํธ์ด๋ฉฐ ๊ทธ๋ค์ ์ฐ๋ฆฌ์ ์๊ฒฌ ์์ด ํ์ฌ ๊ฒฐ์ ์ ๋ด๋ ธ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋นจ์๋ค์ด๊ณ ๋ฐ์๋ค์ฌ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ค ๋ฐ๋๊ฐ ์๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ค์ด _์ ๋_ ์ฌ๊ณ ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๊ฒ์ด ๋์๊ฒ ๋ถ๋ช ํด์ก์ต๋๋ค.
๊ทธ๋์, ์ฐ๋ฆฌ๊ฐ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ project.json ๋น๋ ์์คํ ์ ๋ถ๊ธฐํ๊ฑฐ๋, ๋ค๋ฅธ ๋น๋ ์์คํ (FAKE?)์ผ๋ก ์ ํํ๊ฑฐ๋, ๋น์ ์ด ๊ทธ๊ฒ์ ๋นจ์ ๋จน๊ฑฐ๋, ๋ค๋ฅธ ํ๋ซํผ์ ์ฌ์ฉํฉ๋๋ค. ๋๋ ๊ฑฐ๊ธฐ์์ ๋ชจ๋ ์ ํ์ ์ด๊ฑฐํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
@shederman MSBuild๋ 2015๋ ์ด๋ถํฐ ์คํ ์์ค์์ผ๋ฉฐ ๋น๋๋ OSX/Ubuntu์์ ์ ๋ฌ๋๋ฏ๋ก ์ด์ํ ์๊ฐ๋งํผ ๋ง์ ์์ ์ด ํ์ํ์ง ์์ต๋๋ค(https://github.com/Microsoft/msbuild). , ์๋ฅผ ๋ค์ด OSX๊ฐ 3์์ OK๋ฅผ ๊ตฌ์ถํ๊ณ ์์๋ ๊ฒ์ฒ๋ผ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํ์ํฉ๋๋ค.
์ด๋ฐ. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ _ํด์ผ_ ํ๋์ง์ ๋ํด ๊ฑฑ์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ ๋์ ๊ทธ๊ฒ์ ํ์ต๋๋ค...
๋ง์น ํ๋์ผ์ํ์ธ ๊ดด๋ฌผ์ด ๋ฉ๋ฆฌ์ ๋์งํ๋ ๊ฒ์ ๋ณด๋ ์ฌ๋์ฒ๋ผ ๋๊ปด์ง๋๋ค. ํฅ๋ฏธ๋กญ๊ณ , ํฅ๋ฏธ๋กญ๊ณ , ๊ฑฑ์ ๋๊ณ , ์กฐ๊ธ ๋ ํ์ค์ค๋ฝ์ต๋๋ค :-)
@darrelmiller ์คํ ๋์ ๋ ธํธ๋ ํ๋ก์ ํธ ๊ฐ์ ์์ค ํ์ผ์ ๊ณต์ ํ ์ ์์ด์ผ ํ๋ค๊ณ ์ธ๊ธํฉ๋๋ค.
์ง์ง? ์ฌ๋๋ค์ด ์์ง๋ ๊ทธ๋ ๊ฒ ํด์? ๋ด ๋ง์ AssemblyInfo.cs์ ๋ํด ์ํํ๊ณ ์ํ ์๋๋ก ๋์๊ฐ์ ๊ฐ๋ ฅํ ์ด๋ฆ ํค๋ฅผ ๊ณต์ ์์ค ํ์ผ์ ๋ฃ์์ต๋๋ค.
์ข์, ๊ทธ ์ฌ์ฉ ์ฌ๋ก์ด์ง๋ง, ์ง๊ธ์ ์ ๋ง๋ก ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ฃ๊ณ ์ถ์ต๋๋ค. ๊ถ๊ธํ๋ค.
@shederman
์. ์ข์, ๊ทธ๋ผ ๋ด๊ฐ ์ํ์ง ์๋ ๋ฏธ๋๋ฅผ ์์ํ๊ณ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํด์ผ ํฉ๋๊น? ์, ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์
๋น์ ์ด ํด์ผ ํ ์ผ์ JSON ๋์ XML์ ๋ฐ์๋ค์ด๋ ๊ฒ๋ฟ์ ๋๋ค. ์ด์ ์ด ๋ฌด์์ธ์ง ๋ณด๊ธฐ ์ํด ๊ทธ ๊ฒ์์ ํ๊ณ ์ถ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ๋น์ ์ด ํ๊ณ ์ถ์ ์ผ์ ์ค์ ๋ก ์ด์ ๋ฅผ ์ธ๊ธํ์ง ์๊ณ XML์ด ์ผ๋ง๋ ๋์์ง์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ๋ฟ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฐ. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ํด์ผํ๋์ง ๊ฑฑ์ ํ๊ณ ๊ทธ๋ค์ ๊ฐ์ ๊ทธ๊ฒ์ํ์ต๋๋ค ...
๊ทธ๋ค์ ์ง๊ธ ๋ฌธ์ ๊ทธ๋๋ก _๋ _ ๋์ "์ผ์ ํ๊ณ ์์ต๋๋ค." ๊ทธ๋ค์ ๋ช ๋ ์ ์ ์คํ ์์ฑ .net์ ๋ํด ์ด์ผ๊ธฐํ์ผ๋ฉฐ ๋ก๋๋งต์ ์ ์ํ์ผ๋ฉฐ ๊ถ๊ทน์ ์ผ๋ก ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋๋ ๊ฒ์์ ๋ถ๋ช ํ ํ์ต๋๋ค.
๋น์ ์ ์ด ๋ณํ์ ์๋นํ ํ๊ฐ ๋ฌ๊ณ , ๋๋ ๊ทธ ๋ณํ์ ํ๊ฐ ๋ ๋๋ค์์ ์ฌ๋๋ค์ด ๋ชจ๋ ์น ๊ฐ๋ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ .net ์ํ๊ณ์ ์์ ๋ถ๋ถ์ผ ๋ฟ์ ๋๋ค. ๊ฑฐ๋ํ ์๋น์ค ์ํ๊ณ, ๋ชจ๋ฐ์ผ ๋ฐ ํด๋ผ์ฐ๋ ๊ฐ๋ฐ์๊ฐ ์์ต๋๋ค. .net ์ฝ์ด๋ก ์ด์ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ์ฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ข๋ ์ซ๋ project.json์ ํ์ฌ ๋ชจ๋ ๋ชจ๋ธ์์ ์๋ํ์ง ์์ต๋๋ค. "์๋์ํค์ญ์์ค"๋ผ๊ณ ๋งํ์ง๋ง ๋ช ํํ๊ณ ๋ช ํํ๊ฒ ์ ์๋ ๊ตฌ์กฐ๊ฐ ์๊ณ ๋ ๋์ ๊ฒ์ ์ฃผ์์ด ์๋ ํ์ผ์ ์ ์ธํ๊ณ ๋ ๋ ๋ค๋ฅธ ์ง์ ๋ถํ ํ๋ก์ ํธ ํ์ผ๋ก ๋๋ ๊ฒ์ ๋๋ค. ๋ง์ง๋ง ์์ ์ project.json์ ์ฌ๊ณ ํ๊ธฐ์ ์ถฉ๋ถํ ์ด์ ์ ๋๋ค.
์ค ์, ์ฐ๊ฒฐํ xproj๊ฐ ํจ์ฌ ์ข์ต๋๋ค. ๋ฉ์ง๊ณ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํํ๋ ฅ, ํํ๋ ฅ์ ์์ง ๋ง์ธ์.
์ ์ด๋ ๋น์ ์ ๋ง์นจ๋ด ๊ทธ๊ฒ์ ๋ณด์์ต๋๋ค. ๋น์ ์ด ๊ท์ฐฎ๊ฒํ๊ธฐ ์ ์์ด ๋ฌธ์ ์ 72 ๊ฐ์ ๋๊ธ์ด ํ์ํ์ต๋๋ค. ๊ณ์ ๋งํ์ง๋ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค. MSBuild๊ฐ ์ผ๋ง๋ ๋์ฐํ์ง์ ๋ํด ๋ถํํ๋ ๋์ , ์ ๋์ฐํ์ง์ ๋ํด ์ด์ผ๊ธฐ
๋ณํฉ ๋ฌธ์ ๋ ๋จ ํ๋์ ๋ฌธ์ ์ ๋๋ค. MSBuild์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค.
์ด๊ฒ์ด ์ ๋ฌธ์ ์ผ๊น์? ๋น์ ์ MSBuild๋ฅผ ์ซ์ดํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ดํดํฉ๋๋ค. ํ์ง๋ง XML์ _๊ฐํ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์ ์ธํ๊ณ MSBuild์ ๋ํด ๋น์ ์ด ์ซ์ดํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
์ด ์๋๋ฆฌ์ค์ ๋ฏธ์น ๊ฒฐ๊ณผ ์ค ํ๋๋ ์ด์ MSBuild๋ฅผ Linux ๋ฐ OSX๋ก ์ด์ํ๋ ๋ฐ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ค์ผ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค! ์์ ํด๋ด.
๋ค๊ฐ ์ณ์! ์ํ๋ IDE๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ํ๋ซํผ์์ ๋ชจ๋ ์ข
๋ฅ์ .net ์ฑ์ ๊ฐ๋ฐํ ์ ์๋ค๋ ๊ฒ์ ๋์ฐํ ๊ฒ์
๋๋ค. ์์ด๋ค์ ์๊ฐํ์ญ์์ค!
Microsoft๊ฐ ์์ ์ ํ์ ์์ค ๊ธฐ์ ์ ํฌ์ํ๋ ๋์ ์์
์ ์คํ ์์ฑํ๊ณ ๋๊ตฌ๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ ์ด์ํ๋ ๋ฐ ์ด๋ป๊ฒ ์๊ฐ์ ํ ์ ํฉ๋๊น?
๋๋ ๊ทธ๋ค์ ์ด์ ๋ฅผ ์์ง๋ง ๊ทธ๋ค์ ์ด์ ๋ ๋์๊ฒ ์ ํ ํจ๊ณผ๊ฐ ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์๊ฒ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ค์ ๋น์ ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์ฌ๋๋ค์ ์ํด ์ผํ๊ณ ์์ต๋๊น?
์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๊ฐ๊ณ ์๋ ๋ฐฉํฅ์ ๋ํ ํ๊ณ ํ ํ์ ์ ๋ฐํ์ผ๋ก ํฌ์๋ฅผ ํ์ผ๋ฉฐ, ๊ทธ๋ค์ ์๋ฌด๋ฐ ์ฑ ์ ์์ด ๋ค์ ํฌ์์ ์ฐฉ์ํ์ผ๋ฉฐ, ์๋ง๋ ๊ทธ๋ค์ด ๊ฒฐ์ ์ ๋ ์ ์ ๋ฌํ์ด์ผ ํ๋ค๋ ํ์์ ๋ถ๊ณผํ์ต๋๋ค.
์ด๋ค _๋ฐฉํฅ_์ ๋ง์ํ์๋ ๊ฑด๊ฐ์? ๋ชฉํ๋ ํญ์ ๋ชจ๋ ๊ณณ์์ .net์ด์์ผ๋ฉฐ "๋ชจ๋ ๊ฐ๋ฐ์, ๋ชจ๋ ์ฑ, ๋ชจ๋ ํ๋ซํผ"์ด ์ค๋์ ๋งํธ๋ผ์ด๋ฉฐ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ์ ํ ์์ต๋๋ค. ๊ทธ๋ค์ ํ๋ก์ ํธ ํ์ผ์ ์๊ณ ๋จ์ํ๋ฉฐ ์ฌ๋์ด ์ฝ์ ์ ์๊ณ IDE ์์ด ํธ์งํ ์ ์๋๋ก ์ ์งํ๋ ๊ฒ์ด ๋ชฉํ๋ผ๊ณ ๋ถ๋ช ํ ๋ฐํ์ต๋๋ค. ๋น์ ์๊ฒ์ ๋นผ์๊ธด ๊ฒ์ ์๋ฌด๊ฒ๋ ์์ต๋๋ค. .net์ด ๋ชจ๋ฐ์ผ, ํด๋ผ์ฐ๋ ๋ฐ ์น์ ์ํ ์ผ๋ฅ ๊ฒฝํ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค๋ฉด ์ฝ๊ฐ์ XML์ ์ฒ๋ฆฌํด์ผ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๊ทธ๋ค์ MSBuild๊ฐ ์ง์ํ๋ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก project.json์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ _edge_ ๊ฒฝ์ฐ๋ฅผ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค. project.json์ด ๊ฑฐ์ ์๋ฒฝํ๋ค๊ณ ์ ์ํ๋ ๊ฒ์กฐ์ฐจ ์ฐ์ค๊ฝ์ค๋ฝ์ต๋๋ค.
ํ์คํ ASP.NET ํ๋ก์ ํธ๋ฅผ ์ํํ๋ ์ฌ๋์ ์ด๋ฌํ ์ฃ์ง ์ผ์ด์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. asp.net ๊ฐ๋ฐ์์ธ ์์ ์ธ์ ๋ค๋ฅธ ์ฌ๋์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ถฉ๋ถํ ๊ณตํํ์ง๋ง ๋ค์ ํ ๋ฒ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ค์ํ๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๊ณ ๊ทธ์ ๋ฌด๊ธฐ๋ฅผ ๋ค๊ณ ์๋ ๋์ ์ต๊ณ ์ ์์คํ
์ ๋ง๋ค๊ธฐ ์ํด ๋
ธ๋ ฅํ์ญ์์ค. ์ฆ,์ด ๊ทธ๋ฆผ์ด ๋น์ ๊ณผ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์์
์ด ๋ชจ๋๊ฐ ํฐ ์๋๋กํ๋ ๊ฒ๋ณด๋ค ๋ ํฐ ๊ฒ์ ๋ฐ์๋ค์ด๋ ์๋ฏธ๋ ์์ ํ ๋ค๋ฅธ ๋งํฌ ์
์ ๋ํ ์์์ ๊ตฌ๋ฌธ๊น์งํ์ง ํ๊ท
๋ด๊ฐ ๊ณ์ ๋งํ๋ฏ์ด, nuget.json์ด ๋ชจ๋ ์ข
์์ฑ์ ๋์ดํ๋ค๋ฉด ๋ฌด์์ด ๋จ์ ์์ต๋๊น? XML์ ๋ช
๋ช
๋ ์์์์ ์ผ๋ถ ์๋นํ ์ ์ ์ธ ํ๋๋ฅผ ์ ์ํ๋ ๋ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ต๋๊น?
ํ์ค์ ์ด๊ฒ์ด ์ง์ ํ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์๋๋ผ๋ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ๋งํ๋ฏ์ด ์คํ ์์ค๊ฐ ๋๋ค๋ ๊ฒ์ ์์์ ๋ถ๋ง์ ์ ๊ธฐํ๋ ์ฌ๋๋ค์๊ฒ ๋ค๋ก ๊ตฌ๋ถ๋ฆฌ๋ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ pull ์์ฒญ์ ์๋ฝํ๊ณ ๋ ๋์ ๊ฒ์ ์์ฑํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ผ๋ง๋ ํฌ๊ณ ํตํฉ๋์ด ์๋์ง ๊ณ ๋ คํ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์กฐ์ฐจ ๊ณ ๋ คํ๋ ๊ฒ์ ๋ฒ ์ฐฌ ์ผ์ ๋๋ค.
์ข์, ๊ทธ๋์ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๊ฒ์ "๋๋ ๋ ํฐ ๊ทธ๋ฆผ์ ์ดํดํ์ง ๋ชปํ๊ณ ๋ ํฐ ๊ทธ๋ฆผ์ ์ดํดํ๊ณ ์ถ์ง ์์ง๋ง, ๊ทธ๊ฒ์ด ์๋ฏธ๋ฅผ ์์ ํ ๋ฌด์ํ๊ณ ๋ด ์์ ๊ฑฐํ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ๋ถํํ ๊ฒ์ ๋๋ค. ๋ด ๊ฑฐํ์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์์ต๋๋ค."
๊ทธ๋์, ์ฐ๋ฆฌ๊ฐ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ project.json ๋น๋ ์์คํ ์ ๋ถ๊ธฐํ๊ฑฐ๋, ๋ค๋ฅธ ๋น๋ ์์คํ (FAKE?)์ผ๋ก ์ ํํ๊ฑฐ๋, ๋น์ ์ด ๊ทธ๊ฒ์ ๋นจ์ ๋จน๊ฑฐ๋, ๋ค๋ฅธ ํ๋ซํผ์ ์ฌ์ฉํฉ๋๋ค. ๋๋ ๊ฑฐ๊ธฐ์์ ๋ชจ๋ ์ ํ์ ์ด๊ฑฐํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๋๋ ... ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋จ์ง ๋ง๋ ์ ๋๋ ์๊ฐ์ด์ง๋ง ์ค์ ๋ก ๋ํ์ ๊ฑด์ค์ ์ธ ๊ฒ์ ๊ธฐ์ฌํด ๋ณผ ์ ์์ต๋๋ค.
๋ณธ๋ก ์ผ๋ก ๋์๊ฐ....
๋ ๋ง์ ์๊ฐ์ ํ๊ณ ์ด์ project.json์ด nuget.json์ด ๋๋๋ก ํ์ฌ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ง๊ธ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์งํ๋ ๋ฐฉํฅ์ผ๋ก ๊ธฐ์ธ๊ณ ์์ต๋๋ค. ์ด์ ์ ์๋ํ๊ณ Intellisense๊ฐ ์ด๋ฏธ ๊ฑฐ๊ธฐ์ ์์ผ๋ฉฐ gulp ๋ฐ npm๊ณผ ์ผ์นํฉ๋๋ค.
csproj๊ฐ ๋จ์ํ ์ ์ ๋ถ๋ถ์ ์ ์ํ๋๋ก ํ์ญ์์ค.
๊ทธ๋ฌ๋ ๋ด๊ฐ ๋ณผ ์์๋์ด ์ ๊ทผ ๋ฐฉ์์ ๋จ์ ์ ์ฌ๋ฌ ํ๋ ์ ์ํฌ๋ฅผ ๋์์ผ๋ก ํ ๋ ์ด๊ฒ์ด ์ผ๋ง๋ ์ ์๋ํ๋์ง ํ์คํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. nuget.json์ ๋ฃ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด์ง ์๋ค๊ณ ์๊ฐํ์ง๋ง nuget.json์ ์ฌ์ ํ ๊ทธ๊ฒ์ ๋ํด ์์์ผ ํ ๊ฒ์ ๋๋ค.
project.json์ ๋จ์ํ json ํ์ผ์ด ์๋๋๋ค.
csproj๋ ๋จ์ํ XML ํ์ผ์ด ์๋๋๋ค.
IMHO ์ ์ ๊ฐ์ ๋ง์ ์ฌ๋๋ค์ด Microsoft, ๋ ์ ํํ๊ฒ๋ Asp.Net ํ,
์์ฃผ ์ค๋๋ ๋ ๊ฑฐ์ ์ฝ๋/๊ฐ๋
/์์คํ
/๋๊ตฌ/์ธ๊ด/...
์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ 'ํฌ๋ง'์ ์ฃผ์์ต๋๋ค!
๋๋ ์ต์ด์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋นํธ ์ดํ๋ก Asp.Net์ ๊ฐ๋ฐํฉ๋๋ค. ๋๋ ์ฃผ๋ก ๊ทธ๊ฒ์ผ๋ก ์ผํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ๊ทธ๋ฌ๋ 15๋
ํ,
XML๊ณผ ๊ฐ์ '์ค๋๋' ๊ฒ์ ์ ๋ง ๋ฌด๊ฒ๊ณ ๊ตฌ์์ผ๋ก ๋๊ปด์ง๋๋ค. ์ธ์์ด ์ค์ํฉ๋๋ค.
XML์ด ์๊ณ ์ต์ํ JSON์ ๋์ ์ฌ์ฉํ๋ฉด ๋ด '๊ฐ๋ฐ์ ํ๋ณต'์ด ํจ์ฌ ๋ ํฝ๋๋ค.
๋๋ ์ผ์ ํ ์ ์๊ณ ๋๋จธ์ง ์ธ๊ณ๋ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ด IDE๋ ๋ ๊ฑฐ์ ํ์๋ณด๋ค ์ด๋ฌํ ๊ฒ๋ค์ ์ ํธํฉ๋๋ค.
๋ ์ด์ '์ต๊ธ ๋ธ๋ผ์ผ ์ธ๊ธ'์ ๋ด์ง ์์๋ ๋ฉ๋๋ค.
project.json์ ์ ๊ฑฐํ๋ ๊ฒ์ ํฐ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ๊ฑฐ์ ๋ง์ง๋ง ์๊ฐ์ ๋ซํ ๋ฌธ ๋ค์์ ์ํํ๋ ๊ฒ์ ๊ทธ 'ํฌ๋ง'์ ์ฆ์ ์ฃฝ์ ๋๋ค.
๊ฐ์๊ธฐ ์ด๊ฒ์ ๋ ์ด์ ์คํ ์์ค ํ๋ก์ ํธ์ฒ๋ผ ๋๊ปด์ง์ง ์์ต๋๋ค.
fyi: "Asp.Net Core"์๋ ํ์์ ์ธ ๊ธฐ๋ฅ์ด ๋ง์ด ์์ต๋๋ค. ๋๋ ๋๋ถ๋ถ ๊ทธ๊ฒ์ ์ข์ํ๋ค.
Asp.Net ํ์ ํ๋ฅญํ๋ฉฐ Asp.Net ๊ฐ๋ฐ์๊ฐ ๋ ๊ฒ์ด ์๋์ค๋ฝ์ต๋๋ค.
ํ์ง๋ง ๋๋ ๋ค์ณค๋ค. ์ด์ฉ๋ฉด ๋๋ง ๊ทธ๋ฐ ๊ฒ์ด ์๋ ์๋ ์์ต๋๋ค.
๊ทธ๋ฅ ๋ด 2 ์ผํธ.
msbuild(ํนํ VS๊ฐ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ)๊ฐ ์๋ฒฝํ์ง ์๋ค๋ ๋ฐ ์ฐ๋ฆฌ ๋ชจ๋ ๋์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ project.json์ ๋ํด ํฅ๋ถํ์ง๋ง MS๊ฐ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ์งํ ํ ๋๋ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ์ด๋ป๊ฒํ๋์ง์ ๋ํด ๊ทธ๋ค์ง ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ค์ด ๊ทธ 3๊ฐ์ง ํญ๋ชฉ์ ๊ณ ์น ๋ฐฉ๋ฒ์ ์ฐพ๋๋ค๋ฉด ์๋ง csproj ํ์ผ์ ๋ํด ๊ทธ๋ค์ง ๋ถํํ์ง ์์ ๊ฒ์ ๋๋ค.
@neoKushan
๋น์ ์ด ํ๊ณ ์ถ์ ์ผ์ ์ค์ ๋ก ๊ทธ ์ด์ ๋ฅผ ๋ฐํ์ง ์๊ณ XML์ด ์ผ๋ง๋ ๋์์ง์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ๋ฟ์ ๋๋ค.
์์ ํ ๊ณต์ ํ์ง๋ ์์ง๋ง MSBuild๊ฐ ์ด๋ป๊ฒ ๋์์ง์ ๋ํด์๋ ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค :-)
๋๋ ๋ด๊ฐ ๋น๋ ํ์ผ์ ์ํ XML์ ์ข์ํ์ง ์๋ ์ด์ ๋ฅผ ์ค์ ๋ก _have_ ๋งํ์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง, ๋ค์ ํ ๋ฒ ์ฐ๋ฌ๋ณด๊ฒ ์ต๋๋ค. XML์ ์ฅํฉํ๊ณ ๋ณด๊ธฐ ํํ๊ณ ์์ผ๋ก ํธ์งํ๋ ๊ฒ๋ณด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ผ๋ฉฐ XML์ ๋ณํฉํ๋ ๊ฒฝํ์ด ์ฆ๊ฒ์ง ์์ต๋๋ค. ๋น์ ์ ๊ณ์์๋ XML์ด ๋ชจ๋ ๊ฒ์ ์ฌ์ฉ๋ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ MSBuild์ ์ฌ์ฉ๋์์ต๋๋ค. ๊ทธ ์ดํ๋ก ๊ณ์ ์งํํ์ต๋๋ค. ๊ธ์, ์ผ๋ถ ์ฅ์์์.
๋ ๋์ ์ฌ์ ํ - ์ฝ๋ฉํธ ์์
๋๋ ์ฌ๋ฌ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ๋์์ ์ ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. HJson์ ํ๋์ ์ต์ ์ผ ๋ฟ์ ๋๋ค. ์ผ! ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ๊ทธ๊ฒ์ ๋ค์ ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค ;-)
๋น์ ์ ์ด ๋ณํ์ ๊ฝค ํ๊ฐ ๋ฌ์ด์
๊ณต์ ํ๊ฒ ๋งํ์๋ฉด, ๋๋ ์ด์ ์ project.json์ ๋ํ ๋งค์ฐ ํ๊ณ ํ ์ง์์ ์ก๋ฉด ๊ทธ๋๋ก ๋ฐ์๋ค์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ณ ๋ คํ๊ฑฐ๋ ์ฐธ์ฌํ์ง ์๊ณ ํ์๋ ๊ณต๊ฐ์์ ์ด ๋ณ๊ฒฝ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ก๋์ง์ ๋ํด ๋๋ถ๋ถ ํ๊ฐ ๋ฌ์ต๋๋ค. ์๋ , ๋ค์๋ ๊ทธ ์ค์๋ฅผ ํ์ง ์์ ๊ฒ์ ๋๋ค!
์คํดํ์ง ๋ง์ญ์์ค. XML์ด ๋ง์์ ๋ค์ง ์๊ฑฐ๋ MSBuild๊ฐ ๋ง์์ ๋ค์ง ์์ต๋๋ค. ํ์ง๋ง ๋ด๊ฐ ์ ๋ง ์ข์ํ๋ ๊ฒ์ ์ ์ํ๋ผ๋ ๋ง์ ๋ฃ๊ณ ๋ง์ง๋ง ์๊ฐ์ ๊ทธ๊ฒ์ ๋นผ์๊ธด๋ค๋ ๋ง์ ๋ฃ๋ ๊ฒ์ ์ซ์ด ํฉ๋๋ค. ๋ด ์น์ฆ๋ฅผ ์์ง์ด์ง ๋ง!
๋๋ ๋ณํ์ ํ๋ ์ฌ๋๋ค์ ๋๋ค์๊ฐ ๋ชจ๋ ์น ๊ฐ๋ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์, ์, ๊ทธ๋ค์ด project.json์ ์ ๊ณตํ ์ ์ผํ ๊ฐ๋ฐ์์ด๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์์์ผ๋ก, Swift ๊ฐ๋ฐ์๋ค๋ ์ด ๊ฒฐ์ ์ ๋ํด ํ๋ฅผ ๋ด์ง ์์ต๋๋ค. ๋ด ๋ง์ ๋น์ ์ด ์ฌ๊ธฐ์์ ๋งํ๋ ๊ฒ์ ์๊ฐํ์ญ์์ค:
๋๋ ๋น์ ์ด ๋น์ ์ ์๊ฐ์ ์ง์ ์ดํด๋ณผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ด๊ฐ ๊ฝค ์ค๋ซ๋์ ์ฌ๋ฌธํ๋ ค๊ณ ์๋ํ ๊ฒ์ด๊ณ ์๋ฌด๋ฐ๋ ์์์ต๋๋ค. ์๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ๋ถ์กฑํ๊ณ ๊ด๋ จ ๋น์ฌ์๊ฐ ๋ญ์ณค๋ค๋ ์ฌ์ค์ ๋์๊ฒ ๊ทธ ์๊ฐ์ด ์์ฌ๋์์ ์ ์์์ ๋ํ๋ ๋๋ค.
๊ทธ๋ฆฌ๊ณ "์น ๊ฐ๋ฐ์"๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ์์ ํ์ฌ๋ฅผ ์ํ ์์ ์น์ฌ์ดํธ๋ฅผ ์๊ฐํ๊ณ ๊ณ์ญ๋๊น? ์๋ฐฑ์ต ๋ฌ๋ฌ์ ์์ฐ ๊ด๋ฆฌ ๋น์ฆ๋์ค๋ฅผ ์ง์ํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์คํ์ ์ด๋ป์ต๋๊น? ๋ฌผ๋ก ๊ฑฐ๊ธฐ์๋ ์น ์ฌ์ดํธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์์คํ ์ ์ฝ 10%์ ๋๋ค. ์, ์, ์ค์ ๋ก ํด๋ผ์ฐ๋๋ ๋์์ผ๋ก ํ๋ฏ๋ก ์ค์ ๋ก "ํด๋ผ์ฐ๋ ๊ฐ๋ฐ์"๋ฅผ ๋งํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
์ฑ๊ธํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ธฐ์ ์ด ์ด๋ป๊ฒ, ๋๊ตฌ์ ์ํด ์ฌ์ฉ๋๊ณ ์๋์ง์กฐ์ฐจ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐํ XML์ ์ฌ์ฉํ๋ค๋ ์ฌ์ค ์ธ์ MSBuild์ ๋ํด ์ซ์ดํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
๋๋ฌด ๋ณต์กํด
์ด๋ ์ํผ๋์ค ๋ถ์ผ์น๋ก, ์ฌ๋๋ค์ด ์ฃผ๋ก ๋ช
๋ นํ ๋๋ ์ ์ธ์ ๋
ผ๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ์ํฉ์ ์ถ๋ก ๊ธฐ๋ฐ ๋
ผ๋ฆฌ๋ฅผ ๋ฐ์ด๋ฃ์ต๋๋ค.
๋ง์์ฌ, ์ค์ ๋ก MSBuild ํ์ผ์ _๋ณด์
จ๋์_? ๋ค, ์ฃ์กํฉ๋๋ค. XML์ ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋ ๋ง์ํ์
จ์ต๋๋ค ;-)
์์ฑ๊ณผ ํญ๋ชฉ์ด ์ ์ธ๋๋ ๋ฐฉ์์ ์ ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ์ง ์๋ ์ฌ๋์๊ฒ๋ ์ง๊ด์ ์ด์ง ์์ต๋๋ค.
์คํฌ๋ฆฝํธ์์ ์ํํด์ผ ํ๋ ์์
์ ์ํํ๋ ค๊ณ ํ๋ ๋ชจ๋ ๋๊ตฌ์ ๋ง๋ ํฌ๊ธฐ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์น, ๋ชป.
๋ง์ ๊ฒฝ์ฐ ํฐ ํ์ผ์์ ์ํํ๋ ๋ชจ๋ ์์
์ ์ต๋ 3์ค์ ์คํฌ๋ฆฝํธ๋ก ํํํ ์ ์์ต๋๋ค.
์์์ง๋ VS ์ฐ๋ ๊ธฐ. ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ๋ค์์ต๋๋ค. ๊ทธ๊ฒ๋ ์๋ ค๋๊ฐ๋ ๋ณด๋ ค๊ณ ์ฝ๊ฐ์ ๋จ๋ฆผ์ผ๋ก ๊ธฐ๋ค๋ฆฝ๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด, ๋๋ ์ง๊ธ ์ฝ์์ ๋ํด ์ฝ๊ฐ ์ด์ฑ์ด ์์ต๋๋ค.
๋น์ ์ด ๊ทธ๋ ๊ฒ ์ฌ๋ํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ ๊ฒ์, ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋น์ ์ ๊ฒฌํด๋ฅผ ๊ณต์ ํ์ง ์์ ์๋ ์๋ค๋ ์ฌ์ค์ ๊ธฐ๊บผ์ด ๋ฐ์๋ค์ผ ์ํฅ์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด "๋ชจ๋ ์ฌ๋์๊ฒ ์ ํฉํ" ์ ๊ทผ ๋ฐฉ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ ์ ์์์ ์ธ์ ํ ์ ์์ต๋๊น?
์ด๋ค ๋ฐฉํฅ์ ๋งํ๋๊ฑฐ์ผ
project.json์ ์ฐ๋ฆฌ์ ์๋ก์ด ํ๋ก์ ํธ ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ์ด์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ์ฝ์์ ๋ฐํ์ผ๋ก ์ค์ ๋๊ณผ ์๊ฐ๊ณผ ๊ณ ํต์ ํฌ์ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ค์ ๋น์ ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์ฌ๋๋ค์ ์ํด ์ผํ๊ณ ์์ต๋๊น?
์ด์ฉ๋ฉด ๊ทธ๋ค์ ์ ๋ง๋ก ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ๋ค๋ฉด ๊ทธ ์ฆ๊ฑฐ๋ ์ด๋์ ์์ต๋๊น? ๋๋ ์ด๊ฒ์ ์ฌ์ฉ๋ ์๊ฐ๊ณผ ์์ฌ ๊ฒฐ์ ๊ณผ ์ฆ๊ฑฐ๋ฅผ ์กฐ์ฌํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ๋๋ ๋๊ตฌ์๊ฒ์๋ ์๋ฌด๊ฒ๋ ์ป์ง ๋ชปํ์ต๋๋ค. ์ ๊ณต๋ ๋ชจ๋ ์ฆ๊ฑฐ์ ๋ํด ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด Magic 8-ball์ ํ๋ค ์ ์์์ต๋๋ค.
์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฐ ์์ผ๋ก ์๊ฐํ๋์ง ์๋ฌด๋ ๋ชจ๋ฆ ๋๋ค. ์ค์ ๋ก ์์ ๋ด๋ ค๊ณ ๋ ธ๋ ฅํ ์ฌ๋์ ์ ๊ฐ ์๋ ์ ์ผํ ์ฌ๋์ ๋๋ค.
asp.net ๊ฐ๋ฐ์์ธ ์์ ์ธ์๋ ์๋ฌด๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
๋ณ๋ก ์ข์ง ์๋ค. ๋ด๊ฐ ์ค์ ๋ก ๋งํ๋ ๊ฒ์ ์๋ก์ด ๋ฐฉํฅ์ด ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ์ ์ฉ๋๋ค๋ ์ฃผ์ฅ์ด๋ฉฐ, ๋๋ ์์ ๋ค์ด ๊ทธ๊ฒ์ด ๋์๊ฒ ํจ๊ณผ๊ฐ ์๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ๋น์ ์ ๋ชจ๋ ๋ฐ๋์ ๊ฑฐ์น ์ ๋ฐ์ ํ ์ฌ๋์ ๋๋ค. ๋๋ ์ฌ๋๋ค์๊ฒ ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ฌป๋ ์ฌ๋์ ๋๋ค. MS๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋๋ "MSBuild๋ฅผ ์์ ํ ์ ๊ฑฐํ๊ณ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ๋ด ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ฉํ์ญ์์ค"๋ผ๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. ๋น์ ์ "project.json์ ์์ ํ ์ ๊ฑฐํ๊ณ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ MSBuild๋ฅผ ์ํํ์ญ์์ค"๋ผ๊ณ ๋งํ๋ ์ฌ๋์ ๋๋ค. ๋ชจ๋ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์ ๋ ๊ฐ์ง ๋น๋ ์์คํ ์ด ์์๊ณ ๋ง์กฑํ์ต๋๋ค. ์น ๊ฐ๋ฐ์๋ ํ๋ณตํ๊ณ ์น์ด ์๋ ๊ฐ๋ฐ์๋ ํ๋ณตํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ๊ฐ๋ฅํ์ง ๋ ผ์ํ ์ ์๊ณ ์ด์ฉ๋ฉด ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๋ ผํ๊ฑฐ๋ ์ฝํผํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ฆ ๋๋ค .
๋น์ ์ ์ ์ธ๋ ์ค๊ฐ์ ๋ํ ๋น์ ์ ์ฃผ์ฅ์ ์ ๋ง ์ข์ํฉ๋๋ค.
๊ทธ๋ค์ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ฐ์๋ค์ ๋๋ค
์ง์ง? ๊ธฐ๋ณธ ๋๊ตฌ ๊ธฐ๋ฅ์ ๋น MSBuild ๊ธฐ๋ฐ ๋น๋ ๋๊ตฌ๋ฅผ ๋จ๊ฒจ๋๊ณ project.json๋ง ์ฝ๋ ํ ์์ฒญ์ ๋ฐํํ๋ค๋ฉด ํ๋ ์์ํฌ์ ํฌํจํ์๊ฒ ์ต๋๊น? ์ง์ง?
์ข์, ๊ทธ๋์ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๊ณ ์๋ค...
์์ฐ, ๋น์ ์ ๊ทธ๊ฒ์ ๋ํด ๋ง์ด ์ฝ์์ต๋๋ค. ๋ง์์ฌ, ๋ด๊ฐ ๋น์ ์ฒ๋ผ ์ฝ์๋ค๋ฉด ๋๋ ๊ฒฐ์ฝ ์ฑ ์ ๋๋ด์ง ๋ชปํ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์๊ฐ๊ฐ ์ด ๊ฒ๊ณผ ์๋นํ ๋ค๋ฅผ ๊ฒ์ ๋๋ค.
์ฐจ๋ผ๋ฆฌ "๋๋ ๋ ํฐ ๊ทธ๋ฆผ์ ์์ ํ ์ดํดํ์ง ๋ชปํ๊ณ ์ด๊ฒ์ ํ๋ ๋ฐ ๊ด๋ จ๋ ๋ ธ๋ ฅ๊ณผ ์๊ฐ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๋นํ ๋ถ๋ถ์ ์ ๊ณตํ๋ ๋ฐ ๊ธฐ์กด ๊ฐ๋ฐ์์ ๋์์ด ์๋ค๋ฉด ํจ์ฌ ๋ ์ข์ ๊ฒ์ ๋๋ค. ์ ์ปค๋ฎค๋ํฐ๊ฐ ์ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ๊ธธ์ ๊ฐ์ผ ํ ์๋ ์์ต๋๋ค."
์ ์ฅ! ๋๋ ๋น์ ์ฒ๋ผ ์ฝ์ต๋๋ค! ๋น์ ์ ๋ค์ ํ์คํ ๋ฆฌ์ ์ธ ํด์๋ณด๋ค ์ค์ ๋ก ์๋ณธ ํ ์คํธ์ ์กฐ๊ธ ๋ ์ ๋ง๋๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋.
์ค์ ๋ก ๋ํ์ ๊ฑด์ค์ ์ธ ๊ฒ์ ๊ธฐ์ฌํด ๋ณผ ์ ์์ต๋๋ค.
๊ธ์, ๋๋ ์ฌ์ค ๋ด๊ฐ ๊ฑด์ค์ ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๋๋ ์ฒ์์ ์ถฉ๊ฒฉ์ ๊ทน๋ณตํ ํ ์ด ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๊ฐ ๋ฌด์์ธ์ง ์์๋ด๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๋๋ ์์ฌ๊ฒฐ์ ๊ณผ์ ์ด ์ด๋ค ๊ฒ์ธ์ง ์์๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. ๋๋ ๊ทธ ์ด๋ฉด์ ์๋ ์๊ฐ์ ์ง์ ๋ฌป๊ณ ์ ๋ ธ๋ ฅํ๋ค. ๋๋ค์์ ๊ฐ๋ฐ์๊ฐ ์ด๊ฒ์ ์ํ๋ค๋ ๋ง์ ๋ค์์ ๋ ์ด ์ฃผ์ฅ์ ๋ท๋ฐ์นจํ ์ฆ๊ฑฐ๊ฐ ์ ๊ณต๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ ๋ ์ค์ ๋ก ๊ทธ๋ค ์๊ฒ ๋ฌผ์ ์ต๋๋ค. ํ์ _์๋ฌด๋_ BTW๋ฅผ ์ํํ ์ฌ๋์ ์์์ต๋๋ค.
๋ด๊ฐ ๋ฌด์์ ์ป์์ต๋๊น? ๋ฐฉํด, ๋ชจ์ ๋ฐ ํํผ. ์๋ฐฑ๋ง ๋ช ์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ์ค๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์ฌ๋์ด ์์ ๋ฅผ ํ๋์ง ๋ฌป๋ ๊ฒ์ด ์ ๊ฑด์ค์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ด ์์ ์ฑ ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ฅผ ๊ฑฐ๋ถํ ๋ ๊ฑด์ค์ ์ด๊ฑฐ๋ ์์ฌ์ค๋ฝ๋ค๊ณ ์๊ฐํฉ๋๊น?
ํ์ค์ ์ผ๋ก ๊ฐ๋ฅํ ์๋๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1) ๊ทํ๋ ์์ ํ ํผ๋๋ฐฑ๊ณผ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ์ ์ ๋ด๋ ธ๊ณ , ๊ทธ ๊ฒฐ์ ์ ์ง์ ์ผ๋ก ์์ผ๋ก ๋์๊ฐ ์ ์๋ ์ต์ ์ ์ ํ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฅ์น๊ณ ์ฝ์ํ ๊ฒ. ๋๋ ๋น์ ์ด ๋ฐ์ ๋ฐ๋์ ์์ค๊ณผ ๋น์ ์ด ์ฆ๊ฑฐ์ ๊ฒฐ์ ์ ์จ๊ธฐ๊ณ ์๋ค๋ ์ฌ์ค ๋๋ฌธ์ ์ด ์ํฉ์ด ์๋นํ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
2) ๋น์ ์ ๋ถ๋ถ์ ์ธ ๊ฒฌํด์ ๊ทผ๊ฑฐํ์ฌ ๊ฒฐ์ ์ ๋ด๋ ธ์ง๋ง ๋น์ ๋น์ ์ด ๊ฐ์ง ์ต์ ์ ๊ฒ์
๋๋ค. ๋๋ ๊ฒฐ์ ์ ๋ค์ ๋ด๋ฆฌ๊ณ ๋น์ ์ด ๋น ์ง ๊ฒฌํด๋ฅผ ๊ฐ์ฒญํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์๋ต์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ์ ๋ ์ด๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ํฉ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
3) ์๋ชป๋ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ฑฐ๋ ์๋ชป๋ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค์ ๊ฒฐ์ ์ ์ฌ๊ฐํ๊ณ ์ปค๋ฎค๋ํฐ์ ์์ฒญํด์ผ ํฉ๋๋ค. ์ฌ๋ฌ๋ถ์ด ์ ๋ฅผ ๋ฏฟ์ง ๋ชปํ์๊ฒ ์ง๋ง ์ ๋ DotNetCore ๊ฐ๋ฐ์๋ฅผ ๋๋จํ ์กด๊ฒฝํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ํฉ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๋ค ๋ชจ๋.
๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ ์ ๋ค์ ์์ํ๊ณ ์๊ฒฌ์ ๊ตฌํ๊ณ ๊ฒฐ์ ์ด ์ด์ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ด๋ ค์ค๋ฉด ์ํด๊ฐ ๋ฌด์์ธ์ง ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฒฌ์ ๊ตฌํ ํ ์์ฌ ๊ฒฐ์ ์ ์ผ๋ถ์ ๊ฒฐํจ์ด ์์์ ๊นจ๋ซ๊ณ ์์ ํ๋ฉด ์ค์ ๋ก ๋ ์ข์ง ์์ต๋๊น?
์, ์ง์งํ๊ฒ. ์ด๊ฑธ ๋๋ผ ์ ์์๊น์?
๊ฐ๋จํ ์ง๋ฌธ: ๋ฐ๋ ์๊ฒฌ์ ์์ฉํ๊ณ ์๋ก์ด ์ ๋ณด์ ๊ธฐ๋ฐํ ๊ฒฐ์ ์ ๋ค์ ๊ฒํ ํ์๊ฒ ์ต๋๊น?
์๋๋ฉด ๋น์ ๊ณผ ๋์ํ์ง ์๋ ์ฌ๋๋ค์ด ๋ฏธ์ณค๊ณ , ์ด๋ฆฌ์๊ณ , ๋ฏธ์ํ๊ฑฐ๋, _์ ๋ณด๊ฐ ์๋_์ด๊ฑฐ๋, ์๋๋ฉด ์ ๋ณด์ ์ ๊ฐํ ์ ํจํ ์๊ฒฌ์ ์ ์งํ ๋ฅ๋ ฅ์ด ์๋ค๋ ๊ฒ์ ๊ณ์ ์์ํ์๊ฒ ์ต๋๊น?
์ ์: msbuild csproj ๋ ๊ฑฐ์ ๊ณ ๊ฐ์ ์ง์ํ๊ธฐ ์ํ Microsoft ํฌํฌ. #carryOnAsNormal
๋๋ ๋ํ ์ค๋ ๊ธฐ๊ฐ .Net ๊ฐ๋ฐ์์ด๋ฉฐ ๋ง์ผํ ์์ .Net ์ด๋ฆ์ ๋ฐ๋ช ํ๊ธฐ๋ ์ ์ 1.0์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ์์ ํ์ต๋๋ค. ์ก์ด์ ๋๋ฌด ํค๋งค์ง ์๊ณ ์ฌ๊ธฐ ๋ด 2 ์ผํธ๊ฐ ์์ต๋๋ค.
๋ค๋ฅธ xml ๊ตฌ์ฑ ํ์ผ์ ๋ณด์ง ์๊ณ ํ์์ ๋ณด๋ผ ์ ์๊ณ ์๋ฒฝํ๊ฒ ํ๋ณตํ ์ ์์ต๋๋ค.
xml ๊ตฌ์ฑ์ ์ํ์ง ์์ต๋๋ค. ์ด๋๊ฐ์. ํญ์.
๋๋ ํ์ด csproj์ ๋ชจ๋ ๋จ์ผ ๋ฌธ์ ๋ฅผ ์์ ํ๋๋ผ๋ ์๊ดํ์ง ์์ต๋๋ค. ์๋ฃํ์ ๋ ์ฌ์ ํ xml ๊ตฌ์ฑ ํ์ผ์ด๋ฉด ๊ด์ฌ์ด ์์ต๋๋ค. .net 4.5 ํ๋ก์ ํธ ์์คํ ์ ๊ทธ๋๋ก ์ ์งํด๋ ๋ฉ๋๋ค.
MSBuild์ ๊ฒฝ์ฐ... MSBuild๋ ํ์ฌ๋ก ์ฃฝ์ ์ ์์ต๋๋ค.
๊ฐ๋ ฅํ๊ณ ์ฃผ๋ณ์ ๋ง์ ๋๊ตฌ๊ฐ ์กด์ฌํ์ง๋ง MS ์ธ๋ถ์์๋ MSBuild์ ๋ํ ๊น์ด ์๋ ์ ๋ฌธ๊ฐ๋ง์ด ์ค์ ๋ก ๋ฌด์์ ํ๋์ง ๋๋ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ณ ์์ต๋๋ค. ๋ชจ๋ ์ฌ์ฉ์ ์ ์๋ฅผ ๋น๋ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐํด์ผ ํ ๋๋ง๋ค ๊ฒฐ๊ตญ 3~5์ผ์ ์ง์ ์ํ์ ์๊ฒ ๋ฉ๋๋ค. ๋๋ ์ถ๋ ฅ์ ๋น ํด๋๋ฅผ ํฌํจํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฌ์ํ ๊ฒ์กฐ์ฐจ๋ VS, VS ๊ฒ์ ๋ฐ ๋ด CI ์๋ฒ์์ ๋์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ ๊ฑฐ์ ์ป์ ์ ์์ต๋๋ค.
์๊ฒ ์ต๋๋ค... asp.net core 1.0 ๊ธฐ๊ฐ ๋์ MSBuild๋ฅผ ๋์ฒดํ ์ข์ ์ ํ์ ๋ง๋ค ์๊ฐ์ด ์๋ค๋ฉด ํ์คํ... asp.net core 2.0์ด ๋ ๋๊น์ง MSBuild๋ฅผ ๊ณ์ ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ฐ๊ตฌํ์ญ์์ค. ์ฃผ๊ธฐ; ๊ทธ๋ฌ๋ ์ ์ด๋ ๊ทธ ๋ฅ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์์ ํ ์ ์๋ ๊ฒ์ผ๋ก ๋์ฒดํ๋ ๋ฐฉํฅ์ผ๋ก ๊ณ์ ์์ ํ์ญ์์ค.
๊ทธ ๋์ ๊ฐ๋ฅํ ํ ๋ง์ ๊ตฌ์ฑ์ json์ ์ ์งํ์ญ์์ค. ๋๋ ๊ทธ๊ฒ์ด project.json์ธ์ง, ์๋๋ฉด ์๋กญ๊ณ ๋ ๋์ ๊ฒ์ธ์ง ํน๋ณํ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋๊ตฌ๊ฐ ํ์ํ ๋ ๋ ๊ฑฐ์ MSBuild ํ์ผ์ ์ฆ์์์ ์์ฑํ๋๋ก ํ์ญ์์ค. ํ์ ํด๋ ์ด๋๊ฐ์ ์ ์ฅํ์ญ์์ค.
๋ด๊ฐ ์ํ์ง ์๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ํ์ผ ์์คํ ์ ๋๋ค.
๋ํ 260์ ๊ฒฝ๋ก ๊ธธ์ด ์ ํ์ ์์ ํด ์ฃผ์ค ์ ์๋์... ์ ๋ฐ... ์, Windows์ ๊ด๋ จ์ด ๋ง์ ๊ฒ์ผ๋ก ์๊ณ ์์ง๋ง ์ฌ๊ฐํ๊ฒ๋... 2016๋ ์ ๋๋ค. .
์ถ์ . ๋น์ ์ด ๋ฐ๋๋ฅผ ๋ฌด์ํ๊ณ ๊ณ์ํ๊ธฐ ์ํ์ฌ๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ์ ๋ค์์ ์ ๊ณตํ์ญ์์ค ์ ์์ต๋๋ค :
"๊ฑด์ค์ ์ด ๋์ญ์์ค", "๊ธฐ์ฌํ์ง ๋ง์ญ์์ค. ๋ชฉ์๋ฆฌ๋ฅผ ๋ด์ง ๋ง์ญ์์ค." ๊ธ์, ๋น์ ์ ๋น์ ์ด ์๊ตฌํ๋ ๊ฒ์ ์ป์ต๋๋ค ...
@Mike-EEE, SimpleUseCaseBuild์ ๋ํ Xaml ์ง๋ ฌํ๋ฅผ ์ํ์ญ๋๊น?
์ด ๋ชจ๋ ๊ฒ์ ์ฝ์ ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค.
์ ๋ .net ํ์ด ์ฌํธํก์ ํ๊ณ , ์ด๊ฒ์ ์ ์ ๋ฉ์ถ๊ณ , ํผ๋๋ฐฑ์ ์์งํ๊ณ (๊ทธ๋ฆฌ๊ณ ์ด ์๋ก์ด ์คํ์ ์ฑํ๊ณผ ์ธ์์ ๊ณ ๋ คํ๊ณ ) msbuild ์ ๊ทผ ๋ฐฉ์(์ฐ๋ฆฌ ์ค ์ผ๋ถ๊ฐ ์๊ฐํ๋ ๊ฒ๋งํผ ๋์์ง ์์ ์ ์์)์ ๋์ ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ช ๊ฐ์ง ๋์. ์๋๋ฅผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
LOL @shederman ์ง๊ธ ๋๋ฅผ ๋์ด
xml ๋ json ๋ anyserializationlanguage๋ ๋ฌด๊ท ์ ๋๋ค. .net ํต์ฌ ๊ณผ์ ์ ๋ตํ๊ธฐ ์ํด ์ด๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์๊ฐ ๋ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
์, ๋์๊ฒ ์ค์ํ ๊ฒ์ ํ๋ก์ ํธ ๋ฐ/๋๋ ํ๋ก์ ํธ๊ฐ ํ๋ ์ผ์ ์ค๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ง์ ๋ชจ๋ธ์ด๋ฉฐ, ์ด ๋ํ ์ค ์ผ๋ถ์์ ์ด์ ๋ํด ์ธ๊ธํ์ต๋๋ค. ์ค๋ช ํ๊ณ ์์ ํ๊ธฐ๊ฐ ๋ ์ฌ์ด ๊ฐ์ ๋ ํ๋ก์ ํธ ๋ชจ๋ธ/api๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค(์ค๋ช ๋ ํ์์ ๊ด๊ณ์์ด -- ๊ทธ๋๋ ๊ทธ๋ ์ต๋๋ค :heart: my Xaml!). ์ฌ๊ธฐ์ MSBuild์ ๋ฆฌํฌ์งํ ๋ฆฌ(https://github.com/Microsoft/msbuild/issues/613)์ Roslyn์ ํ๋ก์ ํธ ์์คํ (https://github.com/dotnet/roslyn-project)์ ๋ํ ๊ณต๊ฐ ํ ๋ก ์ด ์์ต๋๋ค. -system/issues/37) ๋ํ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ.
์ฌ๊ธฐ์ ์ ๋ง ํ๋ฅญํ ํฌ์ธํธ๊ฐ ๋ง์ด ์์ผ๋ฉฐ, ์ ๋ ๊ฐ์ธ์ ์ผ๋ก "๋น๊ฑด์ค์ "์ด๋ ์๋๋ ์๋์ง๋ฅผ ํํค์น๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค์ด MSFT๋ฅผ ๊ฐ์ ํ๊ณ ์์ฐ๋๋ ๊ฒ์ ์ต๋ํ ํ์ฉํ๋ ๋ฐ ๋ง์์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. :+1:
๋ด 2์ผํธ:
์ ๋ ์ด ๋ณํ์ ๋ํด ๋ ๋ถ๋ฅ์ ์ฌ๋๋ค์ด ๋ ผ์ํ๊ณ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ฒซ ๋ฒ์งธ ๋ฒ์ฃผ์ ์ํ๋ฏ๋ก ์๋ก์ด ASP.NET Core๊ฐ ๊ฐ๋ฅํ ๋ค๋ฅธ VS ํ๋ก์ ํธ ์ ํ๊ณผ ํธํ๋๊ธฐ๋ฅผ ์ํ๋ฉฐ "์ด์ " csproj/msbuild ์๋ฃจ์ ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ ์๊ฒ ์ ๋ฆฌํฉ๋๋ค(+my ํ ๋ฐ ์๋ง๋ ๋ง์ ๋ค๋ฅธ ๊ฐ๋ฐ์). ์ด๋ ๊ฒ ํ๋ฉด ์ ํ์ด ํจ์ฌ ๋ถ๋๋ฝ๊ณ ๋ช ํํด์ง๋๋ค. ์๋ง๋ ๋ ๋ฒ์งธ ๋ฒ์ฃผ์ ์ฌ๋๋ค์ ๋์ ๋์ํ์ง ์์ ๊ฒ์ ๋๋ค(๋๋ ๊ทธ๋ฅ ์๊ดํ์ง ์์ต๋๋ค).
์ง๊ธ ๋ด๊ฐ ๋ณผ ์ ์๋ ์ ์ผํ ์ฃผ์ ๋ฌธ์ ๋ NuGet ํจํค์ง๊ฐ ์ ์๋๊ณ ์ฐธ์กฐ๋๋ ๋ฐฉ์์ ๋๋ค. packages.config ๋ฐ csproj ํ์ผ์ ๋ชจ๋ ์ ์งํด์ผ ํ๋ ๊ฒ์ ๊ณ ํต ์ค๋ฌ์ด ์ผ์ ๋๋ค ( @cwe1ss ์ฒ๋ผ ์ํํด์ผ ํฉ๋๋ค. ์ด ์ฃผ์ BTW์์ ๊ฐ์ฅ ๊ฑด์ค์ ์ธ ์๊ฒฌ ์ค ํ๋์์ต๋๋ค...
XML/JSON์ ์ฑ์ค๋ฌ์ด ์ ์์ ๊ดํด์๋... IMHO, XML์ JSON๋ณด๋ค ์ ํธ์ง์ ๋ ์ข์ต๋๋ค. XML์ ์ฃผ์์ ์ง์ํ๋ฉฐ ๋ณผ ๋ ๋ ๋ง์ ์ปจํ ์คํธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. JSON์ ๊ตฌ์ฑ ํ์ผ์ด ์๋ ๋ฐ์ดํฐ์ ๋ ์ข์ต๋๋ค. ๋ณํฉ์ ๋ ํ์ ๋ชจ๋์ ๋๊ฐ์ด ์ข๊ณ ๋์จ์ด ์์ผ๋ฉฐ ์ ์ ์ผ๋ก ๋ด์ฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ๋ก์ ํธ ์ฐธ์กฐ๊ฐ ํ์ฌ csproj ํ์ผ๊ณผ ๋ถ๋ฆฌ๋๋ค๋ฉด ๋ณํฉ๋ ํจ์ฌ ์ฌ์์ง ๊ฒ์ ๋๋ค...
@Funbit๊ฐ ์ฌ๋๋ค์ ๋ถ๋ฅํ๋ ค๊ณ ํด๋ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์ด๋ค ๋ฒ์ฃผ์๋ ์ํ์ง ์์ต๋๋ค. ์ ๋ v1 ๋ฒ ํ ์ดํ๋ก asp.net ๊ฐ๋ฐ์์ ๋๋ค. ๋๋ 2๋ ์ ์ ๊ฑฐ์ ํ๋๊ฐ ๋์ง ์์ ๋ปํ์ง๋ง .net ์ฝ์ด๊ฐ ๊นจ๋ํ ์ฌ๋ ์ดํธ์ .net ๋ฐ ๋ ธ๋ ์ธ๊ณ์ ์ต๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ๋์์์ต๋๋ค.
์ ๋ .net core๊ฐ ์ฑํ๋ ์๊ณ ์ปค๋ฎค๋ํฐ๋ ์๋ ์ค๋๋ ๊ธฐ์ ํ ํฌ๋ ธ๊ฐ ์๋๋ผ ์ฑ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ด ์ ์ฅ์์๋ ์ด ๊ฒฐ์ ์ ๋ํด ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์๊ณ XML์ ๋ํด์๋ ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์ธ์ฉ๋ฌธ์ ํ์ณ๋ณด๊ธฐ ์ํด "์ค๊ดํธ๊ฐ ๊บพ์ ๊ดํธ๋ณด๋ค ๋ซ์ต๋๋ค." csproj/msbuild - ๋๋ ์ ์ฐํด์ ๋์ฒํ ์ ์์ต๋๋ค.
๊ทธ๋๋ @shederman ์๊ฒฌ ์ค ์ผ๋ถ๋ฅผ ๋ฐ์ํ๊ณ ์ถ์ต๋๋ค.
ํ์ค์ ์ด๊ฒ์ด ์ง์ ํ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์๋๋ผ Microsoft ํ๋ก์ ํธ์ด๋ฉฐ ๊ทธ๋ค์ ์ฐ๋ฆฌ์ ์๊ฒฌ ์์ด ํ์ฌ ๊ฒฐ์ ์ ๋ด๋ ธ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋นจ์๋ค์ด๊ณ ๋ฐ์๋ค์ฌ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ค ๋ฐ๋๊ฐ ์๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ค์ด ์ฌ๊ณ ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ
๊ณต์ ํ๊ฒ ๋งํ์๋ฉด, ๋๋ ์ด์ ์ project.json์ ๋ํ ๋งค์ฐ ํ๊ณ ํ ์ง์์ ์ก๋ฉด ๊ทธ๋๋ก ๋ฐ์๋ค์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ณ ๋ คํ๊ฑฐ๋ ์ฐธ์ฌํ์ง ์๊ณ ํ์๋ ๊ณต๊ฐ์์ ์ด ๋ณ๊ฒฝ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ก๋์ง์ ๋ํด ๋๋ถ๋ถ ํ๊ฐ ๋ฌ์ต๋๋ค. ์๋ , ๋ค์๋ ๊ทธ ์ค์๋ฅผ ํ์ง ์์ ๊ฒ์ ๋๋ค!
์ด๊ฒ์ ์ ๋ฅผ ๊ดด๋กญํ๋ _does_์ ๋๋ค. Microsoft๋ .NET์ ์คํ ์์ฑํ๊ณ ์ปค๋ฎค๋ํฐ์ ์ค์ ๋ก ์ฐธ์ฌํ๊ณ ํ๋ ฅํ๊ณ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ปค๋ฎค๋ํฐ์ ์ข์ '๊ตฌ์ฑ์'(ํํธ๋?)์ด ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฐ ์ข ๋ฅ์ ์ผ์ ์ค์ ๋ก ๊ทธ ๋ชจ๋ ๋ ธ๋ ฅ์ ํํด์ํค๊ณ .NET ์ํ๊ณ์ ์ ์ฒด "๋ณด๊ทธ"๊ฐ /. ์ปค๋ฎค๋ํฐ๋ ๋ช ๋ ๋์ ๋ ์ด๋ธ์ ๋ถ์์ต๋๋ค.
๋ง์ดํฌ๋ก์ํํธ์๊ฒ ๊ณต์ ํ๊ฒ ๋งํ์๋ฉด, ๊ธฐ์ ํ์ ํ๋ก์ ํธ์์ ์ด๋ฐ ์ข ๋ฅ์ ์ผ์ ํ๋ ๊ฒ์ ๊ทธ๋ค๋ง์ด ์๋๋๋ค. (io.js ํฌํฌ๋ฅผ ์ผ์ผํจ) nodejs ์ปค๋ฎค๋ํฐ์ ๋ถํ ์ ๊ธฐ์ตํ์ญ๋๊น? ํ์ง๋ง ๋ง์ดํฌ๋ก์ํํธ๋ผ๋ฉด ํจ์ฌ ๋ ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๊ฒ์ ์ฒ์์ ์๋ํ๋ ๊ฒ๋ณด๋ค ๊ท ํ์ ๋ฒ์ด๋ฌ์ต๋๋ค.
์ฒ์์ ์๋ํ ๊ฒ๋ณด๋ค ๋น์จ์ด ๋ง์ด ๋จ์ด์ก์ต๋๋ค.
@MaximRouiller ๋น์ ์ ์ฌ์ง์ด ๊ฐ๋ฐ์์ ๋๊น, ํ??? :์๋ค:
@Mike-EEE ๊ทธ๋ ์ต๋๋ค. ๋๋ ์ด๋ค ๋ ผ์์ ์์ํ์ง๋ง ๋๋ฌด ๋ง์ ์ธ์ ๊ณต๊ฒฉ์ ๋ณด์์ต๋๋ค. :์ค๋งํ:
ํ๋ก์ ํธ ๊ฐ์ ์์ค ํ์ผ์ ๊ณต์ ํ ์ ์์ด์ผ ํจ
@darrelmiller ์ด๊ฒ์ .csproj์ ๋ชฉ๋ก ํ์ผ์ด ๋ค์ ๋์์ค๊ณ ์์์ ์์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ฌด์ญ๊ฒ ๋ค๋ฆฝ๋๋ค.
@lokitoth ๋งํฌ๋ ํ์ผ์ด ์์ผ๋์นด๋ globs๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ์๋ง ์์ ๊ฒ์ ๋๋ค.
@MaximRuiller ์ ์ญ์ ๋๋ฌด @shederman ์ ๋์ง๋ ๋ฒ์ ์๊ณ ์์ต๋๋ค! ใ . ๋ง๋ถ์ฌ์, ๋๋ @shederman์ด ๋ด ๋ด๋ฉด์ ์ฝ๋ฉ ๋๋ฌผ์
๋๋ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ด ์ ๋ง ํ๋ ์ผ์ด๋ผ๋ ๊ฒ์ ์ค์ค๋ก์๊ฒ ์๊ธฐ์์ผ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ด ๋์ ๋๋ค! ๊ฑฐ๊ธฐ์ ๋์ฐฉํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค. Silverlight์ ๋ํ ๋ด ๊ฒฝํ์์(์, ๊ทธ๊ฒ์ผ๋ก ์ธํด ํ์์ ์ ์์ต๋๋ค. ๊ทธ๋์ @shederman ์ด ์ด๋์์
์ด์จ๋ ์ง๊ธ์ "์น" ์ง์๊ณผ "๋ค์ดํฐ๋ธ" ์ง์์ผ๋ก ๋๋ ํ์ด๋๋ผ๋ ์ฌํธํก์ ํ๊ณ ๊ฒธ์ํ ๋ง์์ ๊ฐ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ ํ์์ ์ค์ค๋ก์๊ฒ ์๊ธฐ์ํค๋ ๊ฒ์ด ํญ์ ์ต์ ์ ๋๋ค. ์ ์ ๋์์ ํํธ์์ ์ ์์ง๋ง ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๊ฒ์ 10๋ ์ด์, ์ฌ์ง์ด๋ ์ค๋ซ๋์ ์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ทธ๋ค์ด ์ด๋์์ ์๋์ง ๊ณต๊ฐํ๋ฉด์ ์ฅ๊ธฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ง์คํฉ์๋ค.
์ข์... ์ถฉ๋ถํ ์ค๊ต์ ํ๋ฃจ๋ฅผ ์ํ rah-rah. :stuck_out_tongue: ์ ๊ธฐ์ ์ผ๋ก ์์ ๋ ์ฌ๋ฌ๊ทธํ์คํธ๋ก ๋์๊ฐ๋๋ค!
์ด๊ฒ์ .csproj์ ๋ชฉ๋ก ํ์ผ์ด ๋ค์ ๋์์ค๊ณ ์์์ ์์ํ๋ ๊ฒ ๊ฐ์์ ๋ฌด์ญ๊ฒ ๋ค๋ฆฝ๋๋ค.
๋ํ, ์ ์ณ๋๊ณ ์ด ๊ธฐ๋ฅ์ ๋์ด ํ๊ฐํ๋ ์ฌ๋์ ์ง๊ตฌ์์์ ๋๋ฟ์ ๋๊น? :stuck_out_tongue:
์ด๊ฒ์ .csproj์ ๋ชฉ๋ก ํ์ผ์ด ๋ค์ ๋์์ค๊ณ ์์์ ์์ํ๋ ๊ฒ ๊ฐ์์ ๋ฌด์ญ๊ฒ ๋ค๋ฆฝ๋๋ค.
๋ํ, ์ ์๊ฐ์๋ ์ด ๊ธฐ๋ฅ์ ๋์ด ํ๊ฐํ๋ ์ฌ๋์ด ์ง๊ตฌ์์์ ์ ์ผํ ์ฌ๋์ด๋ผ๊ณ ์๊ฐํฉ๋๊น? :stuck_out_tongue:
@Mike-EEE ๋ค, ๊ทธ๋ฐ ๊ฒ ๊ฐ์์. :๋์ง:
์ฐ๊ฒฐ๋ ํ์ผ์ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ ์ฌ๋ฌ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ ๋ง ์ ์งํ๊ณ ์ถ์ project.json์ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ค๋ช ์ ๋ณธ ์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ํ์ด msbuild์์ ์ด๋ฅผ ๋ค์ ์์ฑํ๋ ค๋ ์๋๋ฅผ ํ์ธํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
@shederman ์ ๋์ง๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค!
๐
๋๋ ๋ ธ๋ ฅํ๋ค. ๊ทธ๋๋ ๋๊ตฐ๊ฐ๋ฅผ ๋ชจ์ํ์ง๋ ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๋๋ ๋ ผ์๋ง ์ซ๊ธฐ ์ํด ์ด์ฌํ ๋ ธ๋ ฅํ๋ค.
๋๋ ํนํ ๋น์ดํ ์ธ์ ๊ณต๊ฒฉ์ ํ๋ฅผ ๋ด๊ธฐ ๋๋ฌธ์ ๋๊ฐ ๋์ ๋ํด ๋ ผ์์ ๋ฒ์ธ๋ค๊ณ ํด์ ์ ์ ๋ค๋ฌผ๊ฒ ํด์๋ ์ ๋๋ค. ๐ ๊ทธ๋ฆฌ๊ณ ๊ฝค ๋ง์์ต๋๋ค.
csproj ํ์ผ ํธ์ง์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๊ถ๊ธํฉ๋๋ค. ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด nuget์ด ์๋ง์ด๊ฑฐ๋ ํํธ ๊ฒฝ๋ก๊ฐ ์์๋์์ ๋ csproj ํ์ผ๋ง ํธ์งํด์ผ ํ์ต๋๋ค. ๋น๋ ํ๋ก์ธ์ค์ ์ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ์ ๋ ํญ์ CI ์์คํ ์์ ์คํ๋๋ ๋ ๋์ ์์ค์ build.proj ํ์ผ์ ์ฌ์ฉํ์ต๋๋ค. ์ ๋ CI ์ค์ ์์ .sln ํ์ผ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
์ฌ๋๋ค์ด Visual Studio์์ ๋๋ฒ๊ทธํ ๋ ์คํํ๋ ค๋ BeforeBuild ๋ฐ AfterBuild ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด csproj ํ์ผ์ ํธ์งํ๋ ค๋ ์ฃผ์ ๋ชฉ์ ์ ๋๊น?
@Mike-EEE ์ด์ฉ๋ฉด; ๋๋ ๋๋ถ๋ถ ๋งค์ฐ ๋ง์ ์์ ํ์ผ(์: Expression Blend, Visual Studio XAML Designer ๋ฑ)์ด ์๋ ํ๋ก์ ํธ๋ฅผ ์ฒ๋ฆฌํ ๋ ์์ผ๋์นด๋ ์ ํ์ ์ํด ๊ต์ฒดํ ์์ ๊น์ง ๋งค์ฐ ๊ณ ํต์ค๋ฌ์ ๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํฉ๋๋ค. VS๊ฐ ์ํํ๋ ์ ๋๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค. ์ฆ, ํ์ผ์ ์ถ๊ฐํ ๋๋ง๋ค ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ก๋ํด์ผ ํฉ๋๋ค(๋๋ ๋น๋ ์ "์ด ํ์ผ์ด ์ด๋ฏธ ์ถ๊ฐ๋์์ต๋๋ค" ์ค๋ฅ๊ฐ ๋ฐ์ํจ).
์ด "๊ธฐ๋ฅ"์ ๋ํด ์ค์ ๋ก ๋ฌด์์ ์ข์ํฉ๋๊น(ํ๋ก์ ํธ ๊ฐ์ ํ์ผ์ ๊ณต์ ํ์ง ์๊ณ ๋ถ๋ช ํ ์ ์ฉํ์ง๋ง ๋ชจ๋ ํ์ผ์ด ๊ฐ๋ณ์ ์ผ๋ก ๋์ด๋ ๋๋ง VS๊ฐ ์ ๋๋ก ์๋ํจ)?
์ด "๊ธฐ๋ฅ"์ ๋ํด ์ค์ ๋ก ๋ฌด์์ ์ข์ํฉ๋๊น(ํ๋ก์ ํธ ๊ฐ์ ํ์ผ์ ๊ณต์ ํ์ง ์๊ณ ๋ถ๋ช ํ ์ ์ฉํ์ง๋ง ๋ชจ๋ ํ์ผ์ด ๊ฐ๋ณ์ ์ผ๋ก ๋์ด๋ ๋๋ง VS๊ฐ ์ ๋๋ก ์๋ํจ)?
๋ถ๋ช ํ ์ด๊ฒ์ ๋์ ์ต๊ด์ด์ง๋ง ๋ฆฌํฉํ ๋ง์ ์ํํ ๋ ํ๋ก์ ํธ์์ ํ์ผ์ ์ ๊ฑฐํ ์ ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ์ญ์ฌ์ ๊ด์ ์์๋. ๋์ค์ ์ํ ์๋ ์๋ ์์ ์ ํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉด ๋์คํฌ์ ๋ณด๊ดํ์ง๋ง ํ๋ก์ ํธ์์๋ ์ ๊ฑฐํฉ๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ repo/source control์ ๋๋ฝํ์ง๋ง(๋์ ์ต๊ด ์ฐธ์กฐ), ์ ๋ ๊ทธ๋ฐ ์ข ๋ฅ์ ์ ์ด๋ฅผ ์ฆ๊น๋๋ค. ์ด์ ๋ด๊ฐ ๊ทธ ํ์ผ์ ์ํ ๋ repo์ ํ์คํ ๋ฆฌ(์ด ์ญ์ ๋ ํ์ผ์ ํ์คํ ๋ฆฌ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ??? ๋๋ฌด ๋ง์ ์์ ์ด ํ์ํฉ๋๋ค!)๋ฅผ ๊ฐ์ง๊ณ ์ฌ๊ธฐ์ ๊ธฐ ๋ค๋ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ "๋ชจ๋ ํ์ผ์ ํ์"ํฉ๋๋ค. ๋ด ์๋ฃจ์ ์ ๋ค์ ์ถ๊ฐํ์ญ์์ค. ์ธ์คํดํธ ํ์คํ ๋ฆฌ. :์๋ค:
csproj ํ์ผ ํธ์ง ์ฌ์ฉ ์ฌ๋ก๊ฐ ๊ถ๊ธํฉ๋๋ค.
.csproj์ ๊ฒฝ์ฐ(์ด ์ค ํ๋๋ ๋ด๊ฐ ์ํํ์ผ๋ฉฐ ๋๋ค์๋ ์ฌ๋ฌ ๋ฒ ์ํํ์ต๋๋ค)
project.json์ ๊ฒฝ์ฐ
@shederman ๋๋ ๋น์ ์ด ์ข์ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋น์ ์ด ๋ค์๊ณผ ๊ฐ์ด ์๋ตํ ๋
์ง์ง? ์ฌ๋๋ค์ด ์์ง๋ ๊ทธ๋ ๊ฒ ํด์? ๋๋ AssemblyInfo.cs๋ฅผ ์ํด ๊ทธ๊ฒ์ ํ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ ์๋๋ก ๋์๊ฐ๋๋ค.
ํค์ ์ค์ ํ๊ณ ์์ต๋๋ค. ๋๋ฉด ๋ํ๋ฅผ ํ๋ ๊ฒ์ ๊ด์ฐฎ์ง๋ง ์ด๋ฐ ํ๊ฒฝ์์๋ ๋ํ๋ฅผ ์๊ทนํํ๊ณ ์ค์ํ ์์ ์ ์ง์คํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ชจ๋ ๊ฐ์ ๊ธฐ๋ฐ ๋ ผํ์ ๋ฌธ์ ์ฌ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋๋ ์ด๋ฌํ ํ ๋ก ์์ ๊ฐ์ ์ ์ต์ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(๋ด ํ๋ ๋ฌผ๋ฆฐ ์๊ตญ์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค ;-)). ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํ ๋ก ์ ์ ์ฉํ๊ฒ ์ ์งํ๊ธฐ ์ํด ์ ๋ง๋ก ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค.
@Mike-EEE Exclude
์์ฑ/ํจํด์ ์ฌ์ฉํ์ฌ (๋ชจ๋ ๋จ์ผ ํ์ผ์ ๋์ดํ์ง ์๊ณ ) ๋์ผํ ์์
์ ์ํํ ์ ์์ต๋๊น? ๊ธฐ๋ก์ ์ํด ๋๋ ์ข
์ข
๊ฐ์ ์ผ์ ํฉ๋๋ค. ์ปค๋ฐ/๋กค๋ฐฑ ์ฃผ๊ธฐ๋ฅผ ์ํํ ํ์ ์์ด ๋ฌด์ธ๊ฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ฑฐํ๊ณ ์ถ์ ๋ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
๊ธฐ๋ก์ ์ํด, ๋๋ ์ค์ ๋ก Roslyn์ ์ฌ์ฉํ๊ณ ํ๋ก์ ํธ ํ์ผ์ด ์ง๋ ฌํ๋ AST๊ฐ ๋๋๋ก ํ๋ @Mike-EEE์ ์ ์์ ์ข์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ์ฅ๋ง ์ฌ์ฉํ์ฌ ๋๊ฐ์ด ์ฝ๊ฒ ์์ ํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค. (์, ๋ฉ๋ชจ์ฅ์ ์๋ฏธํฉ๋๋ค. notepad++ ๋๋ ๋ ๋ฐ์ ๋ ๊ฒ์ด ์๋๋๋ค. ์ฌ๋์ด ํธ์งํ ์ ์๋ ํ์ผ ํ์์ ์ ์ฉ์ฑ์ ๋ํ "์ฐ๊ธฐ ํ ์คํธ"์ ๋๋ค.)
@CodingGorilla ๋๋ ๊ทธ๊ฒ์ ์ด๋ ค ์์ต๋๋ค. ๋๋ ๋๊ตฌ๊ฐ ์ด๊ฒ์ ๋์์ฃผ๋ ๊ฒ์ ๋ณด๊ณ ์ถ๋ค(์ด๋ป๊ฒ ํ๋์ง ์์๋ด๊ธฐ๋ณด๋ค ๋๋ฅผ ์ํด ํจํด์ ์ ์ํ๋ผ -- ๋ด๊ฐ DOS๋ก ๋ค์ ์์ ํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋ค๋ฉด, ๋ชจ๋๊ฐ ์ง๋ค!!). ์ง๊ธ๊ณผ ๋๊ฐ์ ๊ฒฝํ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก "์ตํธ์ธ"์ด ์๋ "์ตํธ์์" ๋ชจ๋ธ์ ์ดํด๋ด ๋๋ค.
์ธ๋ก๋ํ์ง ์๊ณ ํ๋ก์ ํธ ํ์ผ์ ํธ์งํ๊ณ ์ถ์ ๋ถ๋ค์ ์ํด.... https://twitter.com/migueldeicaza/status/730978470734401536
์ธ๋ก๋ํ์ง ์๊ณ ํ๋ก์ ํธ ํ์ผ์ ํธ์งํ๊ณ ์ถ์ ๋ถ๋ค์ ์ํด....
@darrelmiller ๋ด๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์๋ณด๊ณ ์์ต๋๊น ... ๋์ Xamarin Studio๋ฅผ ์ฌ์ฉํ๋๋ก ์ ์ํฉ๋๊น? ์, ๋น์ฆ๋์ค/์ํฌํ๋ก/๊ฒฝํ์ ์ธ๋ก๋ฉ/๋ก๋ฉํ๋ ๊ฒ์ ์ต์ ์ ๋๋ค! 2003๋ ๋ถํฐ ์์๋ ์ผ์ด์ฃ .
๋๋ ์ต์ข ํ์ผ์ด ํ์์ด ๋ฌด์์ด๋ ํ์ค ํ ์คํธ ํธ์ง๊ธฐ(์: ๋ฉ๋ชจ์ฅ)๋ก ์ฝ๊ฒ ํธ์งํ๊ณ ์ฝ์ ์ ์์ด์ผ ํ๋ค๋ ๊ฐ๋ ์ ๋ ๋ฒ์งธ๋ก ์๊ฐํฉ๋๋ค.
๋ํ ๋ ๋์ ๋๊ตฌ๊ฐ ํ์ฌ csproj ๋ค์ ์๋ ๋ง์ ๋ฌธ์ ์ ์ ์ ๊ฑฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. VS๋ ์ต๊ณ ์ ์๊ฐ ์๋๋ฉฐ VS๊ฐ ์ ๊ณตํ๋ ๊ฒฝํ์ ๋ง์ ์ฌ๋๋ค์ด MSBuild ํ๋ก์ ํธ ์์คํ ์ ๋ํด ์ค์ ๋ก ์ซ์ดํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@Mike-EEE Miguel์ ์๊ฒฌ์ ๋ํ ๋ต๋ณ์ ์ ํ๋ก์ ํธ ์์คํ ์์ ์ผํ๋ David Kean์ ๋ต๋ณ์ด์์ต๋๋ค. ํ์ VS๋ ์ด ์์ ์ ์ํํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@Mike-EEE ์ ์๊ฐ์๋ ๊ทธ๋ค์ด ๋ฌด์์ ์๊ฐํด๋ด๋ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ MSBuild ํ๋ก์ ํธ ์์คํ (@shederman ๋งํ๋๋กํ์ง ์์ผ๋ฉด, ๊ทธ๋ฅ XML ๋ _can't_) ์๋ฌด๊ฒ๋ ๋จ์ง ํ ์์๋ ๊ฐ๋ ฅํ ์ถฉ๋ถํ๋ค. ์ด๋ค ์ฌ๋๋ค์ "๋ด ๋ฐฉ์์ด ์๋๋ฉด ์คํจ์ผ"๋ผ๊ณ ๋งํ๊ณ ๋ค๋ฅธ ์ฌ๋์ด ๋งํ๋ฏ์ด(์ฃ์กํฉ๋๋ค. ์ด ์ค๋ ๋๋ YUUUUUUGE์ ๋๋ค!) "๋๋ ์ด๋ฆฐ ๋ง์์ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค..." ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฅ ์ ์.
๊ฒ๋ค๊ฐ, ๋น์ ์ ์๋ก์ด ๊ฒ์ ๋ฐฐ์ธ ์ ์๊ณ , ๊ทธ๊ฒ์ ํญ์ ์ข์ ์ผ์ ๋๋ค. :์์์ด ๋์น๋:
@neoKushan ์ ๋ msbuild ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์๋ถํฐ ์์ฑ
@CodingGorilla ์ฌ์ค ์ ์ฃผ๋ ฅ์ MSBuild์ ๋๋ค. XML์ด ๋ฌธ์ ์ด์ง๋ง MSBuild๋งํผ ๋์์ง๋ ์์ต๋๋ค.
xproj์ ๋๋ํ project.json ์ง์์ ๊ณ์ ์คํํ๊ธฐ ์ํด ์ง์ ์์ ์ ์ ์ํ์ต๋๋ค. ๊ฐ์ฅ ์ ๊ฒฝ์ฐ๋ ์ฌ๋์ด ์ผ์ ํ๋ ๊ฒ ๋ง์ฃ ?
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ฌ์ค ํต์ฌ์ ๋๋ค. ํ์์ ๋ด๊ฐ ์ด ๊ธฐ์ฌ๋ฅผ ํ ์ ์๋๋ก ํ์ฉํฉ๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ์ ์๋ฉ๋๊น? ๊ทธ๊ฒ์ ๊ฒฐ๊ตญ OSS, ๊ทธ๋ ์ง ์์ต๋๊น?
๊ทธ๋ฐ ๋ค์ MSBuild๊ฐ ๋ง์์ ๋ค๊ณ ๊ฐ๋ ฅํ ์ฑ๋ฅ์ ์ํ๋ค๋ฉด xproj๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ASP.NET Core์ฉ์ผ๋ก ๊ตฌ์ถ๋ ๋๊ตฌ๊ฐ ๋ง์์ ๋ค๋ฉด ๊ณ์ ์ฌ์ฉํ์ญ์์ค.
๊ทธ๋ค์ ๋์ผํ ๊ธฐ๋ณธ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ ๊ทธ๋ ๊ฒ ๋ง์ ์์ ์ ํด์๋ ์ ๋ฉ๋๋ค. ๋ด๊ฐ ํด์ผ ํ ์ผ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ๋ค๋ฅธ ๋ช ๋ น์ผ๋ก ๋ฆฌํฉํฐ๋งํ๋ ๊ฒ์ ๋๋ค.
์ด์์ ์ผ๋ก๋ "dotnet build"๋ฅผ ์ฌ์ฉํ๊ณ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณด๊ณ ์ด๋ค ํ์ผ์ด ์๋์ง์ ๋ฐ๋ผ ์ฌ์ฉํ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒฐ์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ๋น๋ ๋๋ ์ ๋ช ๋ น์ ์ต์ ํ๋๊ทธ๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
@sandorfr _ ์ ์ฒด_ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ํ๋ ๋ณธ๊ฒฉ์ ์ธ MSBuild ํ์ผ์ ์์ฑํ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ตฌ์กฐ.
๋ค์ ๋งํด์ MSBuild๋ ๊ฑฐ๋ํ๊ณ ๊ฐ๋ ฅํ ์์คํ ์ด๋ฉฐ ๋ง์ ๋ณต์ก์ฑ์ ์๋ฐํ์ง๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค. VS๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ์ง ์์ ๋ง์ ์ฐ๋ ๊ธฐ๋ฅผ ๋์ก๊ณ xproj๋ฅผ ๋ณด๋ฉด MSBuild์๋ ์ค์ ๋ก ํ์ํ์ง ์์ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. dot ํ์ด csproj์ ํ์ํ ๊ฒ์ ์ต์ํํ๋ ๋ฐ ์ด์ ์ ๋ง์ถ๋ฉด ๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ ์๋์ ์ผ๋ก ์ต์ํ๋๊ณ ๊นจ๋ํด์ผ ํฉ๋๋ค. "๋ณํฉ ์ง์ฅ"์ ๊ฒช์ด์ผ ํ๋ ์ ์ผํ ์ฌ๋๋ค์ ๊ทธ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ํ๋ ์ฌ๋๋ค์ด ๋ ๊ฒ์ ๋๋ค(์ด ๋ณ๊ฒฝ์ ์ฃผ๋ํ๋ ์ฌ๋๋ค์ ๋จธ๋ฆฌ๋ก ์๊ฐํฉ๋๋ค).
CAKE๋ TFS Team Services ๋ฑ ์ํ๋ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋๋ ๊ฒ์ ์์ต๋๋ค.
๋ค์ ๋งํ์ง๋ง, ์ด๊ฒ์ ํ์ด "์ฌ๋ฐ๋ฅธ" ์ผ์ ํ๋๋ก ๊ท์ ํ๊ณ ์์ต๋๋ค.
VS๋ ์ต๊ณ ์ ์๊ฐ ์๋๋ฉฐ VS๊ฐ ์ ๊ณตํ๋ ๊ฒฝํ์ ๋ง์ ์ฌ๋๋ค์ด MSBuild ํ๋ก์ ํธ ์์คํ ์ ๋ํด ์ค์ ๋ก ์ซ์ดํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@neoKushan TFS Build์ Xaml์ ๋ํด ์ด๋ ๊ฒ ์๊ฐํฉ๋๋ค. Xaml์ ์์ฒญ๋๊ฒ ํ๋ฅญํ์ง๋ง(๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ MSBuild "์คํฌ๋ฆฝํธ"์ ๊ฐ๋ฅํ ํ์์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค), TFS Build์์ Xaml์ ์ฌ์ฉํ๋ฉด ์ด๋ฆ์ด ์๋ชป๋์์ต๋๋ค.
์ด github ๋ฌธ์ ๋ฅผ ์ฑํ ์ฐฝ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์์ฐ์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. MS์ ๋๊ตฐ๊ฐ๊ฐ ๋ต์ฅ์ ๋ณด๋ผ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ด ์ค๋ ๋์ ๋ํ ์ด๋ฉ์ผ ์๋ฆผ์ ์ ์งํ๊ณ ์ถ์์ง๋ง ๋ฉ์ผ ์์ด ๋๋ฌด ๋ง์์ก์ต๋๋ค.
MSBuild ํ๋ก์ ํธ ์์คํ ์ ๊ฑฐ์ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ ๋งํผ ๊ฐ๋ ฅํฉ๋๋ค.
๊ทธ๊ฒ์ ๋ฌธ์ ์ ์ผ๋ถ์ด๋ฉฐ csproj ํ์ผ์ ์ฝ์ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ์ ํ๋ก์ ํธ ํ์ผ ํ์์ ์ ํฉํ์ง ์์ ์ ํ์ด ๋ฉ๋๋ค(๋น๋ ์ ์ ํ์ผ ํ์๊ณผ ํผ๋ํ์ง ๋ง์ญ์์ค).
(ํธ์ง: ์ถ๊ฐ๋จ)
CAKE๋ TFS Team Services ๋ฑ ์ํ๋ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋๋ ๊ฒ์ ์์ต๋๋ค.
๋ถํํ๋ VS๊ฐ ํต์ ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ(๊ทธ๋ฆฌ๊ณ ๊ด๋ฆฌ ์ฝ๋์ ๋ค์ดํฐ๋ธ ์ฝ๋๊ฐ ๋ชจ๋ ์๊ณ ๋๋ฒ๊ทธํ๋ ค๋ ๊ฒฝ์ฐ ์ ๋๋ก ์๋ํ๊ธฐ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ) ๋น๋ ์์คํ ์ MSBuild์ ์ง์ด๋ฃ์ผ๋ ค๋ ์๋๊ฐ ๋งํ์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋น๋ ํ์ผ์์ ํ๋ก์ ํธ ํ์ผ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด _๊ธฐ๋ฅ_์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ใ ใ ์ ๋๋ฆฌ๋ฉด ์!) ๋ํ ์ค์ ๋ฌธ์ ๊ฐ
์์์ผ์ ์์ ๋ค์ ์ปค๋ฎค๋ํฐ ์คํ ๋์ ์ ๋ฐ์ด๋ค ๊ฒ์ ์ ์ํด๋ ๋ ๊น์? ๋๋ ๊ทธ๊ฒ์ด ๋๋ถ๋ถ ํ๋ฃจ๋ ์ดํ ์ ์ RC2์ ์ถ์์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง(ํ๋๋ ํฌ๋งํ ์ ์์ต๋๋ค!) ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ํ์ํ ์ง๋ฌธ์ ํํ๊ณ ๋ผ์ด๋ธ ์ฒญ์ค๊ณผ ์์งํ ํ ๋ก ์ ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ค ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ค์ ๋ก ๋ต์ ์ค ์ ์์ต๋๋ค.
์์์ผ์ ์์ ๋ค์ ์ปค๋ฎค๋ํฐ ์คํ ๋์ ์ ๋ฐ์ด๋ค ๊ฒ์ ์ ์ํด๋ ๋ ๊น์?
@shederman์ด ๋ํ๋ด๋ ๊ฒฝ์ฐ์๋ง. ๋๋ ๊ทธ๊ฐ ์ค์๊ฐ์ผ๋ก ๊ฐ๋ฐ์์ ๊ทธ๋ค์ ์์ด๋์ด๋ฅผ ๋ถ์๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. WWE PPV ์ด๋ฒคํธ์ฒ๋ผ!
[projectName].csproj์ ๋นํด project.json์ ์ฅ์ ์ ํ์์ ๊ดํ ๊ฒ์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ์ค๋๋ ๊ฒ๋ค๊ณผ ์ญํธํ๋ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์ฃผ ๊ฐ๋จํ๊ฒ ํ ์ ์์์ต๋๋ค. Damian Edward์ ํ์ด ์ง์ ๋ ๋ชจ๋ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด XML ๋ JSON ๋ YML ๋... ๋์๊ฒ ์ค์ํ ๊ฒ์ ๋จ์ํ๊ณ Linux์์ Windows์ฉ ํญ๋ชฉ์ ๋ณผ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. .
@glennsills MSBuild ํ๋ก์ ํธ ํ์ผ์๋ _windows_์๋ง ํด๋นํ๋ ๋ด์ฉ์ด ๋ณ๋ก ์๋ค๊ณ ์๊ฐํฉ๋๋ค. MS Build ์์ฒด ๋๋ ์ ๊ฒฝ ์ฐ์ง ์๋ ๋ค๋ฅธ ํ๋ก์ ํธ ์ ํ์๋ง ํด๋น๋๋ค๋ ์ ์ ๋๋ค. MSBuild๋ฅผ ๋ง์กฑ์ค๋ฝ๊ฒ ์ ์งํ๊ธฐ ์ํด ๋ง์ ๋น ์์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋๋ ํ์ด ๊ฐ๋ฅํ ํ ๋ง์ ๊ฒ์ ์ค์ผ ๊ณํ์ ํ๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ง๋ง ์ฐ๋ฆฌ๋ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
@Mike-EEE @shederman์ด ๋ํ๋ด๋ ๊ฒฝ์ฐ์๋ง. ๋๋ ๊ทธ๊ฐ ์ค์๊ฐ์ผ๋ก ๊ฐ๋ฐ์์ ๊ทธ๋ค์ ์์ด๋์ด๋ฅผ ๋ถ์๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. WWE PPV ์ด๋ฒคํธ์ฒ๋ผ!
๋๋ ๊ทธ๊ฒ์ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ๋๋ ๋ด๊ฐ ์ ๋ ฅํ๋ ๊ฒ๋ณด๋ค ๋๋ฆฌ๊ฒ ๋งํ๋ ๊ฒ์ ๊ฒฝ๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ฌด ๊ธฐ๋ํ์ง ๋ง์ธ์ ๐
๋ฐ๋ผ์ https://github.com/dotnet/roslyn-project-system/issues/40 ์ ๊ฐ์ํ ๋ ์ ์บ์ ์ด ์ํ์ด ์๋ ๊ฒฝ์ฐ(๊ธฐ๋ณธ์ ์ผ๋ก ) ํ๋ก์ ํธ์ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ์ฌํญ์ ๋ฌด์์ ๋๊น?
(์ด๊ฑธ "๋๋ XML์ด ์ซ์ด!" ์กฐ๋กฑ์ผ๋ก ๋ฐ๊พธ์ง ๋ง์ธ์.)
"๋๋ MSBuild tirade๊ฐ ์ซ์ด"๋ ์ด๋ป์ต๋๊น?
@shederman
MSBuild๊ฐ JSON ํ์ผ์ ํ์ฉํ๋๋ก ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? :์์: (๊ฑฐ์ ํ ์ ์์๋ค)
@shederman ์ด๋ค ์ข ๋ฅ์ ๋๋ด๋ ์ง์งํ๊ฒ ๋ฐ์๋ค์ด๊ธฐ๋ ์ด๋ ค์ฐ๋ฉฐ Microsoft๊ฐ ์ด _ํ ๋ก _์ ์ง์งํ๊ฒ ๋ฐ์๋ค์ด๋ ๊ฒ์ด ํจ์ฌ ๋ซ์ต๋๋ค.
์ด๊ฒ์ด 5๋ ์์ ์งํ๋๋ ๋ฐฉ์์ผ๋ก ๋น์ ์ Swift, Java(!!), Node.JS ๋๋ Elixir๋ฅผ ํ๋ก๊ทธ๋๋ฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ;)
์์ฆ .NET ํ๋ก์ ํธ/์๋ฃจ์ /๋ฌด์์ด๋ ๊ฐ์ ๋ ๊ฐ์ง ์ํฐ๋ฆฌ ๊ธฐ์ ์ด ์์ต๋๋ค. Nuget ๋ฐ .csproj ํ์ผ. Git(์: GitFlow)์ ์ฌ์ฉํ์ฌ 5๊ฐ ์ด์์ ํ์์ ์์ ํ๋ ๊ฒฝ์ฐ ์์ ํ ์ ๋ชฝ์ ๋๋ค. ".csproj์ ํ์ผ์ ํฌํจํ๋ ๊ฒ์ ์์๋ค๋ฉด ์ด๋ฐ ์ฐ๋ ๊ธฐ"๋ ์ ์ ๊ท์ฐฎ์์ง๊ณ ์์ต๋๋ค. ๋๊ตฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ฉฐ ๋๊ตฌ๋ ์ถฉ๋ํ๋ DLL ๋ฒ์ ์ด ์๋ค๋ ๊ฒฝ๊ณ ๋ ํ์ํด์ผ ํ๋ฉฐ ๋๊ตฌ๋ ๋ณํฉ์ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋ฅ์ ์๋ผ. Project.json์ ์ฒ์์๋ ๋ฉ์ ธ ๋ณด์๋๋ฐ ๋์ค์ ์ ์น์ ๊ฐ์ ์ด ์๊ฒผ์ต๋๋ค.
MS ํ์ RC๊ฐ ์๋๋ผ ๋ฒ ํ๋ผ๊ณ ๋ถ๋ฌ์ผ ํฉ๋๋ค.
MS ํ์ด ๋ชจ๋ ๊ฒ์ ๋ค์ ๋ง๊ฐ๋จ๋ฆฐ RTM2๋ฅผ ์ถํํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด RTM์ด ์ธ์ ์ถ์๋ ์ง์กฐ์ฐจ ๋ฏฟ์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ ๋น๊ด๋ก ์๊ฐ ์๋์ง๋ง .NET Core๋ฅผ ๋๋ฌ์ผ ์ด๋ฌํ ์์ง์์ ๋งค์ฐ ์ด์ํฉ๋๋ค.
@neoKushan ์กฐ๋กฑ ํ์ง ์๊ณ
๋๋ ํ ๋ก ์ ์ฐธ์ฌํ๊ธฐ ์ํด ๋ด๊ฐ ๋งก์ ์ง์๋ฅผ ํฌ๊ธฐํด์ผ ํ๋ ํ ๋ก ์กฐ๊ฑด์ ๋์ํ์ง ์์ต๋๋ค. ๋๋ project.json์ ์ง์งํ๋ ์ฌ๋๋ค์ด ๊ธฐ๋ณธ์ ์ผ๋ก MS๊ฐ ๊ฒฐ์ ํ ๊ฒ์ ์ฝ๊ฐ์ ์์ ๋๋ ๋ ๊ฐ์ง๋ฅผ ํฌํจํ์ฌ ์ ํํ ๋ฐ์๋ค์ฌ์ผ ํ๋ค๋ ๋ง์ ๊ณ์ ๋ฃ๊ณ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์ด์ด์ง๋์ง ๋ชจ๋ฅด๊ฒ ๋ค. ๋๋ ๋จ์ํ ์ฝ์๋๊ณ ์ฝ์๋ ๋น๋ ์์คํ ์ ์ํฉ๋๋ค. MS๊ฐ ๊ทธ๊ฒ์ ์ ์งํ๊ณ ๊ณ์ํ ์ํฅ์ด ์๋ค๋ฉด ๋๋ ์ ์ํ์ต๋๋ค.
๋ฌธ์ ๊ฐ ์ด๋์ ์์ต๋๊น? ๋๋ MS์ ๊ทธ๋ค์ ๊ณํ์ ์ฒ ํํ๋ผ๊ณ ์๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ ์์ ์ ์ถ๊ฐํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ด ์๋๋ค. ๋๋ ๊ทธ๋ค์ด ์ผ๋ฐฉ์ ์ผ๋ก ์ด๊ธด ์ฝ์์ ๋ด๊ฐ ์ดํํ ์ ์๋๋ก ํด๋ฌ๋ผ๊ณ ์์ฒญํ ๋ฟ์ ๋๋ค.
๊ฑฐ์ ํ๋ช ์ ์ธ ์์ฒญ์ด ์๋๋๋ค.
๋ด 2์ผํธ:
์ ๋ ์ด ๋ณํ์ ๋ํด ๋ ๋ถ๋ฅ์ ์ฌ๋๋ค์ด ๋ ผ์ํ๊ณ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
VS & .NET์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์ข ๋ฅ์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ ์ค๋ซ๋์ ํด๋น ํ๋ก์ ํธ๋ฅผ ์ง์ํด์ผ ํ๋ ๊ฐ๋ฐ์
๊ทธ๋ฐ ๋ถ๋ด์ด ์๊ณ ์๋กญ๊ณ ๊นจ๋ํ๊ณ ๋ฉ์ง ํฌ๋ก์ค ํ๋ซํผ ASP.NET Core ํ๋ ์์ํฌ๋ฅผ ์ํ๋ ๊ฐ๋ฐ์
๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ฒซ ๋ฒ์งธ ๋ฒ์ฃผ์ ์ํ๋ฏ๋ก ์๋ก์ด ASP.NET Core๊ฐ ๊ฐ๋ฅํ ๋ค๋ฅธ VS ํ๋ก์ ํธ ์ ํ๊ณผ ํธํ๋๊ธฐ๋ฅผ ์ํ๋ฉฐ "์ด์ " csproj/msbuild ์๋ฃจ์ ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ ์๊ฒ ์ ๋ฆฌํฉ๋๋ค(+my ํ ๋ฐ ์๋ง๋ ๋ง์ ๋ค๋ฅธ ๊ฐ๋ฐ์). ์ด๋ ๊ฒ ํ๋ฉด ์ ํ์ด ํจ์ฌ ๋ถ๋๋ฝ๊ณ ๋ช ํํด์ง๋๋ค. ์๋ง๋ ๋ ๋ฒ์งธ ๋ฒ์ฃผ์ ์ฌ๋๋ค์ ๋์ ๋์ํ์ง ์์ ๊ฒ์ ๋๋ค(๋๋ ๊ทธ๋ฅ ์๊ดํ์ง ์์ต๋๋ค).์ง๊ธ ๋ด๊ฐ ๋ณผ ์ ์๋ ์ ์ผํ ์ฃผ์ ๋ฌธ์ ๋ NuGet ํจํค์ง๊ฐ ์ ์๋๊ณ ์ฐธ์กฐ๋๋ ๋ฐฉ์์ ๋๋ค. packages.config ๋ฐ csproj ํ์ผ์ ๋ชจ๋ ์ ์งํด์ผ ํ๋ ๊ฒ์ ๊ณ ํต ์ค๋ฌ์ด ์ผ์ ๋๋ค ( @cwe1ss ์ ๊ฐ์ด ์ํ๋์ด์ผ ํฉ๋๋ค. ์ด ์ฃผ์ BTW์์ ๊ฐ์ฅ ๊ฑด์ค์ ์ธ ์๊ฒฌ ์ค ํ๋์์ต๋๋ค...
XML/JSON์ ์ฑ์ค๋ฌ์ด ์ ์์ ๊ดํด์๋... IMHO, XML์ JSON๋ณด๋ค ์ ํธ์ง์ ๋ ์ข์ต๋๋ค. XML์ ์ฃผ์์ ์ง์ํ๋ฉฐ ๋ณผ ๋ ๋ ๋ง์ ์ปจํ ์คํธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. JSON์ ๊ตฌ์ฑ ํ์ผ์ด ์๋ ๋ฐ์ดํฐ์ ๋ ์ข์ต๋๋ค. ๋ณํฉ์ ๋ ํ์ ๋ชจ๋์ ๋๊ฐ์ด ์ข๊ณ ๋์จ์ด ์์ผ๋ฉฐ ์ ์ ์ผ๋ก ๋ด์ฉ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ๋ก์ ํธ ์ฐธ์กฐ๊ฐ ํ์ฌ csproj ํ์ผ๊ณผ ๋ถ๋ฆฌ๋๋ค๋ฉด ๋ณํฉ๋ ํจ์ฌ ์ฌ์์ง ๊ฒ์ ๋๋ค...
๋๋ ๋ํ ์นดํ ๊ณ ๋ฆฌ 1์ ํด๋นํฉ๋๋ค(์ฌ๋ฌ ํ๋ก์ ํธ/์ ํ์ ๊ฐ๋ฐํ์ผ๋ฉฐ ์ค๋ซ๋์ ์ง์ํด์ผ ํ๋ ๊ฐ๋ฐ์). ์ ๊ณ ์ฉ์ฃผ๋ csproj ํ์์ผ๋ก ์๋ฐฑ๋ง ์ค์ ์ฝ๋ ๊ฐ์น๊ฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ASP.NET RC1 ๋ฐ RC2 ๊ฐ๋ฐ ๋ถ๊ธฐ์์ ์คํ๋๋ ์ต์ ์ ํ๋ ์์ต๋๋ค. ๊ณต์ ํ ๊ฒฝ๊ณ , ์ฐ๋ฆฌ๋ ๋ํ ์ฌ์ฉ์ ์ง์ MSBuild ์์ ์ด์ ๋ธ๋ฆฌ ๋ฑ๊ณผ ํจ๊ป MSBuild๋ฅผ ๊ณ ๊ธ ์ฌ์ฉํฉ๋๋ค.
๋ ์ฌ์ด์ ์ค์ ํตํฉ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์๋ง์ด ๋์์ต๋๋ค. ํนํ ๋ฉ ์์ฑ, ๋ํ๋ ์ข ์์ฑ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฉ ์ฌ์์ฑ, ์์ค ์ ์ด์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง(์ฐ๋ฆฌ๋ ๋ด๋ถ์ ์ผ๋ก Git์ TFVC๋ฅผ ๋ชจ๋ ์ง์ํ๊ณ ์ฌ์ฉํฉ๋๋ค. ), VS์ ๋์์ธ ํ์์ ํ๋ก์ ํธ๊ฐ ์๋ฃจ์ ์์ ์๋ก๋ฅผ ์ฐธ์กฐํ๋ ๋ฐฉ๋ฒ๊ณผ ๋น๋/๋ฐฐํฌ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ. ์์คํ ์ด _๋ง๋_ ๋๋์ ๋ฐ์ ์ ์ด ์์ต๋๋ค. ๊ฐ๊ฐ .cs ํ์ผ๋ง ์๋ ๋ ๊ฐ์ ๊ฐ๋ณ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ง ์ ์๋ค๋ ๊ฒ์ด ์ดํด๊ฐ ๋์ง ์์์ง๋ง ์ด ๋ ๊ฐ์ง ํ๋ก์ ํธ ์ ํ์ ์ ์์ผ ์ ์์์ต๋๋ค.
๊ทธ๋ฐ ์๋ฏธ์์ ์ง๊ธ๊น์ง ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฝ๋๋ฅผ ์ง์ํ๋ ๊ฒ์ด ์ ์ค์ํ์ง ์ถฉ๋ถํ ์ดํดํ๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์งํ ์ค์ธ ์ํ์์ ์ด๋ฌํ ์ ํ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ ์ ์ ํ ์๊ธฐ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ ๋ฒ์ ๋๋ฌด ๋ง์ ์ผ์ด ์ผ์ด๋๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ง๋ ๋ฏธ๋์ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ์ ํํธ๋ฅผ ์ป์ด LTS ๋ฆด๋ฆฌ์ค ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ๋ํด ์๊ฐํ๋ ๊ฒ์ ๋๊น? ์ด๊ฒ์ ํจ์ฌ ๋ ํฐ ๋ํ์ด์ง๋ง ํ๋ก์ ํธ ์์คํ ๊ต์ฒด์ ๊ฐ์ ์ผ๋ถ ๊ธฐ๋ฅ์ด ๋์ ๋์ด ์ฌ๋๋ค์ด ์ด๋ฅผ ํก์ํ ์๊ฐ์ ์ค ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋ ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฅํ ๋น๋ ์์คํ ์ด์ง๋ง ์ด๊ฒ์ ์ฅ๊ธฐ์ ์ธ ์๋ฃจ์ ์ด๋ฉฐ ํ์ฌ ๋ํ์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก/๋๋/3rd ํํฐ๋ฅผ ํ์ฉํฉ๋๋ค.
ํ๋ก์ ํธ ์ข ์์ฑ์ ๊ดํด์๋ ์ด๋ฏธ ์๋ง์ packages.config ํ์ผ์ด ๋ ๋์๋ค๋๊ณ ์์ผ๋ฏ๋ก packages.json/nuget.json์ผ๋ก ํฌํ ํ๋ ๊ฒ์ ํฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ์ข ์์ฑ์ ์ํ ์ ์ฅ์ ํ์๋ณด๋ค ์ผ๊ด์ฑ ์๋ ์ด์ ๋ธ๋ฆฌ ๋ฐ์ธ๋ฉ ๋ฆฌ๋๋ ์ ์ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@shederman ๊ทํ๋ MSBuild์ ๋ํ ๊ทํ์ ์๊ฒฌ์ ๋งค์ฐ ์ ์๋ ค ์ฃผ์ จ์ง๋ง ๋ช ํํ ํ์ง ์์ ๊ฒ์ MSBuild์ ์ค์ _๋ฌธ์ _์ ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ๋งค์ฐ ์ค๋ง์ค๋ฝ๊ฒ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ ๋ ์ง์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค๊ณ ๋๋ผ๊ธฐ ๋๋ฌธ์ MSBuild์์ ๋ฐ์ํ ์ค์ ๋ฌธ์ ๋ฅผ ์๊ณ ์ถ์ต๋๋ค.
์, ๋น์ ์ XML์ ์ข์ํ์ง ์์ต๋๋ค. ์๊ฒ ์ต๋๋ค. JSON๊ณผ XML ๊ฐ์ ๋ ผ์์ ์๋ก์ด ๊ฒ์ด ์๋๋ฉฐ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ์ ๋ ํด๊ฒฐํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด MSBuild๋ฅผ ๊ทธํ ๋ก ์ซ์ดํ๋ _์ ์ผํ_ ์ด์ ๊ฐ ๋ ์ ์์ต๋๋ค. ์ค์ ๋ก ๊ฒช์ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น?
์ ๊ฐ ์ง๋ฌธํ๋ ์ด์ ์ ๊ณ์ํด์ ์ง๋ฌธํ๋ ์ด์ ๋ ์ด๊ฒ์ด ๋ฐ๋ก Microsoft๊ฐ ํด๊ฒฐํ๊ณ ์ ํ๋ ์ ํํ ๋ฌธ์ ์ด๊ณ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๋ช ํํ ํ์ง ์์ผ๋ฉด ํด๊ฒฐ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ MSBuild์ ๋ํด ์ซ์ดํ๋ ๋ง์ ๋ถ๋ถ์ด ์ด๋ฏธ ์์ ๋๊ณ ์์์ ์๊ณ ์์ต๋๋ค.
๋ญ๊ฐ ๋จ์์ด? ์ค์ ๋ก MSBuild์ ๋ฌธ์ ์ ๋ํด ๋ ผ์ํ๊ณ ๋ชจ๋ ๊ฒ์ ๋ถ๊ธฐํ๊ฑฐ๋ ์๋ง ๊ฐ์ ๋ณต์กํ๊ณ ๋น์ฆ๋์ค ํฌ๋ฆฌํฐ์ปฌํ ํ๋ก์ ํธ๋ฅผ ํฌ๊ธฐํ์ง ์๋ ์๋ฃจ์ ์ด ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ _ ์ํ๋_ ํ ๋ก ์ ๋๋ค.
์ด๊ฒ์ ๋ํ ๋ด 2 ์ผํธ :
๋๋์ฒด ์ ์ด๋ฐ ๋ณํ๊ฐ ์ง๊ธ ์ผ์ด๋๊ณ ์๋ ๊ฒ์ผ๊น์? ๋ก๋๋งต์ ๋ฐ๋ฅด๋ฉด ์ต์ข
๋ฆด๋ฆฌ์ค๊น์ง 1๊ฐ์ ๋ฐ์ ๋จ์ง ์์์ต๋๋ค.
์ฒ์์ ์ด๊ฑฐ๋ณด๊ณ ๋๋ด์ธ์ค ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌํ๊ฒ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์ด๊ฒ์ ์ปค๋ฎค๋ํฐ์ ์ผ๊ตด์ ํฐ ํ๊ฒฉ์
๋๋ค. ๊ทธ๋ฌํ ๊ฒฐ์ ์ ์ฑํ๋๊ธฐ ์ ์ ๊ธด ๋ํ ์ค๋ ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
@laskoviymishka (๋ฐ ๊ธฐํ ๋ช ๊ฐ์ง)๋ @neoKushan์ด ์ฌ๊ธฐ์์ ์ธ๊ธํ์ต๋๋ค. ์ด ๋ณ๊ฒฝ์ ํ์ฌ ๋ฐ์ํ์ง
@laskoviymishka RTM ์ด์ ์๋ ๋ณ๊ฒฝ ์ฌํญ
RTM์ ์ค๋๋ ์ฌ์ฉ๋๋ ๊ฒ์ฒ๋ผ ์ฌ์ ํ project.json์ ์ฌ์ฉํฉ๋๋ค(RC2์ ๋ํ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ด๊ณ์์ด ๋ฐ์ํ์ต๋๋ค). "์๋ก์ด" csproj๋ก์ ์ด๋์ RTM ์ดํ์ ์ด๋ฃจ์ด์ง ์์ ์ด๋ฉฐ ์ ์ง์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ ๋๋ค. RTM์์ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค(xproj์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์ ์ธํ๊ณ ).
@CodingGorilla RC2๋ก ํ๋ฌ๋ง์ 1.0๋ฒ์ ์ผ๋ก ์ฎ๊ฒจ๊ฐ๋๋ค. ํ์ค ์ธ๊ณ์์ ์ด๊ฒ์ ๋ชจ๋ ๊ฐ๋ฐ์ ์ค๋จํ๊ณ ์์ ํ์ ์ง์คํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ ์ค์ ๋ก ์๋ฌด๊ฒ๋ ์์ ํ๋์ง ์์ต๋๋ค.
@neoKushan RTM ์ดํ์ ๋ฐ์ํ๋ค๋ฉด ์ asc ์ปค๋ฎค๋ํฐ๊ฐ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ์ง ์์ต๋๊น? github์์ ํ ๋ก ์ค๋ ๋๋ฅผ ์์ํ์ธ์. ๋ ผ์ ๋ฑ์ ์ง์ ํ๊ธฐ ์์ํฉ๋๋ค. ์ ๊ฐ๋ฐ์์ ๋ํํ์ง ์๊ณ ๊ฐ์ ํด์ผํฉ๋๊น?
IMHO project.json
์์ project.csproj
๋ก์ ์ด ์ด๋์ ์ฑํ๋๊ธฐ ์ ์ ๋
ผ์๋์ด์ผ ํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ ์ข์ ๊ฒฐ์ ์ด ์๋๋๋ค. ์ ์ด๋ ์ ์๊ฒ๋์.
@laskoviymishka ์ปค๋ฎค๋ํฐ ์คํ ๋์ ๋ ธํธ : (๊ฐ์กฐ ์ถ๊ฐ)
RC2/Preview 1์์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค . RTM/๋ฏธ๋ฆฌ ๋ณด๊ธฐ 2์์ _ ์ ์ผํ ๋ณ๊ฒฝ ์ฌํญ์ xproj ํ์ผ์ ์ด๋ฆ์ด Visual Studio์์ csproj_๋ก ๋ณ๊ฒฝ๋๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๊ทธ ์์ ๋ถํฐ project.json์ csproj ์์ ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์ project.json์์ csproj ํ์ผ๋ก ๊ธฐ๋ฅ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํฉ๋๋ค. project.json ํ์ผ์ด ๋จ์ ์๊ณ NuGet์ ๋ํ ๋ชจ๋ ํจํค์ง ์ฐธ์กฐ๊ฐ ํฌํจ๋์ด ์๊ณ ์ด๋ฆ์ด nuget.json์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ํ์ project.json ๋ชจ๋ธ์ ์ฃผ์ ์ด์ ์ค ํ๋์ธ ํ๋ก์ ํธ ํ์ผ์ ๋ชจ๋ ํ์ผ์ ๋์ดํ ํ์๊ฐ ์์์ ๋ณด์ฌ์ฃผ๋ ๋ช ๊ฐ์ง ์์ ์ ์ด๋ฏธ ํ ์คํธํ์ต๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ ๋๋ถ๋ถ ๋๊ตฌ ๋ณ๊ฒฝ์ด๋ฉฐ ๋งค์ฐ ๋จ๊ธฐ์ ์ผ๋ก(์ฆ, RTM+) project.json ํ์ผ์ด ์ฌ์ ํ ์กด์ฌํ๊ณ ์ง๊ธ๊ณผ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ์ข์ ์์์ ์ฐ๋ฆฌ๊ฐ ์ํฉ์ ์ ์คํ๊ณ ๊ฑด์ค์ ์ผ๋ก ์ ์งํ ์๋ง ์๋ค๋ฉด ์ปค๋ฎค๋ํฐ๊ฐ ์ด๊ฒ์ ์ํฅ์ ๋ฏธ์น ์๊ฐ์ด ์์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
@laskoviymishka ๊ธ์์, ์ ๋ Microsoft๋ฅผ ๋๋ณํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๊ถ๊ทน์ ์ธ ๊ณํ์ด ๋ฌด์์ธ์ง๋ ๋ชจ๋ฅด์ง๋ง ๊ทธ๋ค๋ ์ ๋ง ์๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๊น๊ฐ๊ฐ ์๋์์ ๋ฝํ๊ณ Microsoft๊ฐ ์ด๊ฒ์ ๊ฒฐ์ ํ๊ธฐ ์ ์ ์ฐ๋ฆฌ์ ์์ํ์ด์ผ ํ๋ค๊ณ ๋งํ์ง๋ง ์ค์ ๋ก๋ ์์ง ์๋ฌด ๊ฒ๋ ๋ฐ๋์ง ์์์ผ๋ฉฐ ๋ช ๋ฌ ๋์ ์๋ฌด ๊ฒ๋ ๋ฐ๋์ง ์์ ๊ฒ์ ๋๋ค. ์ ์ง์ ์ธ ๋ณํ์ ํด๋ง์ด ์ด๋ ์ ๋ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
Microsoft ๋๋ ์ ์ด๋ asp.net ํ์ ์ด์ ๋ํ ํผ๋๋ฐฑ์ ์์ฒญํ์ผ๋ฉฐ ์์ฌํ ์ฌ์ง ์์ด ์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ์์ง๋ง ์๋ง๋ ์ฐ๋ฆฌ๊ฐ ๋๋ฝ๋ ๊ฒ์ "ํ ๋ก ์ ํ๊ณ ์ถ๋ค๋ฉด, _์ฌ๊ธฐ_". ๊ทธ๋ฌ๋ ๋๋ ์ ํ์ด ์ฌ๋๋ค์ด ์๊ฐํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ผ์ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ง๊ธ๊น์ง ๊ทธ๋ค์ด ํ์คํ ์๊ณ ์๋ ๊ฒ์ xproj์ ์ด๋ฆ์ csproj๋ก ๋ฐ๊พธ๋ ๊ฒ๋ฟ์ ๋๋ค.
๋๋ ๊ฐ์ธ์ ์ผ๋ก ๊ทธ๊ฒ์ด ์ฝ๊ฐ์ ์ํฐ๋ฆฌ ๋ณํ๋ผ๊ณ ์๊ฐํ์ง๋ง, ๋๋ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ํ๋ ์ด์ ๋ฅผ ์ดํดํฉ๋๋ค. ๋ ๋์ ๋ต๋ณ์ด ์์ผ๋ฏ๋ก ์ ์๊ฐ์ csproj ์คํ์ผ ํ๋ก์ ํธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด ๊ธฐ๊ฐ์ ํ์ฉํ์ฌ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ต๊ณ ์ _์ข ๋ฅ_์ csproj๋ฅผ ์ ์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. project.json์ ์๋์ง๋ง ๋ ์ธ๊ณ์ ์ฅ์ ์ ๋ชจ๋ ์ป์ ์ ์๋ค๋ฉด ์ฅ๊ธฐ์ ์ผ๋ก ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ ๋์์ง ๊ฒ์ ๋๋ค. ๋ชจ๋๊ฐ ๋์ํ๋ ๊ฒ์ ์๋๋ฉฐ ๊ด์ฐฎ์ต๋๋ค.
@neoKushan ์ด๊ฒ์ ์ข์ ์ง์ ์ ๋๋ค. MS๊ฐ ๊ทธ๊ฒ์ ๋ณด์์ผ๋ฉด ํฉ๋๋ค. ํต์ฌ ํ์ ํผ๋๋ฐฑ์ ๋ณด๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
@CodingGorilla ๊ธ์์ ์ต์ข ๋ฒ์ ์๋ ์ฌ์ ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ณํ์ ์ฃผ์ ๋ฌธ์ ๋ ํต์ฌ ํ์ด ์ธ๋ฐ์์ด ๋ง์ ์๊ฐ์ ๋ณด๋ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์๋ง๋ ๊ด๋ฆฌ์ ๋ฌธ์ ์ผ ๊ฒ์ ๋๋ค. ํ๋์ ์๋ํ๋ ๊ฒ์ ์๋ง๋ ์๋ํ๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ง์ ๊ฐ๋ฐ ์๊ฐ์ ๋ณด๋ด๋๋ก ํฉ์๋ค. ์ง์ง ์ข์ ์ด์ ์์ด.
@neoKushan
์ค์ ๋ก MSBuild์ ๋ฌธ์ ์ ๋ํด ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.
๋๋ ์๊ฒฌ์ ํ์ฑํ๊ธฐ์ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ฐพ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. project.json ๋ฐ .csproj ํ์ผ ์ญ์ ๋ก ์ธํด ํ์ฑํ๋๋ _seem_ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ด ์ฌ๋ผ์ง๊ธฐ๋ฅผ ์ํ์ง ์์ง๋ง "์๋กญ๊ณ ๊ฐ์ ๋" msbuild๋ก ์ด๋ํ๋ฉด ๋ด ์ํฌํ๋ก๊ฐ ์ด๋ป๊ฒ ๋ฐ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ ์ํํ๋ ์ฌ๋๋ค์ด ๊ณ ๋ คํด์ผ ํ ์๋๋ฆฌ์ค(๋์ฒ๋ผ!)์ ๋๋ฌํ๊ณ ์ด์ ๋ํ ๋ ผ์๊ฐ ์ด๋ฃจ์ด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. "์๋ฌด๋ฆฌ ๋ ผ์๋ ์์ด ์น์ฆ๋ฅผ ์ฎ๊ธฐ๊ณ ์๋ค"๋ ๋ง์ด .net core์ SOP๊ฐ ๋์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ ๋๊ตฌ๋ ๋น์ ์ ์ํด ์ด๋ ์ ๋ ํ ๊ฒ์ ๋๋ค
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ฃผ์ ์์ ์ ๋๋ค. ํ์ํ ๋๊ตฌ๋ ์ ์์๋ก ์ข์ต๋๋ค. ๋๋ ํ์ฌ ์๋ฅ์์ ์์ํ๊ณ ์๋ค๋ ๋๋ ์์ด ํ ์คํธ ํธ์ง๊ธฐ์ ๋ช ๋ น์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ณํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. .net46์์ VS๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ๊ฑฐ๋ํ๊ณ ์ฅํฉํ xml ํ์ผ์ ํธ์งํด์ผ ํ๋ฉฐ ๋์ผํ ํ๋ก์ ํธ์์ VS ์ฌ์ฉ์์ ๋น VS ์ฌ์ฉ์๋ฅผ ํผํฉํ๋ ๊ฒ์ ์ ๋ชฝ์ ๋๋ค.
"RTM์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ด๊ฒ์ ๊ทํ์ ํ๋ก์ ํธ ํ์ผ์ด ๊ฐ๊น์ด ๋ฏธ๋์ ๋ณ๊ฒฝ๋ ๊ฒ์์ ์๊ธฐ์์ผ์ค๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ด๊ฒ์ ๊ฒฐ์ ํ์ต๋๋ค. ์ด์ , ๊ทธ๋ฌ๋ ๋๋ถ๋ถ ์ฐ๋ฆฌ๊ฐ ๊ณฑ์ฌ๊ณฑ์ฌํ ๊ฒ๋ณด๋ค ๊ฐ๋๋ฅผ ๋ ์ข์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค, ๋น๋ ๋๊ตฌ, ์, ๋น๋ ์ฐ๋ฆฌ๋ ์ต์ข ์คํค๋ง๋ฅผ ๊ฒฐ์ ํ์ง ์์์ง๋ง(ํ์ง๋ง ์ด๊ฒ์ xml ๊ธฐ๋ฐ์ผ ๊ฒ์ ๋๋ค, ์ ์ฐธ์กฐ), ํ์ผ ์ด๋ฆ์ ํ์คํ .csproj๋ก ๋๋์ ๋ ๊ฑฐ์ ๋๊ตฌ์ ์ต๋ํ์ ํผ๋์ ์ค ๊ฒ์ ๋๋ค. Agile.(ps ๋น์ ์ด ๋๊ตฌ ๋ฒค๋๋ผ๋ฉด::o)"
@Oceanswave ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ด๋ฆฌ ํ์ง ๋ง์์ผ ํ๋ ๋ฐฉ๋ฒ์ ์๋ฆ๋ค์ด ์
@neoKushan
ํ์ง๋ง ๋ช ํํ์ง ์์ ๊ฒ์ MSBuild์ ์ค์ ๋ฌธ์ ์ ๋๋ค.
์ด ๋๊ฐ์ ์ง๋ฌธ์ ๋ํ ์ด์ ๋ต๋ณ์ ์ฝ์ด์ผ ํ ๊น์? https://github.com/aspnet/Home/issues/1433#issuecomment -218993559
๋๋ MSBuild ํ์ผ์ ์์ , ๊ฐ๋ฐ ๋ฐ ๋๋ฒ๊น ํ๋ ๋ฐ ์๋ฐฑ ์๊ฐ์ ๋ญ๋นํ์ต๋๋ค. ์ ๋ Team Builds๋ฅผ ์ํํ๊ณ ๊ฑฐ๋ํ ๋น๋ ๋ฐ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ํํ์ต๋๋ค. ๋๋ ๋๋์ฒด ์ ์ด์ํ ์ํฉ์ด ๋ฐ์ํ๋์ง ์์๋ด๋ ค๊ณ ์ฅํฉํ ๋ก๊ทธ๋ฅผ ์กฐ์ฌํ๋ ๋ฐ ๋ช ์๊ฐ์ ๋ณด๋์ต๋๋ค. ๋๋ ์ด ๊ธฐ์ ์ ๋ํด ์๋ ๋์ ํ๋น๋ฅผ ์ง๋ถํ์ผ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ์ด ๊ธฐ์ ๊ณผ ๊ด๋ จ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. project.json์ ์ ์ ํ ๊ณต๊ธฐ์ ์จ๊ฒฐ์ด์์ต๋๋ค. MSBuild๋ก ์๋ ๊ฐ ๊ณ ์ํ ๋์ ๋ง์นจ๋ด MS๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ๊ณ ์ ์ฉ๋๊ณ ์๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๊ด์ด์์ต๋๋ค. ๊ฐ๋จํ ๋น๋, ๊ฐ๋จํ ํธ์ง, ๋น ๋ฅด๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ถ๋ ฅ. MSBuild ์คํฌ๋ฆฝํธ์ ์์ค์ ํผ๋ถ๋ ๊ทธ ์๊ฐ์ ๊ธฐ์ต์ ์ป์ด๋์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง์นจ๋ด ๊ณผ๊ฑฐ์ ์์ฒด์์ ๋ถ๋ฆฌ๋๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋์, ์ด์ ์ฐ๋ฆฌ๋ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋์ง ์์ ๊ฒ์ด๋ผ๋ ์ฝ์์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ทธํ ๋ก ์ฆ์คํ๋ ์์ฒด์ ๋ค์ ์กฑ์๋ฅผ ์ฑ์ ์ต๋๋ค.
ํ ๋ก ์์ด, ๊ฒํ ์์ด, ์ด๋ค ์ข ๋ฅ์ ์ฐธ์ฌ๋ ์์ด.
์ผ๋ถ ๋ถ๊ธฐ์์ MSBuild๊ฐ ์ผ๋ง๋ ๋ฏธ์์ ๋ฐ๋์ง์กฐ์ฐจ ์์ง ๋ชปํ๋ค ๋ ๊ฒ์ ์ฆ๋ช ํฉ๋๋ค.
MSBuild์ ๋น๋ ์์คํ ์ผ๋ก์ ์ค์ํ ๊ธฐ๋ฅ์ ์ ํ์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์์ฒญ๋๊ฒ ๊ฐ๋ ฅํ๊ณ ์ด๋ค ์๋ฏธ์์ ๊ทธ๊ฒ์ด ์ฃผ์ ์ฝ์ ์ ๋๋ค. ๋๋ฌด ๋ง์ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ณต์กํฉ๋๋ค. ๋จ์ํ "๋ณต์, ๋น๋, ํ ์คํธ, ํฌ์ฅ" ์๋๋ฆฌ์ค์ ๊ฒฝ์ฐ ์ด๋ ์ ๋ง ์์ฒญ๋ ์ผ์ ๋๋ค.
์ฐ๋ฆฌ ํ์์๋ C# ๊ฐ๋ฐ์๋ฅผ ์๋ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ์๋ฐ๊ฐ, ์ด๋ฐํ ๋ง๊ฐ์ผ, ๋์ ์คํธ๋ ์ค๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ฐฉํด๊ฐ ๋๊ฑฐ๋ ์ง์ฐ๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
MSBuild๋ ๋ค๋ฅธ ์ฌ๊ณ ๋ฐฉ์, ์ฆ ๋ช ๋ นํ ์ฝ๋ฉ๊ณผ์ ์ฃผ์ ์ปจํ ์คํธ ์ ํ์ ๋๋ค. ๊ฐ๋ฐ์๋ ๋จ์ํ ๊ทธ๊ฒ์ ์ซ์ดํฉ๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ด ๋ํ๊ณ ์ง๊ด์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ํผํฉ๋๋ค. ์์ฆ ๋ด๊ฐ ๊ฐ๋ ํ๋ ๋ชจ๋ ํ์์ ์์ฑ๋๋ ์ ์ผํ MSBuild๋ ๋๊ตฌ ์์ฑ์ ๋๋ค.
์ ๋ ์ง๋ 5๋ ๋์ MSBuild์ ์ด๊ดํ๊ฑฐ๋ MSBuild ์์ ์ ์ฆ๊ธฐ๋ C# ๊ฐ๋ฐ์๋ฅผ ํ ๋ช ๋ ๋ง๋์ง ๋ชปํ์ต๋๋ค. Github์์ ์ง๋ ๋ฉฐ์น ๊ฐ ๋๊ธ์ ์ดํด๋ณด์ธ์. MSBuild๊ฐ ์ซ์ ๊ฒ์ ๊ฒฐ์ฝ ํผ์๊ฐ ์๋๋๋ค. MSBuild๋ 10๋ ๋์ .NET ๊ฐ๋ฐ์์ ๋ชฉ์ ์กฐ๋ฅด๋ ๋งท๋๋ก ์ธ์๋์ด ์์ต๋๋ค. ๊ทธ๋ฌํ ์ธ์์ ๋๋ถ๋ถ์ ๋ถ๊ณต์ ํฉ๋๊น? ๋ค, ์๋ง๋.
ํ์ง๋ง ์ด์ฉ์ฃ ? ์ํํธ์จ์ด ์์ง๋์ด๋ง ์ฑ ์์์ธ ์ ๊ด์ ์์๋ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค. MSBuild์์๋ ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํฉ๋๋ค. ๋๋ project.json + gulp.js + powershell์์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
_Can_ MSBuild๊ฐ ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๊น? ๋ฌผ๋ก ๊ฐ๋ฅํ์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด MSBuild์์ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋จ์งํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค์๊ฒ ๊ฐ์ ํ๋ฉด ๊ทธ๋ค์ ๊ทธ๊ฒ์ ํ๊ณ ๋์ ๊ทธ๊ฒ์ ์ ์งํ์ง ์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ซ์ดํ๋ ๋๊ตฌ์ ์์กดํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋จ์ํ ํ์ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ค์ค๋ก ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ผ๋ง๋ ์ข์ํ๋์ง ์๊ฐํ๋ฉด ๋๋ ์ค์ ๋ก ๊ทธ๋ค์ ๋น๋ ํ ์ ์์ต๋๋ค.
์ค์ ๋ก MSBuild์ ๋ฌธ์ ์ ๋ํด ๋ ผ์ํ๊ณ ๋ชจ๋ ๊ฒ์ ๋ถ๊ธฐํ๊ฑฐ๋ ์๋ง ๊ฐ์ ๋ณต์กํ๊ณ ๋น์ฆ๋์ค ํฌ๋ฆฌํฐ์ปฌํ ํ๋ก์ ํธ๋ฅผ ํฌ๊ธฐํ์ง ์๋ ์๋ฃจ์ ์ด ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
์, ๋ฌด์์ ํ ์ ์์ต๋๊น?
์ฝ 5๋ ์ , ์ง๊ธ ๋ ผ์๋๊ณ ์๋ ๋ณํ ์ค ์ผ๋ถ๊ฐ ๋์ ๋์๋ค๋ฉด ์ธ์์ด ๋ ์ข์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ๊ทธ๋ ์ง ์์๊ณ ์ง๊ธ์ ์๋ง์ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋ถ์ ์ ์ธ ์ฌ๊ณ ๋ฐฉ์์ ๊ฐ๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๊ธฐ์ตํ๊ธฐ๋ก๋ ์ด๋ฌํ ๋์ผํ ๋ฌธ์ ์ค ์ผ๋ถ๊ฐ ๋น์ MSBuild์์ ์ ๊ธฐ๋์์ง๋ง ๊ฑฐ๋ถ๋์์ต๋๋ค. ํ์ฌ ๋ฌธ์ ๊ฐ ์ ๊ธฐ๋๊ณ ๊ฑฐ๋ถ๋๋ ๊ฒ์ฒ๋ผ.
์ด๋ป๊ฒ ๋ณต๊ตฌํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋๋ ๋ช ๊ฐ์ง ์ฃผ์ ๊นจ๋ํ ํด์์ด ์์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฑฐ๊ธฐ์ ์๋ ๊ฒ์ ๋ถ์์ง ์๊ณ ์ด๋ป๊ฒ ๋ง๋๋์? ๋๋ฌด ์ ์ต๋๋ค. ๋๋ฌด ๋ฆ์์ต๋๋ค. ๋ฐ๋ผ์ MSBuild๊ฐ ์์ผ๋ก ๋์๊ฐ ๊ธธ์ ์ ๋ฅผ ์ํ ๊ฒ์ด ์๋๋ผ ์ ๋ฅผ ์ํด ์ผํ๋ ๊ฐ๋ฐ์, ์ ํํธ๋ ๋๋ _๊ทธ๋ค_์ ์ํด ์ผํ๋ ํ์ด ์๋, ์ฐ๋ฆฌ๊ฐ ์ปจ์คํ ํ๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋๋๋ค. ์ด๋ฌํ ์ฒญ์ค ์ค ๋๊ตฌ๋ MSBuild๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ดํ์ง ์์ผ๋ฉฐ, ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๊ตฌ์์ ์ฌ์ฉํ๋ฉฐ ๋ฐ๋ณต์ ์ผ๋ก ๋งน์ธํฉ๋๋ค. ๋ถ๋ช ํ ์ผ๋ฐ์ ์ผ๋ก ๋ณํฉ ์๊ฐ ์ฃผ๋ณ์ ์์ต๋๋ค.
๊ทธ๋์ _์ง๊ธ_ ๋ ๋์ ๋ณํฉ์ ์ํ์ญ๋๊น? 10๋ . ๋๊ตฌ ํ ๋ง์ ๋ถ๋ถ์์ ์์ ๋๊น?
๊ธฐ๋ณธ์ ์ผ๋ก 2010๋
์ดํ ๊ฐ๋ฐ์๋ค์ด ์ค์ ๋ก ์ฌ์ฉํ๊ณ ์๋ 90๋
๋ ํ๋ฐ Build Masters์ฉ์ผ๋ก ์ค๊ณ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋
ผ๋ฆฌ์ ๋ํ ์ถ๋ก ์ ์ฌ์ฉํ๋ ๋๊ตฌ๋ ๊ฐ๋ฐ์๊ฐ ๋ช
๋ นํ ์์
๋ฐ ๋ช
๋ นํ ๋๊ตฌ์ ์ฌ์ฉํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ์์ฑ ์งํฉ์ด ๋จ์ํ ํ ๋น ์ฐ์ฐ์๋ผ๊ณ ์๊ฐํ๊ณ ์ PropertyGroup
ํ๊ณ ์ถ์ดํ๋์ง ์ดํดํ์ง ๋ชปํ๋ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ์์ฑ์ ์ค์ ํ๋ ๋งค์ฐ ์ ์ฐํ์ง๋ง ๋ช
ํํ์ง ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๋๊ตฌ์
๋๋ค. ์ ๊ฒฝ์ฐ์ง ๋ง์ธ์.
๊ทธ๊ฒ์ด ์ ๊ฐ ํ๊ณ ์ถ์ ํ ๋ก ์ ๋๋ค.
์๊ฒ ์ต๋๋ค. ์๊ฒ ์ต๋๋ค. ๋ด๊ฐ ํ๊ณ ์ถ์ ํ ๋ก ์ ๋ค๋ฅด์ง๋ง, "๋น์ ์ด ์ฐ๋ฆฌ์๊ฒ ์ฝ์ํ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฃผ๊ฑฐ๋, ์๋๋ฉด ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ์ค๋๋ ์๋ก์ด ์์ด๋์ด๋ฅผ ์ข์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์ฝ์ํ ๋๋ก ํ๊ธฐ ๋๋ฌธ์"์ ๋๋ค.
์ฌํ ๊ฒ์ ๊ณต์ ํ ์ ์์ต๋๊น? ๋์ ๋น์ทํ ๊ฒฝํ์ ๊ฐ์ง ๋น์ฆ๋์ค ํํธ๋(์ฌ์ค์) ์ค์์ ์ ๋ ๋น์์ MSBuild์ ๊ฐ์ฅ ์ฐฌ์ฑํ์ต๋๋ค. ์ค์ ๋ก _์ฌ์ฉ_ํ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ฐฐ์ ๋ค. ํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ 5๋ ์ ์ ์ผ์ด๋ฉฐ ๊ทธ ์ดํ๋ก ๋ง์ ๋ฌผ์ด ๋ค๋ฆฌ ์๋๋ก ํ๋ฌ๊ฐ์ต๋๋ค.
Man ๋๋ @shederman ์ ์ฝ๋ฉํธ์ ์ญ์ฌ๊ฐ ๋์ ๋งค์ฐ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ์ฝ์ผ
์๊ฐํด ๋ณด์ธ์: Visual Studio ํ์ฅ(.vsix). ์๋ฌด๋ ๊ทธ๊ฒ๋ค์ ๋ง์ง๊ณ ์ถ์ดํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ๋ค์ด ์ค๋๋ ๊ฑฐ๊ธฐ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ค๊ณผ ์ผ๋ง๋ ๋ ๊ฑฐ์/์ค๋๋จ/๋ค๋ฅด๊ฒ ๋น๊ต๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ธ์, ๋น์ ์ ๊ทธ๊ฒ์ ์ํ๋ ์ผ๋ถ ๊ฐ๋ฐ์๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๋ค์ MSBuild์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋นํ ์์คํ ์ ๋ฐฐ์ฐ๋ ๋ฐ ๋น์ฉ์ ์ง๋ถํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ๋ MSBuild๋ฅผ ๋ค๋ค๋ณธ ๊ฒฝํ์ด ์๋ ์ ๋ฌธ๊ฐ ์ค ๊ฐ์ฅ ๊ฒฝํ์ด ํ๋ถํ ์ฌ๋์ผ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ ๊ทธ๊ฒ์ ๋ฐฐ์ฐ๋ ๋ฐ ๋ง์ ์๊ฐ์ ๋ค์ด๊ณ ์ถ์ดํ์ง ์์ต๋๋ค(๋น์ ์ด ๊ฐ์ฅ ํ์คํ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค). ๋ง์น ์์ ์ ์ธ์ด์ธ ๊ฒ ๊ฐ์ต๋๋ค.
"๋ .NET๊ณผ ์ ์ฌํ๊ณ "(VS์ ๋ ๋์ ํตํฉ์ด ์์๋ค๋ฉด) ์์ ํ๊ธฐ์ ๋ ๋์ ์ ํ์ด๊ณ ๊ณ ๋ คํด์ผ ํ ๋งค๋ ฅ์ ์ธ ์ ์์ด ๋ ๊ฒ์ด๋ผ๋ ๋ฐ ์ฐ๋ฆฌ ๋ชจ๋ ๋์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@Mike-EEE & @shederman Mike์ ์์ ์ ๋ฐ๋ฅด๋ฉด, ์ค๋๋๊ณ ๊ตฌ์์ด๋ฉฐ "๋ค๋ฅธ (.NET) ๊ฐ๋ฐ์๊ฐ ์์ ํด์ผ ํ๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ..."์ ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋ค์ ์์ ํ๊ณ ์ถ์ ๋ฌธ์ ๊ฐ ์์์ ์ธ์ ํ์ต๋๋ค. ๋ฐ๋ผ์ ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ ํ ์ ์์ต๋๊น? ๋๋ @shederman์ ์๋ต์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ๊ทธ์ ์ถ๋ก ์ ๋๋ถ๋ถ ๋์ํฉ๋๋ค(๋น๋ ๋ฐ ํ๋ก์ ํธ ์์คํ ์ด ์ฐ๋ ค์ ์ด์ํ ํผํฉ์ด๋ผ๋ ์ฃผ์ ์ ๋์ํฉ๋๋ค).
๋ค์ ๋งํ์ง๋ง, ๋๋ ์ด ๊ฒฝ์ฃผ์ ๋ง์ด ์์ผ๋ฉฐ ๊ทธ๋ค์ด ์ด๋ค ๊ธธ์ ์ ํํ๋ ์๊ดํ์ง ์์ต๋๋ค. ๋๋ ๊ทธ์ ์์ง์๊ฐ๋ฝ์ ์น์ผ๋๋ ๋ฐ์์ ์ป๊ณ ๋ด ์์ ์ด ๋งํ๋ ๊ฒ์ ๋ฃ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
๋๋ ๊ทธ์ ์์ง์๊ฐ๋ฝ์ ์น์ผ๋๋ ๋ฐ์์ ์ป๊ณ ๋ด ์์ ์ด ๋งํ๋ ๊ฒ์ ๋ฃ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
๋์ ์ค ์์์ด์ ๊ธฐ๋ป! :์๋ค:
๊ทธ๋ฌ๋ ์๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๊น? ๊ณ ์น ์ ์์ต๋๊น?
๋น์ ์ด ๋ฌป๋ ์ฌ๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. @shederman์ด ์ ์ํ ๋๋ก ์ด์์ต๋๋ค (์, ๊ฑฐ๊ธฐ์์ ๋ด ๋ง์ ๊ฒ์ดํ์ต๋๋ค :stuck_out_tongue: ). ๊ทธ๋ค์ ๋ฐฉ์๋๋ก ์ค์ ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง ์ํํธ์จ์ด์ ํน์ฑ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ๋ง ์๋ค๋ฉด ๋ฌด์์ด๋ ๊ฐ๋ฅํฉ๋๋ค. :๋์ง:
@PhilipRieck ์ ๋ง ๋ฉ์ง ์ง๋ฌธ์ ํ๊ณ ์์ต๋๋ค! ๋ถํํ๋ ๋๋ ๊ทธ๋ค ๋ชจ๋์ ๋ํ ํ์คํ ๋ต์ ๊ฐ์ง๊ณ ์์ง๋ ์์ง๋ง ๋ค์์ ๋ด ์๋ค.
ํ์ฌ ์ฐ๋ฆฌ๋ ๋ชจ๋ ๋น๋ ์์ ์ ๊ฟ๊บฝ ๊ฟ๊บฝ ๊ฟ๊บฝ ๊ฟ๊บฝ ๋ง์๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ ๋ฐ๋๋์? ๋ด gulpfile์ dnu ๋๋ dotnet-cli๋ก ์คํํ์ฌ ์ค์ ๋ก .cs ํ์ผ ๋ชจ์์ ์ด์ ๋ธ๋ฆฌ๋ก ์ ํํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์งํฌ ์ ์๋ค, ๊ทธ๋ ์ง?
๋๋ ์ด๊ฒ์ด ๋ฐ๋ ๊ฒ์ด๋ผ๊ณ _์๊ฐ__ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ํ๋ก์ ํธ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ๋น๋๋๋์ง๊ฐ ์๋๋ผ ํ๋ก์ ํธ _definition_์๋ง ์ํฅ์ ๋ฏธ์น๋ค๊ณ 95% ํ์ ํฉ๋๋ค(์ ์ด๋ dotnet build๋ฅผ ํธ์ถํ๋ ๊ฒ ์ด์). dotnet CLI๋ ์ด๋ ์์ ์์ MSbuild๋ฅผ ํธ์ถํ ์ ์์ง๋ง ๊ทธ ์์ ๊น์ง๋ ์ผ์ข ์ ๋ด๋ถ ์์ ์ ๋๋ค.
msbuild๋ ๋ณ๋ ์ค์น์ธ๊ฐ์? dotnet cli ๋๋ ๋ฐํ์๊ณผ ๋ณ๋๋ก ๋ฒ์ ์ด ๊ด๋ฆฌ๋๋์? ์ด๊ฒ์ ๋ด CI ๋น๋ ์๋ฒ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์๊ฐ์ ์ด๋ป๊ฒ ๋ณ๊ฒฝํฉ๋๊น? ๊ฐ๋ฐ ํ๊ฒฝ์ ์ต์ ์ค์นํด์ผ ํ๋์?
์ด์ ๋ํ ๋ช ํํ ๋ต์ ์์ง๋ง MSBuild๊ฐ ์ด๋ฏธ ์ค์น๋์ด ์๋ ๊ฒฝ์ฐ์๋(์: VS๋ก) MSBuild๊ฐ ์์ ํ ๋ณ๋์ ์ค์น๋ก dotnet CLI์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ค๊ณ _์์_ํฉ๋๋ค. ์์ ํ ์ ์ถ์ธก์ ๋๋ค. ๋๋ ์ด ์ ์ฒด ".net ๋์ฒ์" ํ๋ก์ ํธ์ ํฐ ๋ชฉํ๊ฐ ์ฌ๋๋ค์ด ๊ฐ๋ฐํ ์ ์๋๋ก ์ต์ํ์ ์๋์ ํผ์ฐ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ง ๊ทธ๋๋ก apt-get dotnet-cli(๋๋ ๋ฌด์์ด๋ ), dotnet new, dotnet build์ฌ์ผ ํฉ๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ธฐ ์ํด MSBuild๋ฅผ ํธ์ถํ ํ์๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด dotnet-cli์ ์์ ์ ๋๋ค.
ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ nuget ์ข ์์ฑ ๋๋ .cs ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ์ด์ ์ถ๊ฐํด์ผ ํ๋ ์ถ๊ฐ ๋จ๊ณ(์๋ ๊ฒฝ์ฐ)๋ ๋ฌด์์ ๋๊น?
.cs ํ์ผ์ ๊ฒฝ์ฐ ์ค๋๋ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์คํ ๋ค๋ฅธ ๊ฒ์ ์์ต๋๋ค. ๊ทธ๋ค์ด ๋งค์ฐ ๋ช
ํํ๊ฒ ๋ฐํ ํ ๊ฐ์ง๋ ํ๋ก์ ํธ์ ๋ชจ๋ .cs ํ์ผ์ ์ง์ ํ๋ ์๋๊ฐ ์ง๋ฌ๋ค๋ ๊ฒ์
๋๋ค(์ํ๋ ๊ฒฝ์ฐ ์ฌ์ ํ ๊ทธ๋ ๊ฒ ํ ์ ์์ง๋ง , @Mike-EEE๋ฅผ ๋ณด๊ณ ์์ต๋๋ค). ์ข
์์ฑ์ ๊ดํด์๋ ํ์คํ ๋จ๊ธฐ์ ์ผ๋ก(๋จ๊ธฐ์ ์ผ๋ก๋ ๋ช ๊ฐ์), ๊ทธ๋ค์ project.json์ ๋จธ๋ฌผ๊ณ ์ด์ ๊ณผ ๋๊ฐ์ด ์๋ํ ๊ฒ์
๋๋ค. project.json์ด nuget.json์ด ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก ์ด๋ฆ ๋ณ๊ฒฝ์ ์ ์ธํ๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ์ด์ ๋ํ ๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ ์ด๊ฒ์ Microsoft๊ฐ ๋งค์ฐ ํ์ ํ์ง ๋ชปํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๋ํ ์ ํธ๋๋ฅผ ๋ค์ ์ ์์ต๋๋ค.
(๋ด ๊ฐ์ธ์ ์ธ ์ทจํฅ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
VS ์ฌ์ฉ์๊ฐ nuget ์ข ์์ฑ๊ณผ .cs ํ์ผ์ ์ถ๊ฐํ ๋ณ๊ฒฝ ์งํฉ์ ๊ฒํ ํ ๋ csproj ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ๋จํ๊ณ ์ฌ๋์ด ์ฝ์ ์ ์์ต๋๊น? (๋น๊ต๋ฅผ ์ํด .net 4.6 ๋ฐ VS2015์์๋ csproj์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ๋์ด ์ฝ๊ฒ ์ฝ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.)
.cs ํ์ผ์ ๊ฒฝ์ฐ csproj๊ฐ ์ ํ ๋ณ๊ฒฝ๋์ง ์์์ผ ํฉ๋๋ค. ๋๊ฒ ์ข ์์ฑ์ ๊ฒฝ์ฐ - ์ข์ ์ง๋ฌธ์ ๋๋ค. ๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ ๋ค์ ๊ณต์ค์ ๋ ์์ต๋๋ค. ์ค์ ๋ก csproj๊ฐ ๋ณ๊ฒฝ๋์ง ์์์ผ ํ์ง๋ง ํ์ฌ ๊ฐ์ฅ ํฐ ๊ฒฐ์ ์๋ nuget์ด nuget.json์ ์์ด์ผ ํ๋์ง ๋๋ csproj์ ํด๋น ํญ๋ชฉ์ด ์์ด์ผ ํ๋์ง ์ฌ๋ถ์ ๋๋ค. ๋?
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ฃผ์ ์์ ์ ๋๋ค. ํ์ํ ๋๊ตฌ๋ ์ ์์๋ก ์ข์ต๋๋ค. ๋๋ ํ์ฌ ์๋ฅ์์ ์์ํ๊ณ ์๋ค๋ ๋๋ ์์ด ํ ์คํธ ํธ์ง๊ธฐ์ ๋ช ๋ น์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ณํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. .net46์์ VS๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด ๊ฑฐ๋ํ๊ณ ์ฅํฉํ xml ํ์ผ์ ํธ์งํด์ผ ํ๋ฉฐ ๋์ผํ ํ๋ก์ ํธ์์ VS ์ฌ์ฉ์์ ๋น VS ์ฌ์ฉ์๋ฅผ ํผํฉํ๋ ๊ฒ์ ์ ๋ชฝ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ์ ์ ์ผ๋ก ๋์ํ์ง๋ง Microsoft๋ ๊ฐ์๊ธฐ ๊ทธ๊ฒ์ ์ ๋ชฝ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ํฌ๋ก์ค ํ๋ซํผ ๋ ธ๋ ฅ์ ๋๋ฌด ๋ง์ ํฌ์๋ฅผ ํ์ต๋๋ค. "๋๊ตฌ"๋ฅผ ์ฌ์ฉํ๋ฉด VS ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ด ์๋๋ผ .net CLI์ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. .net ์ฝ์ด์ ๊ถ๊ทน์ ์ธ "์ต์ข ๊ฒ์"์ ๋งค์ฐ ๋ฏผ์ฒฉํ๊ณ ๋น ๋ฅด๊ฒ ์์ง์ด๋ ํ๋ซํผ์ด์ง๋ง ๋ช ์ฃผ๋ง๋ค ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐ ์๊ฐ์ ์๋นํ์ง ์์๋ ๋๋ ํ๋ซํผ์ด๋ผ๋ ์ฌ์ค์ ์์ง ๋ง์ญ์์ค. 6์์ dotnet 1.0 ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์ง๊ธ๋ถํฐ ๋ช ๋ ํ์๋ ์ฌ์ ํ ๋น๋ ๋ฐ ์คํ๋ ๊ฒ์ด์ง๋ง, ์ต์ ๋ฒ์ ์ ์ค๋น๊ฐ ๋์์ ๋ "dotnet upgrade" ๋๋ ๊ทธ ๋ผ์ธ์ ๋ฐ๋ผ ์คํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. . RTM์ด ํํธํ๋๋ผ๋ RC2 ํ๋ก์ ํธ๋ ์ค์ ๋ก ๋ค์ด๊ฐ์ ๋์์ RTM์ผ๋ก ๋ณ๊ฒฝํ ๋๊น์ง ์ฌ์ ํ RC2 ๋นํธ๋ฅผ ๋น๋ํ๊ณ ์คํํฉ๋๋ค(global.json์ด๋ ์ด๋๊ฐ์์?).
:์์: ์ด๋ฐ ๊ธ์ ์ฝ์ ๋๋ฉด ๋ง์ดํฌ๋ก์ํํธ๊ฐ ํํํ๋ ์๊ฐ์ด ์์๊น ํ๋ ์๊ฐ์ด ๋ญ๋๋ค. ์ ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ํฌ๋ช ํ๊ณ ์คํ ์์ค์ด๋ฉฐ ์ปค๋ฎค๋ํฐ ์งํฅ์ ์ธ ์์์ฒ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก Microsoft๋ฅผ ์์ ํ ๋ค์ง๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ๋ ธ๋ ฅํ๊ณ ์๋ ์ฌ๋๋ค์ ์ง์ฌ์ผ๋ก ์กด๊ฒฝํ๊ณ ๋๋๋๋ค. ์ด ๋ณํ ๋ค์ ์๋ ์ฌ๋๋ค์ ๊ด์ฌ์ ๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ์ข์ ์ฌ๋๋ค์ ๋๋ค. ๊ทธ๋ค์ ์ง๊ธ ๋ฐ์์ ๋จ๋จํ ๊ณณ ์ฌ์ด์ ์์ด์ผ ํฉ๋๋ค. (๋๋ฅผ ์ฆ๊ฒ๊ฒ ํ๋ฉด์๋) ๋ ๋๋ ๋ ๊ฑด์ค์ ์ธ ์ปค๋ฎค๋ํฐ ๊ฐ์ ์ ๊ทธ๋ค์ ๊ฒฝ์ฐ์ ๋์์ด ๋์ง ์์ต๋๋ค.
ํ์ฌ IDE์ ์๋ ๋ง์ ๋งค์ง ํ๋ก์ ํธ ์์ฑ ๊ธฐ๋ฅ์ ๋ง์ ๋งค์ง csproj ์กฐ์์ ์ํํ๋ ๋ช ๋ น์ค ์ฑ์ผ๋ก ๊ต์ฒดํ๋ ๊ฒ์ ๋์ ์๊ฐ์ด๋ผ๋ ์ ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค. ํ๋ก์ ํธ ์ ์ ํ์ผ์ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ฒ ๋ง๋๋ ๊ฒ์ ํ์์ ๋๋ค. project.json์ ๊ฐ์ฅ ์ข์ ๋ถ๋ถ์ ๋ด๊ฐ ์ฝ๊ณ ์ดํดํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
@shederman MSBuild์ ๋ฌธ์ ๋ ํฌ๊ณ ๋ณต์กํ ์์คํ ์์ ํฌ๊ณ ๋ณต์กํ๋ค๋ ๊ฒ์ ๋๋ค....
๋ํ ๊ตฌ์ถ ํ๊ณผ ํจ๊ป ์ผ์ํ๊ณ ๋๋ ๋ํ ์ ๋์ ์ผ๋ก ์ซ์ดํ์ต๋๋ค (ํ (Ping) ์ฐ๋ฆฌ๋ ๋ชจ๋์ด ๊ฒฝํ์ด ์ผ๋ง๋ ๋์ฐํ ์ด์ผ๊ธฐ ํ becuse ๋ง์ดํฌ-EEE @), ๋๋ ๊ทธ๊ฒ์ ์ป์ ์ ์์ง๋ง, ๋น์ ์ด ์ค๋ช ํ๋ ๊ฒ์ ์์ ํ ๋ค๋ฅธ ์์ต๋๋ค ๋๋ณธ. MSbuild๋ ํฌ๊ณ ๋ณต์กํ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก VS๋ฅผ ํฌ๊ณ ๋ณต์กํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ด ๋ฐ๋ก ๋ณํํ๋ ๊ฒ ์ ๋๋ค.
์ต์ csproj ํ์ผ์ ํจ์ฌ ์์์ผ ํฉ๋๋ค. ์ฆ, "๋๋ฒ๊น "์ด ํฌ๊ฒ ๋จ์ํ๋์ด์ผ ํฉ๋๋ค. ํฌ๋ฌ์คํธ๊ฐ ์๊ฑฐ๋ ๊ฑฐ์ ์์ต๋๋ค. ์ฌ์ ํ ์ํ๋ _build ์์คํ _์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ง์ฅ์์ *.csproj์์ "dotnet build"๋ฅผ ํธ์ถํ๋ .bat ํ์ผ์ ํธ์ถํ๋ฉด ์ค๋์ฒ๋ผ ์ํ๋ ์ถ๋ ฅ์ ์ป์ ์ ์์ต๋๋ค. dotnet cli๊ฐ MSbuild๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ฉด ๊ฑด๋๋ฆด ํ์์กฐ์ฐจ ์์ต๋๋ค.
@neoKushan ๊ฐ์ฌํฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฉ์ด์ง๋ค๋ ๋ง์ ๋ค์ ๋ฆฝ์คํฑ์ด ์๋๋ผ ์ฝ์๋ ๊ฒ์ ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฝ์๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฃผ๊ธฐ๋ฅผ ์ํ์ง ์๋๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ฐ๋ฆฌ ์์ ์๊ฒ ์ฃผ๋๋ก ํ์ญ์์ค. ์ด๋ฏธ ๋ค ์์ต๋๋ค. ๋ฆฌํฉํ ๋ง์ ์ ์งํ๋ ๊ฒฝ์ฐ์ผ ๋ฟ์ ๋๋ค. ๋ด๊ฐ ์ ์ ๋งํ๋ฏ์ด, ๋๋ ์ผ์ ํ ๊ฒ์ด๋ค.
๋จ๊ฒจ๋๊ณ ์ถ์ ๋ง์์ด ์๋ ์ฒซ ๋ฒ์งธ ์ด์ ๋ ์ด๊ฒ์ด MSBuild ํ๋ก์ ํธ์์ ๋๊ท๋ชจ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์์ด ๋ ๊ฒ์ด๋ผ๋ ์ธ์ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ์๋ช ์ ์ง์ ๊ตฌ์ ๊ธฐ์ ์ ์ ์งํ๋ ๊ฒ์ .NET Core์ ์ค๊ณ ๋ชฉํ ์ค ํ๋๊ฐ ์๋๋๋ค . ๊ทธ๋ ์ต๋๊น?
ms ๋น๋์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋๊ฐ ์์ ํ๊ณ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋๊ฐ์
๋๋ค. ํ์ฌ ์ ์ฒด ASPnet ํ๋ก์ ํธ์๋ 1000๊ฐ ์ด์์ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ๊ทธ ์ค ์ผ๋ถ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. SignalR์ ๋ณด์ญ์์ค.
๋ฆด๋ฆฌ์ค๊น์ง ํ ๋ฌ์ด ๋จ์๊ณ ์ด ๋ฒ๊ทธ๋ ์ต์ข
์ํ์ ๊ฑฐ์ ๊ฐ๊น์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๊ทธ๋ค์ ms build๊ฐ ๊ฐ์ ๋ ์ ์๋ค๊ณ ๋งํฉ๋๋ค. MS์ ์ด ๋ชจ๋ ๋ ๊ฑฐ์๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์์ต๋๊น? ์ปค๋ฎค๋ํฐ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ์ ๋ง๋ก ๋ฏฟ์ง ์๋๋ค.
@shederman
๊ทธ๋ฆฌ๊ณ ์ฝ์๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฃผ๊ธฐ๋ฅผ ์ํ์ง ์๋๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ฐ๋ฆฌ ์์ ์๊ฒ ์ฃผ๋๋ก ํ์ญ์์ค.
๊ทธ๋ค์ ๋น์ ์ด ์๋ฌด๊ฒ๋ ํ๋ ๊ฒ์ ๋ง์ง ์์ต๋๋ค. ๊ณ์ํด์ ํฌํฌํ์ญ์์ค. ์๋ฌด๊ฒ๋ ๋น์ ์ ๋ง์ ์
์ด๋ฏธ ๋ค ์์ต๋๋ค. ๋ฆฌํฉํ ๋ง์ ์ ์งํ๋ ๊ฒฝ์ฐ์ผ ๋ฟ์ ๋๋ค. ๋ด๊ฐ ์ ์ ๋งํ๋ฏ์ด, ๋๋ ์ผ์ ํ ๊ฒ์ด๋ค.
๊ทธ๋ผ ํด? ๋ค์ ๋งํ์ง๋ง, ์๋ฌด๊ฒ๋ ๋น์ ์ ๋ง์ ์ ์์ต๋๋ค.
๋จ๊ฒจ๋๊ณ ์ถ์ ๋ง์์ด ์๋ ์ฒซ ๋ฒ์งธ ์ด์ ๋ ์ด๊ฒ์ด MSBuild ํ๋ก์ ํธ์์ ๋๊ท๋ชจ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์์ด ๋ ๊ฒ์ด๋ผ๋ ์ธ์ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ค์ด ์ ์ ๊ฒฝ์ ์ฐ๊ฒ ์ต๋๊น? MSbuild ๋๋ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ๋ฉด Microsoft์ ์ด๋ค ์ฐจ์ด๊ฐ ์์ต๋๊น?
๊ฐ์ฅ ํฐ ์ด์ ๋ ASP.net ์ฝ์ด์ ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ asp.net ์ฝ์ด์๋ง ์ ํฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. project.json์ ์ ํฉํ์ง ์์ ์๋ฐฑ ๊ฐ์ง์ ๋ค๋ฅธ ํ๋ก์ ํธ ์ ํ์ด ์์ต๋๋ค. project.json์ ์์ฒด ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฌ์ค์ ์ ๊ฒฝ์ฐ์ง ๋ง์ญ์์ค. ์ฐ๋ฆฌ๋ ๋ถ๋ช ํ ์์ด๋ฒ๋ ธ์ต๋๋ค. ์ฃผ์์ด ๋ถ์กฑํ์ฌ ๋ด ์ ์ ๋๋ฌผ์ด ์ง์ฆ๋ฉ๋๋ค(์๋์. XML์ ๋์์ด ๋์ง ์์ต๋๋ค).
์ฃ์กํฉ๋๋ค. ์๋ช ์ ์ง์ ๊ตฌ์ ๊ธฐ์ ์ ์ ์งํ๋ ๊ฒ์ .NET Core์ ์ค๊ณ ๋ชฉํ ์ค ํ๋๊ฐ ์๋๋๋ค. ๊ทธ๋ ์ต๋๊น?
์๋์, ํ์ง๋ง ์ฌ๋๋ค์ด ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ .net ์ฝ์ด๋ก ์ด์ํ๋๋ก ๋๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค. ๊ฒ๋ค๊ฐ, ์ฐ๋ฆฌ๋ ์์ ํ ๋ฐ์คํฌํฑ ๋ฒ์ ์ด ์๋ .net ์ฝ์ด ๋ฒ์ ์ MSBuild์ ๋ํด ์ด์ผ๊ธฐ ํ๊ณ ์์ต๋๋ค .
๋น์ ์ ์ ์ผํ ๋ฌธ์ ๋ ๊ทธ๋ค์ด ๊ฐํ ๊ทธ๊ฒ์ MSBuild๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ด XML์ด ๋์์ง๋ง "CoreBuild"๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ก์ด ํ๋ก์ ํธ ์คํ์ผ์ ์๊ฐํด๋๋ค๋ฉด, ๋น์ ์ ๋ ํ๋ช ํ์ง ๋ชปํ์ ๊ฒ์ด๊ณ ๊ณ์ ์งํํด์ผ ํ๋ ๊ฒ์ "๋๋ XML์ ์ซ์ดํฉ๋๋ค!"๋ฟ์ ๋๋ค.
๋น์ ์ ๋ง์ดํฌ๋ก์ํํธ์ ํ๊ฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ณ , ๋น์ ์ ์ด๋ฏธ ๊ทธ๊ฒ์ ์ป์์ต๋๋ค.
์ฌ์ค์ด ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ ํฌํฌ ํ๊ณ ์ถ์ง ์๊ณ ๋ฉ์ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์งํ๊ณ ์ถ์ต๋๋ค. ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ฌด๋ ์์ ํ ์๋ก์ด .NET SDK๋ฅผ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ต๋๋ค. ๋๋ ๋๊ตฌ์ ๊ทธ๊ฒ์ ์ํ๊ณ , ์, ๋๋ ๊ทธ๋ค์ ๋ฌต์ธ์ด ํ์ํฉ๋๋ค.
๋น์ ์ ์ ์ผํ ๋ฌธ์ ๋ ๊ทธ๋ค์ด ๊ฐํ ๊ทธ๊ฒ์ MSBuild๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋๋ค.
์๋์, ๊ทธ๋ค์ MSBuild๋ฅผ _์ฌ์ฉ_ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ฌ์ํ์ง๋ง ์ค์ํ ์ฐจ์ด. ์ project.json ๋น๋ ์์คํ ์ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ MSBuild๋ผ๊ณ ํ๋ฉด ํ๋ณตํ๊ฒ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
๋น์ ์ ๋ ํ๋ช ํ์ง ์์ ๊ฒ์ด๊ณ ๋น์ ์ "๋๋ XML์ ์ซ์ดํฉ๋๋ค!"๋ผ๊ณ ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์๋ง๋ ๐
์ด์จ๋ ์์ ๊ทธ๋ฆฌ๋ฉฐ ๋๊ณ ์์ต๋๋ค.
์ทจ์นจ.
์คํ ๋์ ์ ๋งก๊ธฐ๋ผ๊ณ ํฉ๋๋ค. ์๋ฌด๋ ์ค๋ํ์ง ์์ต๋๋ค. ๋๋ ์น MSBuild ์ธก์ ์ดํดํ๋ค๊ณ ํ์ ํ์ง๋ง ๊ทธ๊ฒ์ ๋์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์น MSBuild ์ธก์ด ๋น MSBuild ์ธก์ ์ดํดํ๋ค๊ณ ํ์ ํ์ง๋ง ๋์ํ์ง๋ ์์ต๋๋ค.
๋ด ๋ง์ ์ฐ๋ฆฌ๊ฐ ๋ ๋ค ๊ฐ์ง ์ ์๋ค๋ ๊ฒ๋ฟ์ ๋๋ค. MS ํ์ ์ถ๊ฐ ๋ ธ๋ ฅ์ด ์ ํ(๋๋ ๊ฑฐ์) ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์ ํ๋ก๋์ ์ฌ์ฉ์ ๋๋ถ์ฌ ์์์ ์ต์ ์ด ๊ฐ๋ผ์๊ฑฐ๋ ํค์์น๋๋ก ํ์ญ์์ค.
@neoKushan ์ ์ง๋ฌธ์ ๋ฐ๋ผ:
๋ญ๊ฐ ๋จ์์ด?
๋๋ ์ค์ ๋ก ๋ด๊ฐ ์๊ฐํ๊ธฐ์ ํ๋ฅญํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ก์ ํธ ํ์ผ์ ๋ง๋ ๋ค๊ณ ์๊ฐํ๋ ์์์ ์ค๋ช ํ "์ ์กฐ"๋ฅผ ์ค์ฌ์ผ๋ก ๋ด ์๋ต์ ๊ตฌ์ฑํ๊ณ ์ถ์ต๋๋ค.
์์ @neoKushan ์ ์ง์ ์ ํด๊ฒฐ๋ ๊ฒ์์ ์๋ฏธํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. MSFT์ ๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ ๋ง
Guid ProjectType์ ์ ๊ฑฐํ๋ ๊ฒ์ด ํด๊ฒฐํด์ผ ํ ์ฃผ์ ํญ๋ชฉ ์ค ํ๋๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ์์ ๋ถ๋ก์ ์ง์งํฉ๋๋ค. ๊ฐ๋จํ ํ๋ก์ ํธ(์: Angular์ ASP.Net Hello World)์ ๊ฒฝ์ฐ ๋ฉ๋ชจ์ฅ์์ ์ ์ฒด๋ฅผ ์์ผ๋ก ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ์ด๋ ค์ด(ํ์ ๋ถ๊ฐ๋ฅํ) ์๊ตฌ ์ฌํญ์ ๋๋ค. Yeoman/VS/similar๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ๋์ด ํธ์งํ ์ ์๋ ํ๋ก์ ํธ ํ์ผ์ ์ ์ํ๋ ๋ฐ ์คํจํ์ต๋๋ค.
์ด๋ฏธ ์๋ ์ค, MSBuild์์
First-Level์ ์์ ๋ณ๊ฒฝ(์ง๊ณ ์์
์ด๊ฒ์ MSBuild์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ๋๋ค. ํ์ผ์ ์ ์ ์ผ๋ก ์ฝ๋ ๊ฒ์ ์ค์ ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์๊ธฐ์ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. _environment variable_ ์ง์ ๊ฒฝ๋ก์์ ์ค๋ .targets ํ์ผ๊ณผ ํ๊ฒฝ ๋ณ์๊ฐ ์ด๋ฒคํธ ์ง์๋๋ค๋ ์ฌ์ค๋ถํฐ ์กฐ๊ฑด๋ถ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ์ ์ด๋ฅด๊ธฐ๊น์ง ๋งค์ฐ ๋์ ์์ค์ ๋ณต์ก์ฑ์ ํฌ์ํ๋ฉด์ ํจ๊ณผ์ ์ผ๋ก Turing Complete ํ๊ฒฝ์ ์ป์ ์ ์์ต๋๋ค. , ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ํ ๋๊ตฌ ๋ฅ๋ ฅ. ๋๋ VS์ MSBuild์ ์ด์ ํ ํตํฉ์ด ๊ทธ๋ฌํ ์ฃผ๋ณ์ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํ๋ ์ด๋ ค์์ ๊ฒฐ๊ณผ๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ด๊ฒ์ ์ธ๊ฐ์ ๊ฐ๋ ์ฑ/ํธ์ง ๊ฐ๋ฅ์ฑ ๋ฌธ์ ์ ์ ์ฌํฉ๋๋ค.
MSBuild๋ ๊ธฐ์ ์ ์ผ๋ก ์์ผ๋์นด๋ ํ์์ผ๋ก ์ด๋ฅผ ์ง์ํฉ๋๋ค. ์์ผ๋ ์นด๋์ ๋ํ VS ์ง์์ ์ฌ์ฐ๋ณด๋ค ๋์ฉ๋๋ค. ๊ทธ๊ฒ์ ์ ๊ทน์ ์ผ๋ก ์ผํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ์์ ๋ด์ฉ์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๋ ์ ์ ๊ธฐ๊บผ์ด ๋ฐ์๋ค์ ๋๋ค. ํ์ง๋ง _migrate_์ ๋ํ _์ ์_์ ํญ๋ชฉ์ด์ด์ผ ํฉ๋๋ค. ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ.
MSBuild์ ๋ฌธ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ๋ฌธ์, ํนํ MSBuild์ VS _flavor_์ ๋ํ ๋ฌธ์๋ ์๋นํ ํ์ํฉ๋๋ค. ๋๋ ์ข ์ข ์ ๋ค๋ฅธ ๊ฒ๋ค์ด ๊ทธ๋ค์ด ์ํ ๊ทธ๋ฃน์ ์๋์ง ์ด๋ฆฌ๋ฅ์ ํ๊ณ VS "๋์"์ด ๋์์ด๋์ง ์์ต๋๋ค.
์๋ฒฝํ ์๋ Bond NuGet ํจํค์ง์ ๋๋ค. ๋์คํฌ์ BondInclude ํด๋๊ฐ ์๋ ๊ฒฝ์ฐ(csproj์์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ) ๋น๋๊ฐ ๊ฒฐ๊ณผ ์ด์ ๋ธ๋ฆฌ์ Bond ์ ํ์ ์ค์ ๋ก ์์ฑํ์ง ๋ชปํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ์๊ณ ์์ต๋๊น? (์ค๋ฅ๋ ๋ฐ์ํ์ง ์์). ๊ทธ๋ฐ ๋ค์ ํด๋น ์ด๋ฆ์ผ๋ก ๋น ํด๋๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋ก๋ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
(์, ์๊ณ ์์ต๋๋ค. ๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํ ์์ ์ ๋๋ค.)
MSBuild์ ์๋ฌด ๊ด๋ จ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ด ํ๋ก์ ํธ๋ฅผ ์ ์ํ๊ณ ๋๊ฒ์ ํตํด ํจํค์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ต๋๋ค. ์ด ํน์ ๋น๋ ์์คํ ์ ๊ฐ์ ๋ก ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํนํ ๋ด๊ฐ ์ํ๋ ๊ฒ์ด ํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ ๊ฒ๋ฟ์ด๋ผ๋ฉด?
๋น๋ ์ ์ ํ์ผ์ ํ๋ก์ ํธ ํ์ผ ํ์์ด ์๋๋๋ค. VS๊ฐ ์๋ํ๋๋ก ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ (๋ค์) ๊ณ์ ์ฌ์ฉํ๊ธฐ์ ์ข์ ์ด์ ๊ฐ ์๋๋๋ค. ๋๋ ๋จ์ง ํ๋ก์ ํธ ์์ฒด๋ฅผ ๋ํ๋ด๋ ์ค์ ํ์ผ๊ณผ ๊ทธ๊ฒ์ด ์์ฑํ๋ ์ํฐํฉํธ์ ๋ํ ์ ๋ณด๋ฅผ ์ํฉ๋๋ค(์ด๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ด ์๋). ์ฌ๊ธฐ์์๋ "๋ช ๋ น"์ ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์ project.json๋ ์คํจํฉ๋๋ค. ๊ทธ๊ฒ๋ค์ด ์กด์ฌํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ถ๋ ฅ ์ ํ๊ณผ ์ฐพ์ ์ ์๋ ์์น๋ฅผ ์ ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ด ์ ์ฒด ์ค๋ ๋๋ฅผ ์ฝ์๊ณ project.json
๋ project.csproj
๋ํ ํ ๋ก ์์ ์ ์๊ฒ ๋์ ๋๋ ํ ๊ฐ์ง๋ ํด๋น ํ์ผ ์ด๋ฆ ์ค ํ๋๋ง ์ ์ฒด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ์์ก๋ค๋ ๊ฒ์
๋๋ค. F#์์ ASP.NET ๊ฐ๋ฐ์ ์ ํธํฉ๋๋ค. ASP.NET Core์์๋ ๊ฐ๋ฅํฉ๋๊น? ์ด ์์ ์์ ๋๋ ๊ฐ์ฅ ํฌ๋ฏธํ ์๊ฐ์ด ์์ง๋ง ๊ทธ๋ ์ง ์๋ค๋ ๋๋์ ๋ฐ์ต๋๋ค. ์ฌ๋๋ค์ด csproj
๋ฅผ csproj, fsproj, vbproj
์ ์ฝ์ด๋ก ์ฌ์ฉํ๋์ง ์๋๋ฉด ์ค์ ๋ก csproj
๋ง์ ์๋ฏธํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ ๋ฐ์ดํธ: F# ์ฌ๋๋ค์ด CoreCLR ์ง์์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ์ค์ ETA๋ ์์ง ์์ต๋๋ค. ์ ์์ ์ ์ง๊ธ ๊ฒฐ์ ๋ ํ๋ก์ ํธ ์์คํ ์ด ๋ฌด์์ด๋ ์ง๊ธ ๋น์ฅ์ ์ฌ๋๋ค์ ๊ด์ฌ์ ๋์ง ๋ชปํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ XML๋ณด๋ค JSON์ ์ ํธํ๋ ๋งํผ project.json์ด ๋๋ฅผ C#์ ๊ณ ์ ์ํค๋ ค๋ ๊ฒฝ์ฐ(๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ์ ํ์ผ ์์๊ฐ F#์์ ๊ฒฐ์ ์ ์ผ๋ก ์ค์ํจ) ๋๋ ๊ทธ๊ฒ์ ๋์ํ์ง ์์ต๋๋ค.
์ง๊ธ์ FAKE์ Paket์ผ๋ก ๋์์จ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ ์ฒ์๋ถํฐ .NET์ผ๋ก ์์ ํ๊ณ ์์ผ๋ฉฐ MSBuild์์ ์ฃผ๋ชฉํ ๋งํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์ด ์์ต๋๋ค. ๊ทธ ์ฃผ๋ ์ด์ ๋ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ปดํ์ผ ์ด์ธ์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ด๊ฐ MSBuild์ ๋ํด ์ซ์ดํ๋ ๊ฒ์ ๋ํด ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ ๋๋ค. ๋๊ตฌ๋ ์๋ฃจ์ ์ปดํ์ผ ์ด์ธ์ ์ฉ๋๋ก MSBuild๋ฅผ ์ฌ์ฉํ๋๋ก ๊ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฃจ์ ์ ์ปดํ์ผํ ์ ์๋ค๋ ๊ฒ์ ๊ฝค ์ ์ฉํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. BTW๋ "dotnet cli"์๋ ์์ง ์กด์ฌํ์ง ์์ต๋๋ค(์ง๊ธ ๋ฐ๋ก ํ๋ก์ ํธ๋ฅผ ์๋์ผ๋ก ๋ฐ๋ณตํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์์ ํด ์ฃผ์ธ์).
์ค์ ๋น๋ ์์คํ ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. Nant๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด Nant๋ฅผ ๊ณ์ ์ฌ์ฉํ์ญ์์ค. psake๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ psake๋ฅผ ๊ณ์ ์ฌ์ฉํ์ญ์์ค. powershell ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ณ์ ์ฌ์ฉํ์ญ์์ค. ๋ฑ! ์๋ง๋ "dotnet build" ๋ถ๋ถ๋ง MSBuild์ ๋ํ ํธ์ถ๋ก ๋์ฒดํด์ผ ํฉ๋๋ค. (dotnet build๊ฐ MSBuild๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ์๋ ํ์ํ์ง ์์ ์๋ ์์)
์ด๊ฒ์ด MSBuild๊ฐ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์๋นํ ์ค์ํ์ง ์๊ฒ ๋ง๋ ๋ค๊ณ ์ ๋ ์ฃผ์ฅํ๊ณ ์ถ์ต๋๋ค. ์ง๋ 10๋ ๋์ ๊ทธ๋ ๊ฒ ๋ณด์์๊ณ ์์ผ๋ก๋ ๊ทธ๋ ๊ฒ ๋ณผ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ๋ฌผ๋ก ์ด ์ค๋ ๋์ ์์ ๋ถ๋ถ์์ ์ด๋ฏธ ๋งํ๋ฏ์ด ์ฐ๋ฆฌ์๊ฒ ํ์คํ ํ์ํ ๊ฒ์ csproj๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด project.json ๋ฐ Visual Studio์ _๊ธฐ๋ฅ_ ์ค ์ผ๋ถ์ ๋๋ค. ๊ทธ๊ฒ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
@jtmueller F#(๋๋ ๊ทธ๋ ๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ VB.net)์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ _๊ธฐ์ ์ _ ์ด์ ๋ ์์ต๋๋ค. MSBuild ํ๋ก์ ํธ ํ์ผ๋ก์ ์ ํ์ด ์ด๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ ๋ฐ ๋์์ด ๋๋ค๋ฉด ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค. DNX๋ ๊ฒฐ์ฝ ๋ง์กฑํ์ง ์์์ง๋ง CoreCLR์ ํ์คํ F#์ ์ง์ํฉ๋๋ค. F# come RTM์ ์ฌ์ฉํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ํ์คํ ํ์ดํ๋ผ์ธ์ ์์ต๋๋ค.
@jtmueller project.json์ ์ข ์์ฑ ๋งค๋ํ์คํธ์ ์ฌ์ฉ์ ์ง์ ๋ช ๋ น์ด ํฌํจ๋ ๊ฑฐ์ ํ๋ก์ ํธ ์ ์์ ๋๋ค. ํน์ ์ธ์ด์ ๊ด๋ จ๋ ๊ฒ์ ์ ํ ์์ต๋๋ค.
๋ด ๊ฟ์ ๋น๋ ์์คํ (MSBuild๋ฅผ ์์ ํ ๋์ฒดํ๊ธฐ ์ํด)์ Roslyn์ ์ฌ์ฉํ์ฌ ์์ ๊ณผ ๋์์ ํ์ ํ๋ฏ๋ก F#์ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค(๋๋ C# ๋๋ VB.NET, Roslyn์ด ์ง์ํ๋ ๋ชจ๋ ๊ฒ)๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์์ง ์๋ฌด๋ ์ ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ฅผ MSBuild์ ๋ค์ ๊ฐ๋๋ ๊ฒ์ ๋งค์ฐ ์ค๋ซ๋์ ๊ทธ ๋ฌธ์ ๋ซ์ ๊ฒ์ด ๊ฑฐ์ ํ์คํฉ๋๋ค.
ํด์์ ์ทจํ๊ณ MSBuild๋ฅผ "์ ์ฅ"ํ๊ธฐ ์ํด ์ํํด์ผ ํ๋ ์์ ์ ๋ํ ๋์ ์ ๋ํด ์กฐ๊ธ ์ด์ผ๊ธฐํ์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ MSBuild๋ฅผ ์๋นํ ๋ค๋ฅธ ๋น๋ ์์คํ ์ผ๋ก ๋ฐ๊ฟ ์ ์๊ฑฐ๋ ๋ฐ๊ฟ์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ด๋ ์ถ๋ก ๊ธฐ๋ฐ์ XML ์ ์ ๋น๋ ์์คํ ์ด๋ฉฐ, ์ด๋ ๋งค์ฐ ๋ง์ ์ฌ๋๋ค์ ์๋๋ฆฌ์ค, ํนํ ์ผ๋ถ ๋ ๋ณต์กํ ์๋๋ฆฌ์ค์ ์ ํฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ MSBuild์ ์จ๋ฆํ ์ ์๋ ์ ๋ด ๋น๋ ๋ง์คํฐ๊ฐ ์๋ ๊ฒ์ ์๋๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ MSBuild์ ๋ณต์ก์ฑ์ด ๊ฐ์ ธ๋ค์ฃผ๋ ํ์ด ํ์ํ ๊ฒ์ ์๋๋๋ค. ๊ทธ ๋ณต์ก์ฑ ์ด ํ์ํ ์ฌ๋๋ค ์ค ์ผ๋ถ๋ MSBuild๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ดํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ด ํ ์ค ํ๋์์ ๋ชจ๋ ์ฌ์ฉ์ ์ ์ ๋น๋ ๋ ผ๋ฆฌ๋ ๋น๋ ์ ๋ฐ ํ ๋จ๊ณ์์ ์ํ๋๋ฉฐ Exec์ ๊ธฐ๋ณธ์ ์ผ๋ก Powershell์ ํฌ๊ฒฉ๋ฉ๋๋ค. MSBuild์์ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ํ ์ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ์๋ ์๋ง๋ _ํด์ผ ํฉ๋๋ค_. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ MSBuild์์ ๊ทธ๊ฒ์ ํ๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
1๋จ๊ณ ๋ ํ์คํ ๋น๋ ์์คํ ์์ ํ๋ก์ ํธ ์ ์๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋์๊ฒ ๊ทธ๊ฒ์ ์์ฒญ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ ์ ์์์ ์ข ์์ฑ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋ํด ๋ ผ์ํ ์ ์์ง๋ง ๊ทธ๊ฒ์ด ํ์๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
2๋จ๊ณ ๋ ๋น๋ ์์คํ
์ด ํ์ํ๋ค๋ ๊ฒ์
๋๋ค. ๋งค์ฐ ๊ฐ๋จํ ์ฌ์ฉ ์ฌ๋ก์ ๋งค์ฐ ๋ณต์กํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋์ ๋น๋ ์์คํ
์ด _๋ ๋ค_๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค๋ ๊ท์น์ ์์ต๋๋ค. ๋ด ์๊ฐ์ ๊ฐ์ฅ ์๋ฏธ ์๋ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ ์ ์๋ฅผ ๋น๋ํ๋ ๊ฐ๋จํ๊ณ ๊ฐ๋ฒผ์ด ๋น๋ ์์คํ
์ ๊ฐ๋ ๊ฒ์
๋๋ค. restore
, build
, test
๋ฐ pack
ํฉ๋๋ค.
๋๋ ์ ์๋ก ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ, ์ ํ ํ๋ก์ ํธ ์ ์๋ฅผ _without_ ์ผํ ์์์ ๋๊น์ง ์ฐ๋ฆฌ๋ ๋ํ ์์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํ๋ค ์๊ฐํฉ๋๋ค. ๋ถ๋ช ํ ๊ทธ๋ฌํ ์ํฉ์ ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ ๊ธฐ๋ณธ ์ข ์์ฑ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ฐ๋ฅํ ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์์ ๊ฐ ์์๋ฅผ ๋ณด๊ณ "์ด์ ๋ํด ์ง๋ฅ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ ์ถ๋ก ํ ์ ์์ต๋๊น?"๋ผ๊ณ ๋ฌผ์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ ์ฌ๋ก์ 80%์๋ ์ถฉ๋ถํ์ง๋ง ๋ค๋ฅธ 20%์๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๋ ๋ง์ ๊ฒ์ด ํ์ํฉ๋๋ค. (์ฃผ์: ์ฌ์ฉ ์ฌ๋ก ๋น์จ์ ๋ํ ์๊ฒฌ์ ๋ค๋ฅผ ์ ์์ต๋๋ค).
์ธ ๋ฒ์งธ ๋จ๊ณ ๋ ํด๋น ๋น๋ ์์คํ ์ ๋งค์ฐ ๊ฐ๋จํ ํํ์ ํ์ฅ์ฑ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๋น๋๋ฅผ ์คํํ๊ฑฐ๋ ์ธ๋ถ ๋น๋ ์์คํ ์ ์คํํ ์ ์์ต๋๋ค. ์ธ๋ถ ๋น๋ ์์คํ ์ MSBuild, ์คํฌ๋ฆฝํธ ๋๋ ๊ธฐํ ๋น๋ ์์คํ ์ผ ์ ์์ต๋๋ค.
์ ๋น๋ ํ๋ก์ธ์ค๊ฐ MSBuild์ ์ ์ฉํ ์ ์๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ง๋ง (IMO) MSBuild์ ๊ฐ์ด ๋ก๊ณ ๋ถ์์ฐ์ค๋ฝ๊ณ ๋ถํ๋ ค์ง ๊ฒ์ด ํฅํ ๋ชจ๋ ๋น๋์ ๊ธฐ์ด๊ฐ ๋์ด์ผ ํ๋ค๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค.
์น ํ๋ ์์ํฌ์ ๊ฐ์ ๊ฒ๋ค์ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ๋ MS ํ์ด ๋ฏธ์น ๋ฏ์ด ๋ฐ๋ณตํ๋ ๊ฒ์ ๋ด ๋๋ค. ์๋ํ๋ฉด ๊ทธ๋ค์๊ฒ๋ ๊ฒฝ์์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ธ์๊ฐ ๋ชฉ์ ์กธ๋ผ ์จ์ ์ฌ๋ ๊ฒ์ ๊ฑฑ์ ํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ ํํ๋ ๊ฒ์ _์ฝ์ต๋๋ค_. ๊ทธ๋ฆฌ๊ณ MVC/WebAPI๋ฅผ ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
์ ์ฒด .NET ๋๊ตฌ์ ํฌํจ๋ MSBuild๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ฒฝ์์ ์ด๋์ ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ MSBuild Github ๋ณด๋์์ ๊ทธ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ซํ ์ ์์ ๊ฒํ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ง๊ธ ์ด๋ฌํ "์ฌ๋ฆฌ๋ฐ" ๋ณ๊ฒฝ์ ๋ํด ์ด์ผ๊ธฐํ๋ ์ ์ผํ ์ด์ ๋ ์ฌ๋๋ค์ด project.json์์ MSBuild๋ก ์ด๋ํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
MSBuild๊ฐ ์ฒ์๋ถํฐ .NET Core์ ๊ตฌ์์ก๋ค๋ฉด ์ง๊ธ MSBuild ํ์์ ๋ณด๊ณ ์๋ ์์ง์ ์ค _์๋ฌด๋_ ๋ณผ ์ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ค์ ๊ฐํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์ผ๋จ ๊ฒฝ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ ? ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊น์? ๊ฒฝ์์ด ์๋ ์๋๋ฆฌ์ค์์ ํญ์ ์ผ์ด๋๋ ์ผ๊ณผ ์ง๊ธ๊น์ง ๋ช ๋ ๋์ ์ผ์ด๋ ์ผ: ๋๊ท๋ชจ ํ๋ถ์ ๋ง์ ์ ์์ ๋งํผ๋ง ๊ฐ์ ๋์์ง๋ง ํน๋ณํ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ์์ต๋๋ค.
์ฌ๋๋ค์ ์ด๋ป๊ฒ MSBuild๋ฅผ "์ ์ฅ"ํ ์ ์๋ค๊ณ ์๊ฐํ๋์ง ๋ฌผ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ค์ ๊ฒฝ์๊ณผ ์ ํ์ ๊ฐ๋ฐฉํ๋ ๊ฒ์ด ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ๊ฑฐ์ ๊ฐ๋ ฅํ ๊ฒ์ด ํ์ํ์ง ์์ ๊ฐ๋ฐ์(์, ๊ฐ๋ ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค)๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์ด๋ฅผ ๋ฒ์ ํํ๋ก ๊ฐ์ ํ๋ฉด ์ด์ ๋ํ ๋ถ๋ ธ๊ฐ ๋์ฑ ์ปค์ง ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ์ด๋ค ํ๋ ์์ํฌ์ ์ฑ๊ณต์ ์ํ ๋น๋ฒ๋ ์๋๋๋ค.
์ฐ๋ฆฌ ๋ชจ๋ ๋ .NET์ด ์ฑ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ ๋ .NET์ _์ฌ๋_ํฉ๋๋ค. ์ ๋ C#์ด ํ์กดํ๋ ์ต๊ณ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ๋์ด๋ฉฐ Scala - The Good Partsโข๋ก์ ๋๋ฆฐ ์ ํ์ ์ฆ๊ฒผ์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ .NET Core๋ก ์๋กญ๊ฒ ์์ํ๊ณ ๊ตฌ์ .NET์ ์ต์
์ ๋ถ๋ถ ์ค ํ๋(IMO)์ ์๋ฐํจ์ผ๋ก์จ ๊ทธ๊ฒ์ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์, MSBuild, ํ์ง๋ง ์๋์ค, ๊ทธ๊ฒ์ ์๋ฐ๋์ด ์์ง ์์ต๋๋ค.
๊ผญ ์งํค๋, ์์คํ ์ ํต์ฌ์ ๋ด์ฅ๋ ์ ๋ฉด๊ณผ ์ค์์ ์๋๋๋ค.
๋ด ๊ฟ์ ๋น๋ ์์คํ (MSBuild๋ฅผ ์์ ํ ๋์ฒดํ๊ธฐ ์ํด)์ Roslyn์ ์ฌ์ฉํ์ฌ ์์ ๊ณผ ๋์์ ํ์ ํ๋ฏ๋ก F#์ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค(๋๋ C# ๋๋ VB.NET, Roslyn์ด ์ง์ํ๋ ๋ชจ๋ ๊ฒ)๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
์ผ์์์์์์!!! ๊ทธ๋ฌ๊ณ ๋ณด๋... ์ฌ๊ธฐ๊ฐ ์ด๋ฐ ๋ํ๋ฅผ ๋๋๊ธฐ์ ์ ํฉํ ์ฅ์์ ๋๊น? ์ฐ๋ฆฌ๋ Roslyn๊ณผ MSBuild ์ ์ฅ์๋ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ทธ๋ค๋ ์ฐธ์ฌํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. MSBuild ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์๋ํ๊ณ ์๋ ๊ฒ ๊ฐ์ง๋ง (๋ง์ํ์ ๋๋ก) ๋งค์ฐ ์๊ฒฉํ๊ณ ์ ์ฐํ์ง ์์ต๋๋ค. ์ด ์ค๋ ๋๊ฐ ์์ฑํ ๊ด์ฌ์ ์ข์ํ๋ ์ฌ๋์ด ๋ ๋ง์์ง๋ฉด ๊ฐํ์ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ธ ๋ฒ์งธ ๋จ๊ณ๋ ํด๋น ๋น๋ ์์คํ ์ ๋งค์ฐ ๊ฐ๋จํ ํํ์ ํ์ฅ์ฑ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค.
๊ณต๊ธ์ ๊ธฐ๋ฐ ๋น๋ ์์คํ /๋ชจ๋ธ?! ์ฒ์ฌ! ์ด ๋ฉ์์ง๋ฅผ ์น์ธํฉ๋๋ค.
Btw, ์ํ๋ ๊ฒ์ ์ป๊ณ ์์ ์ ๋น๋ ์์คํ ์ ์ก์ธ์คํ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์... BERSERKER BUILD๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ฅผ ์ ์ํฉ๋๋ค! "Berzerker @shederman"์ ์ด๋ฆ์ ๋ฐ์ ๋ช ๋ช ๋์์ต๋๋ค... ๋น์ ์ ์ํ ์๋ก์ด ๋ณ๋ช ์ ๋๋ค. :์๋ค:
@Mike-EEE ๋๋ฌด ํฅ๋ถํ์ง ๋ง์ธ์. ๋๋ _์์ง_ ๊ทธ ๋ชจ๋ ๊ฒ๋งํผ ๊ณผ๊ฐํ ๊ฒ์ ๊ฒฐ์ฝ ์ ์ํ์ง ์์ต๋๋ค.
์ง๊ธ์ 3๋จ๊ณ์ ๋ํ MSBuild ์ง์๊ณผ ํจ๊ป 1๋จ๊ณ์ 2๋จ๊ณ์ฌ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ข ๋ฅ์ ๊ฐ๋ฅ์ฑ์ ์ฐ๋ฆฌ๊ฐ project.json์ ์ป์์ ๋ ์งํํ๊ณ ์์์ง๋ง ๋น๋ ๊ณต๊ธ์๋ฅผ ๋ ์ฝ๊ฒ ๊ต์ฒดํ ์ ์๋๋ก ํ๋ก์ ํธ๋ฅผ ๋น๋์์ ๋ถ๋ฆฌํ์ต๋๋ค. ๋ด ์๊ฐ์ MSBuild๋ฅผ ๋ฃจํธ๋ก ๋ค์ ๊ฐ์ ธ์ค๋ฉด ์ด๋ฌํ ๊ฐ๋ฅ์ฑ์ด ๋ซํ๋๋ค. ๋๋ ์ต์ํ ๊ฒฌ์ธ๋ ฅ์ ์ป์ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ์ ์ต๋๋ค.
ํ์ฌ ์ฌ์ฉ์ ์ ์ ๋น๋๋ ๋ฃจํธ ์์คํ ์ด _is_ ๊ฐ๋ ฅํ๊ธฐ ๋๋ฌธ์ ์ฑํ๋์ง ์์ต๋๋ค. MS ๋น๋ ์์คํ ์ด ์ค์ ๋ก ํ์ํ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ ๋(๊ณ ํต์ ๋ฌด์ํ๊ณ ) ๋น MS ๋น๋ ์์คํ ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๊ณ ์ฌ๋๋ค์ ์ค๋ํ๋ ๊ฒ์ ์ด๋ ค์ด ๋ํ์ ๋๋ค.
์ด ๋ํ๋ฅผ ๋๋๊ธฐ์ ์ ํฉํ ์ฅ์์ ๋๊น?
๋๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค. ๋ํ, ์์ง ๋๊ฐ ๋์๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ์ด๋ค ๋ฐฉํฅ์ด ๊ฐ๋ฅํ์ง ๋ณด๊ธฐ ์ ์ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํด์ผ ํฉ๋๋ค.
๋ฒ์์ปค ๋น๋! "Berzerker @shederman"์ ์ด๋ฆ์ ๋ฐ์ ๋ช ๋ช ๋์์ต๋๋ค... ๋น์ ์ ์ํ ์๋ก์ด ๋ณ๋ช ์ ๋๋ค. :์๋ค:
์ด๋ค ๋๋์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ๐
๋ฒ์์ปค๊ฐ ๋๋ ค๊ณ ํ์ง ์์ต๋๋ค. ์ ๋ ์ฐ๋ฆฌ๊ฐ ์์ผ๋ก _ํ๊ณ ์์์ ๋_ ๋ค๋ก ์์ง์ด๊ณ ์ถ์ง ์์ ๋ฟ์ ๋๋ค.
์ฌ๋ฌ๋ถ, ์๋ง๋ ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช
ํ๋ ๋์ ( nuget.json
๋๋ ๋ฌด์์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฐ์) ๋๋ถ๋ถ์ ์ข
์์ฑ ๊ด๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ์กด์ ์ปค๋ฎค๋ํฐ ์ค์ฌ ์๋ฃจ์
์ธ Paket ์ ์ฌ์ฉํฉ์๋ค.
packages.config
์์ ๋ง์ด๊ทธ๋ ์ด์
๊ฒฝ๋ก๊ฐ ๋งค์ฐ ์ข์ต๋๋ค.@Krzysztof-Cieslak์ Microsoft๊ฐ MSbuild ํ๋ก์ ํธ ์ ์๋ฅผ ์ถ์งํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ MSBuild์ ๋ง์ ํฌ์๋ฅผ ํ ์ฌ๋๋ค์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํจ์์ ๊ธฐ์ตํฉ๋๋ค. ๊ทธ๋ฐ ์ ์์ Paket์ project.json(๋๋ project.yaml ๋๋ project.cs ๋ฑ)๋ณด๋ค ๋ซ์ง ์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ํ๋ ๋น๋ ์์คํ ์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ์์ง ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก "dotnet build"๋ ํ๋ก์ ํธ ์ ์์ ์ต์ข ํ์์ ๊ด๊ณ์์ด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ dotnet build๋ ์ฌ์ ํ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
@neoKushan ์, ํ์ง๋ง MSBuild๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ "
@shederman ์์ฌํ ์ฌ์ง ์์ด "
๋ด๊ฐ ๋งํ๋ฏ์ด, ๋จ์ง ํ ๋ด๊ฐ ์ผ์ ํ ์์์ด ๋๋ ํ๋ณต ํด์, ์ ํ MSBuild๋ฅผ ํ์๋กํ์ง ์๋ ์ฅ์์ ๊ฒฝ๋ ๋น๋๋ฅผ ์ ์งํ๋ค. ์ฌ๋ฌ๋ถ์ ์ํ๋ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์์ฒด ์ฐธ์กฐ "MSBuild every" ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์๋ํ๋ค๋ฉด csproj๋ RichiCoder ์ ์ ๊ณผ ๊ฐ์ project.json์ ํฌํจํด์ผ ํฉ๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด "์ฝ์ด ๋น๋"์ "MSBuild"๊ฐ ๋๋ํ ์๋ํ๊ฑฐ๋ MSBuild ์์ด ์ฝ์ด ๋น๋๊ฐ ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ช ํ project.json์ ๊ฐ์ ธ์ค์ง ์์ผ๋ฉด csproj์์๋ ํ๋ก์ ํธ ์์ฑ์ ์ ์ํ ์ ์์ต๋๋ค.
์ฌ์ค ์์ฃผ ์ฌ์ด ๋ณ๊ฒฝ. ๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์ ์ฐ๋ฆฌ๋ ๋ค์์ด ํ์ํฉ๋๋ค.
๊ฝค ์ ์ ์์ ์์ ์ผ๋ก Microsoft๋ "์์ํ MSBuild" ๊ฒฝ๋ก๋ฅผ ๊ณ์ํ ์ ์์ผ๋ฉฐ .NET Core ์ปค๋ฎค๋ํฐ์ ๋ํ ์ฝ์์ ์งํค๋ฉฐ MSBuild์์ ์ตํธ์์ํ๋ ค๋ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
asp.net ํ์ ์ค ๋๊ตฌ๋ ์ฌ๊ธฐ์์ ์๋ฌด ๋ง๋ ํ์ง ์์์ต๋๋ค.
ํํธ, ๋๋ ASP.NET Community Standup โ 2016๋ 5์ 10์ผ ์
@rhires ๋ด๊ฐ ์ดํดํ
๋๋ ๋น์ ์ project.json ์์ด๋์ด๋ฅผ ์ข์ํฉ๋๋ค. ๋ฐฉ๊ธ RC2 ๋ณ๊ฒฝ์ ๊ฒช๊ณ "ํ ์คํธ ๋ฌ๋"๋ฅผ ๋ฃ์์ผ๋ฏ๋ก ์ํํ์ง ๋ชปํ ์ด์ ๊ฐ ์์ต๋๋ค. _BUT_, ๊ทธ๋ค์ ๋ง์์ ์์ ํ project.json์ ์ ๊ฑฐํ๊ณ MSBuild-first ์ธ๊ณ๋ก ๋์๊ฐ๋ ๋ฐ ์์ ํ ์ค์ ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
MS๊ฐ ๋๊ตฌ๋ฅผ ํตํด json ํ์ผ์ ์ฃผ์์ "๋จ์ํ" ํ์ฉํ ์ ์๋ ์ด์ (์ ๋ช ํ ๋ง์ง๋ง ๋จ์ด)
๊ทธ๋ค์ด ํ ์ ์์๋ ์ด์ ๋ ์์ต๋๋ค. ๊ทธ๋ค์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ JSON.Net์ ์ฃผ์์ ์ง์ํฉ๋๋ค.
์ค์ ๋ก project.json์ ํด๋น ๊ฒฝ๋ก๋ก ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ { "BuildSystem" : "MSBuild" } ํญ๋ชฉ์ ํฌํจํด์ผ ํฉ๋๋ค.
๋ด ํ๋ก์ ํธ๊ฐ ์์ฒด ๋น๋ ์์คํ ์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ํ์คํ ๋น๋ ์์คํ ์ด ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ ๊ทธ ๋ฐ๋๊ฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๋น๋ํฉ๋๊น?
@neoKushan :
Microsoft๊ฐ MSbuild ํ๋ก์ ํธ ์ ์๋ฅผ ์ถ์งํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ MSBuild์ ๋ง์ ํฌ์๋ฅผ ํ ์ฌ๋๋ค์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํจ์ ๋๋ค. ๊ทธ๋ฐ ์ ์์ Paket์ project.json(๋๋ project.yaml ๋๋ project.cs ๋ฑ)๋ณด๋ค ๋ซ์ง ์์ต๋๋ค.
Paket์ ์๋ก์ด ๋น๋ ์์คํ
์ด ์๋๋ผ MsBuild์ 100% ํธํ๋๋ ์ข
์์ฑ ๊ด๋ฆฌ์์
๋๋ค. packages.config
๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
@Krzysztof-Cieslak ๋๋ ๊ทธ๊ฒ์ด ๋น๋ ์์คํ
์ด๋ผ๊ณ ์ฃผ์ฅํ ์ ์ด ์์ผ๋ฉฐ ์ข
์์ฑ ๊ด๋ฆฌ๊ฐ ์ค์ ๋ก .net ์ฝ์ด์ ์ฃผ์ ๋ฌธ์ ๋ ์๋๋๋ค(์ต์ํ ๋ด๊ฐ ์๋ ํ). .net ์ฝ์ด๋ packages.config
๋ฅผ ์ฌ์ฉํ์ง ์๊ณ project.json
ํฉ๋๋ค.
.Net Core๊ฐ ์ฌ์ ํ project.json
๋ฅผ ์ฌ์ฉํ๋๋ก ๊ณํ๋์ด ์์๋ค๋ฉด ์ด 100๊ฐ ๊ฒ์๋ฌผ ํ ๋ก ์ ํ์ง ์์์ ๊ฒ์
๋๋ค. ;) ๋ด๊ฐ ๋งํ๋ ๊ฒ์ ์ข
์์ฑ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด "nuget.json"์ ์ฌ์ฉํ๋ ์๋ฃจ์
์ด ์์ ํ ๋์ผํ ์ ํ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช
ํ๋ ๊ฒ์
๋๋ค.
@shederman
"์ต์ข ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ: 95% ์ ๋ขฐ๋์์ ยฑ10%์ธ 9๋ฐฑ๋ง .NET ๊ฐ๋ฐ์ ๋ชจ์ง๋จ์ ๋ํด 100๊ฐ์ ์๋ต์ด ์์ต๋๋ค."
์, ์ปจํผ๋ฐ์ค์์ ๊ฐ๋ ๊ณ ์์ด๊ฐ ์ ํธํ๋ ์ ์ ๋๋ฌผ์ธ ๊ณ ์์ด ์ฅ๋๊ฐ์ ๋ํด ๋ฌผ์ด๋ณด๋ฉด ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
@darrelmiller
"MSBuild์ Visual Studio๊ฐ ํ์ฌ MSBuild๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๊ตฌ๋ณํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ์๋ ๊ฐ MSBuild ํ์ผ์ ์ง์ ํธ์งํด ์์ผ๋ฉฐ ์ด๋ฅผ ๋ชจ๋ ํ๋ก์ ํธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์: https://github.com/tavis- ์ํํธ์จ์ด/Tavis.home/blob/master/build/Build.proj "
๋ช ๋ น์ค์์ msbuild๊ฐ ์๋ํ์ง ์๋ ํ๋ก์ ํธ ํ์ผ ์์ VS ํน์ ๋น๋ ํ์ผ์ ๋ํด ๋ ผ์ํด ๋ณผ๊น์?
@gregoryyoung ๊ทธ๋์ผ ํฉ๋๋ค. ์ด์ ์ devenv์ ์์กดํ๋ ๋น๋ ํ์ผ์ ์ํํ์ง๋ง ๋ช ๋ น์ค์์ ์คํ๋์ง ์๋ ํ์ผ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์ด๋ค ์?
@gregoryyoung
์, ์ปจํผ๋ฐ์ค์์ ๊ฐ๋ ๊ณ ์์ด๊ฐ ์ ํธํ๋ ์ ์ ๋๋ฌผ์ธ ๊ณ ์์ด ์ฅ๋๊ฐ์ ๋ํด ๋ฌผ์ด๋ณด๋ฉด ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ํฅ๋ฏธ๋ก์ด ๋น์ ์ ๋๋ค. ์ ์ธํ๊ณ ...
MSBuild๋ก์ ์ด์ ์ _์ง์ํ_ ์ฌ๋๋ค์ Twitter ํผ๋์ ๋งํฌ๋ฅผ ๊ฒ์ํ์ต๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก๋ ๊ทํ์ ๋น์ ์ ์ ํ ๊ฐ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ฌธ์กฐ์ฌ๊ฐ ์๋ชป๋ ํฌ๋ผ์์, ๋๋ ๋น๊ณผํ์ ์ผ๋ก ํธํฅ๋์ด ์๋ค๋ ๊ณ์๋๋ ๋น๋ฐฉ์ด ๋ง์์ ๋ญ๋๋ค. ๊ทธ๋ฌ๋ ์ง๋ฌธ์ ์ฃผ๋์ ์ด์ง ์์๊ณ ๋ต๋ณ์ ๊ด๋ฒ์ํ ์๋ต์ ํ์ผ๋ฉฐ ์ค๋ฌธ์กฐ์ฌ๋ ์ค์ค๋ก ์ ํํ ์ฒญ์ค์ด์์ง๋ง ์ ์ด๋ ์ด๋ก ์์ผ๋ก๋ ๋ด ๊ด์ ์์ _๋ฉ๋ฆฌ_ ํธํฅ๋์ด์ผ ํ๋ ๊ด๋ฒ์ํ ์ฒญ์ค์ด์์ต๋๋ค.
๋๋ ๋ํ ์ด๋ฌํ ๋น๋์ ํ๋ ์ฌ๋๋ค์ด ์ค๋ฌธ์กฐ์ฌ์ ๋ํด ์ฝ๊ฐ์ ๊ตฌ๊ธ๋ง์ ํ๋ค๋ ์ธ์์ ๋ฐ์๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ ํ์ธ์ ๋ฐ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๊ฑด๊ฐ ์ฐ๊ตฌ๋ฅผ ์ํ ์์ฌ ์์ค์ ์ฐ๊ตฌ ํ๋กํ ์ฝ์ ์ค๊ณํ์ผ๋ฉฐ ์ค๋ฌธ ์กฐ์ฌ๊ฐ ์๋ฒฝํ๋ค๊ณ ์ฃผ์ฅํ์ง๋ ์์ง๋ง ํ์คํ Microsoft ์ง์์ด ๋ง๋๋ ๊ฒ๋งํผ ๊ฒฐํจ์ด ์๋ ๊ฒ์ ์๋๋๋ค.
ํต๊ณ์ ์ผ๋ก ๊ฐ์ฅ ํ์คํ๊ฒ _is_ ํ๋ฉฐ, ์๊ฒฌ์ด ์ด๋์ ์๋์ง์ ๋ํ ์ข์ ์งํ๋ฅผ ์ ๊ณตํฉ๋๋ค. GitHub, gitter, Twitter, ๋ธ๋ก๊ทธ๋ ๋ชจ๋ ์ด๋ฅผ ์ด๋ ์ ๋ ๋ท๋ฐ์นจํ๊ณ ์์ต๋๋ค.
๊ฐ์ ๋ง์ ํ๋ ์ฌ๋ฌ ์ฆ๊ฑฐ ์ถ์ฒ. ์ค์ํ ์ฌ์ฉ์์ ์๊ฒฌ์ ๋ฌด์ํ๊ณ ์ถ๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋งํ์ญ์์ค. "์๋ชป๋" ์๊ฒฌ์ ์ฃผ์ฅํ๋ฉด ์์ ์ ์๊ฒฌ์ ๋งํ ๊ถ๋ฆฌ๋ฅผ ์์คํ๋ ๊ฒ์ฒ๋ผ ๋ฐ๋๋ฅผ ๋ฌผ๋ฆฌ์น๋ ค๋ ์๋๋ฅผ ์ค๋จํ์ญ์์ค.
๋๋ ๋ด๊ฐ ์ฌ๋ฌ ๋ฒ ๋งํ๋ฏ์ด ๋ด ์ค๋ฌธ์กฐ์ฌ์์ ์๋ชป๋์๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ์ ๊ฐ์ ํ๋ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ด๊ฐ ์ค๋ฌธ ์กฐ์ฌ๋ฅผ ํ ์ด์ ๋ Microsoft๊ฐ ์ฌ๋๋ค์ด ๋ฌด์จ ์๊ฐ์ ํ๋์ง ์ ํ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ด ์์ ํ ๋ช ๋ฐฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ์์ ํ ๋ช ๋ฐฑํด์ง๊ณ ์๋ ๊ฒ์ ๊ทธ๋ค์ด ์ฌ๋๋ค์ด ์๊ฐํ๋ ๊ฒ์ _๊ด์ฌ_์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์์ ๊ณผ ์ง์ญ ์ฌํ์ ๋ถ์ ์งํ์ง ๋ง๊ณ ๋ฐ๋๋ฅผ ํ๋ค์ง ๋ง๊ณ ์ฐธ์ฌํ์ญ์์ค.
์ฌ์ค์ ๋ฐ๊พธ๋ ค๋ ์๋๋ฅผ ๋ฉ์ถ๊ณ ์ฌ์ค์ ๊ทผ๊ฑฐํ์ฌ ๋ง์์ ๋ฐ๊พธ์ญ์์ค.
@shederman Microsoft ํ์ด ์ด ์ค๋ ๋(๊ทํ์ ์ค๋ฌธ ์กฐ์ฌ ํฌํจ)์ ์ค์ ๋ก ๋ต๋ณํ๋ค๋ ์ธ์์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ์, ํ์ ํ ์ฌ๋์ด ๋น์ ๋งํผ ์ ๋ขฐํ ์ ์๋ค๊ณ ์๊ฐํ์ง ์๋๋ค๊ณ ๋งํ์ง๋ง ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๋๋ ๊ทธ๋ค์ด ํ์ฌ ๊ทธ๋ค์ด ๊ฐ๊ณ ์๋ ๊ธธ์ ๋ํ ์์ฒญ๋ ๋ฐ๋์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๊ณ ๊ทธ๋ค์ด ์ทจํด์ผ ํ ์ฌ๋ฐ๋ฅธ ๊ธธ์ ๋ํด ๋ ผ์ํ๊ณ ์์ผ๋ฉฐ ๊ทธ๋ค์ด ๋ ๋ง์ด ์๊ฒ ๋๋ฉด ์ฐ๋ฆฌ์๊ฒ ์๋ตํ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ด ์ฌ์ ํ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด ํ์ ์ฝ๊ฐ์ ์ ์ฉ์ ์ค ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค ;).
@gregoryyoung ์ฃ์กํฉ๋๋ค. ๋ง์ํ์ ์ ์ถ๋ก ๋งด๋๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@sandorfr
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด ํ์ ์ฝ๊ฐ์ ์ ์ฉ์ ์ค ์ ์๋ค๊ณ ์๊ฐํ๋ค
๋๋ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ง๋ ๋ฉฐ์น ๋์์ ๊ฒฝํ์ ๊ทธ ํฌ๋ง์ ๊ฐํํ์ง ๋ชปํ์ต๋๋ค.
'ํ' ํ์ด ์๋๋ผ, ์กฐ์ง์ ์์ ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฐ ๊ฒฐ์ ์ ํ๊ณ ๋ด๋ ค๋์ ๊ฑด๋ฐโฆ ๊ทธ๋ฐ ๋ค์ 'ํ'์ด ๊ทธ๊ฑธ ๋นจ์๋ค์ด๊ณ ์์๊ฒ ๋ง๋ค์ด์ผ ํ๋ค๊ณ ์๊ฐํด์ผ ํ๋ค. BTDT. ์ฌ๋ฏธ ์์ด.
project.json์ด ๋น ASP.NET Core ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ข ๋ ํธํ๋๋๋ก ์ต๊ทผ ์ ์ด๋ฏธ
๊ฑฐ๊ธฐ์์ "๊ณ ์ ์ ์ธ" csproj ํ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ ์ค์ ๋ก ๋์๊ฒ ๊ทธ๋ ๊ฒ ๋ฉ๋ฆฌ ํ์ฅ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ csproj ์์ฒด๊ฐ project.json์์ ๋ฐฐ์ด ๋ ์ ์ฐํ ๋ฐฉํฅ์ผ๋ก ์กฐ๊ธ ๋ฐ์ ํ๋ค๋ฉด ์ค์ ๋ก "์๋กญ๊ณ ๊ฐ์ ๋" csproj๊ฐ ์ ๋ง ์ ์๋ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋ํ project.json์ ๋ํ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ด _๋ชจ๋ _ ์ข ๋ฅ์ .NET ํ๋ก์ ํธ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ณผ์ ์ ๋ง์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์์ ๊ฒ์ด๋ผ๊ณ ์์ ํ๊ฒ ๊ฐ์ ํ ์ ์์ต๋๋ค. ASP.NET(Core) ์ด์ธ์ ๋ค๋ฅธ ๋ง์ ๋์์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ํ์ผ ํ์์ด JSON, XML ๋๋ ๋ฌด์์ด๋ ๊ฐ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์์ผ ํฉ๋๋ค. ์, ์ฌ๋ฌ ๊ฐ์ง ํ๋นํ ์ด์ ๋ก ํ๋๊ฐ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ์ ๋ฆฌํ ์ ์์ง๋ง ๊ฒฐ๊ตญ ์๋ ํ๋ก์ ํธ ํ์ผ ๋ด์์ ์ค์ ๋ก ์ผ๋ง๋ ๋ง์ ์๊ฐ์ ๋ณด๋ด๊ณ ์ถ์์ง ์๊ฐํด์ผ
์ฌ๋๋ค์ด project.json์ ์๊ฐํ ๋ ๋๋ถ๋ถ ๊ตฌ์ฑ๋ณด๋ค ๊ด๋ก๊ฐ ๋ง์ ์ด๊ธฐ ๋จ๊ณ ๋ฅผ ์๊ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์, ๊ทธ๊ฒ์ ๋งค์ฐ ํ๋ฅญํ์ง๋ง ASP.NET Core์๋ง ๊ตญํ๋์ด ๋งค์ฐ ์ ํ์ ์ด์์ต๋๋ค. ๋ค๋ฅธ ๋์์์๋ ์ ๋๋ก ์๋ํ์ง ์์ผ๋ฏ๋ก ์๋ ๋์ ์ ์๋ํ๋ ๊ฒ์ ์ฌ์ฉํ๊ณ ํ์ฅํ๊ณ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฉด์์ ๊ฐ์ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค.
๊ทธ๋์, tl;dr: ์, ์ ๋ project.json์ ์ ๋ง ์ข์ํ๊ณ ๊ทธ๊ฒ์ ASP.NET Core์ฉ์ผ๋ก ์ ์งํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์์ผ๋ฉด ํฉ๋๋ค(์: ํน๋ณํ MSBuild ์์ ์ฌ์ฉ). ํ์ง๋ง ๋์์ ์ ์ง๊ธ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์ ํ ์ดํดํ๊ณ ์์ผ๋ฉฐ ์ค์ ๋ก ๊ทธ๋ค์ด ํ๋ ํ๋์ด ๋์ ๊ฒ์ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฌผ๋ก ํ์ด๋ฐ์ด ์กฐ๊ธ ์ด์ํ๊ธด ํ์ง๋ง ASP.NET Core ๋ฐ .NET Core ๋ฆด๋ฆฌ์ค์ ๋ณํํ์ฌ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ง ์๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ ํ์ด๋ฐ์ด ์ค์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค(๋์ค์ ์ ํ์ด ์ํํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด ).
ํ๋ก์ ํธ ๊ฐ์ ์์ค ํ์ผ์ ๊ณต์ ํ ์ ์์ด์ผ ํจ
@darrelmiller ์ด๊ฒ์ .csproj์ ๋ชฉ๋ก ํ์ผ์ด ๋ค์ ๋์์ค๊ณ ์์์ ์์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ฌด์ญ๊ฒ ๋ค๋ฆฝ๋๋ค.
@lokitoth csproj๊ฐ ํ์ผ ์ฐธ์กฐ์ ๋ํด ์๋ก์ด project.json๊ณผ ์ ์ฌํ๊ฒ ์๋ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก glob์ ์ฌ์ฉํ๊ณ ๊ฐ๋ณ ํ์ผ ์ฐธ์กฐ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ ์์ต๋๋ค.
@shederman ์ ๋ MS ์ง์์ด ์๋๋ผ ํฉ๋ฆฌ์ ์ธ ์ฌ๋์ ๋๋ค. ์ ๋ฅผ ๊ตฌ๊ธ๋งํ์๋ฉด ์ ๊ฐ ์ด ํ๋ซํผ์ ์ฅ๊ธฐ์ ์ผ๋ก ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์ค ๊ฑฐ๋ผ ํ์ ํฉ๋๋ค.
๋ณ๊ฒฝ๊ณผ ๊ด๋ จ๋ ๋ง์ ์ฐฌ๋ฐ ์๋ก ์ด ์์ง๋ง ๊ทํ๊ฐ ์ ๊ณตํ ๋ด์ฉ์ ์ ์์ ์ธ ํ ๋ก ์ ์ ์ฉํ์ง ์์ต๋๋ค.
๋ฃ๊ธฐ๋ง ํด๋ ์ค๋ง์ค๋ฌ์ด ๋ณํ์์ต๋๋ค. project.json, ์๋ ํ์ผ ํฌํจ/๊ธ๋ก๋น ๋ฐ ์ ์ด์ ๋ณต์์ ASP.NET Core์ ๋ํ ์ฒซ ๋ฒ์งธ ์์๋ก ์ ๋ฅผ "์ค, ๋ฉ์ง๋ค!"ํ๊ฒ ๋ง๋ค์์ต๋๋ค. ์ฒ์์.
๋๋ ๊ทธ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(ํฌ๋ง?). ๊ทธ๋ฌ๋ XML ํ๋ก์ ํธ ํ์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ ๊ธฐ๋ถ์ด ์ข์ง ์์ต๋๋ค. ์ญ์ฌ์ ์ผ๋ก ์ด๊ฒ์ ์ธ๊ฐ์๊ฒ ๊ณจ์นซ๊ฑฐ๋ฆฌ์์ต๋๋ค. ๋๋ csproj ํ์ผ์ด ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ด๋ ค์ด ํ ์คํธ์ ๋ฒฝ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ ๊ฒ์ ์ซ์ดํฉ๋๋ค.
๊ทธ๋ฅ ๋ด 2 ์ผํธ.
@poke ๊ฒ์๋ฌผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก csproj๋ฅผ json์ผ๋ก ๋ณํํ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
Compile, Embed, CopyToOutput, Exclude, Shared Files ๋ฑ์ ์ต์ ์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๋ค๋ ์ฌ์ค์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด ์ค์ ๋ก json ํ์์ ์ด์จ๋ XML๋ณด๋ค ๋ ์ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ๋๋ ๋ํ json์ด ๋ฌด๊ฑฐ์ด ๋น๋ ์คํฌ๋ฆฝํธ ์ฌ์ฉ์ ์ ์์ ๋ํด ์ ์๋ํ์ง ์์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ผ ์๊ฐ์ ๊ฐ์ง ์ ์์ ๋๊น์ง ํ๋ก๋์ ์ ์์ง ๋ฐ์ฏค ๊ตฌ์ด ์๋ฃจ์ ์ ์ถ๊ฐํ์ง ์์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ํ์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ ๋ฟ์ ๋๋ค.
@gregoryyoung ๋น์ ์ด ์ ๊ณตํ ๊ฒ์ ์ ์์ ์ธ ํ ๋ก ์ ์ ์ฉํ์ง ์์ต๋๋ค.
์์ฒญ๋. ์ข์, ๋ด๊ฐ ๋ฌด์์ ์ ๊ณตํ๋์ง ๋ณด์.
๋ฌด์จ ๋ฏธ์น ๋ถ๋ถ์ด ๊ถ๊ธํด์ ์ฌ์ญค๋ด๋ ๋ ๊น์? ์์ฆ ๋๊ตฐ๊ฐ์ ์๊ฐ์ ๋ฌป๋ ๊ฒ์ ํฉ๋ฆฌ์ ์ด์ง ์์ต๋๊น? ์๋๋ฉด ๋ด๊ฐ ๊ฑฐ๊ธฐ์ ๋ญ๊ฐ๋ฅผ ๋จ๊ฒจ ๋์์ต๋๊น?
๋ด ๋ง์, ๋ด๊ฐ ํ๊ฐ ๋ฌ์ด์, ์คํดํ์ง ๋ง์ธ์. ๋๋ ์ฑ๊ธํ๊ณ ์ ๋๋ก ์๊ฐํ์ง ๋ชปํ ์์ง์์ผ๋ก ๋ณด์ด๋ ๋ง์ง๋ง ์๊ฐ์ ๋นผ์๊ธด ํ๋ ์์ํฌ์ ํต์ฌ ์ฝ์์ ์ค์ฌ์ผ๋ก ๋ง์ ์์ , ์๊ฐ ๋ฐ ๋์ ๋ญ๋นํ์ต๋๋ค. ๋๋ ํ๋ฅผ ๋ผ _๊ถ๋ฆฌ_๊ฐ ์๋๊ฐ?
์ถ์ . ์, ๋น์ ์ด ๋ฐ๋ก ๊ทธ๋ ์์ ๋๋ค. ์กด๊ฒฝ. ๋น์ ์ ์ผ์ ์ฌ๋ํฉ๋๋ค. ์ ๋ง์ด์ผ.
@bzbetty ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ณด๊ณ ์ถ์ ๊ฒ์ MSBuild๋ฅผ project.json์ผ๋ก ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ํ์ฌ ํํ์ MSBuild์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ํ๋๋ _ํ๋ก์ ํธ ์ ์_๋ฅผ _๋น๋ ํ๋ก์ธ์ค_์ ๊ฒฐํฉํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋น๋ ํ๋ก์ธ์ค๋ฅผ project.json์ ์ถ๊ฐํ๋ ๊ฒ์ MSBuild/VS๊ฐ ์ ์ง๋ฅธ ๊ฒ๊ณผ ๋๊ฐ์ ์ค์๋ฅผ ํ๊ฒ ๋ฉ๋๋ค.
ํ๋ก์ ํธ ์ ์๋ ๋น๋ ํ๋ก์ธ์ค์ ๋ณ๋๋ก ์์ด์ผ ํ๋ฉฐ ๋น๋ ํ๋ก์ธ์ค์ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ง๋ฌธํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋จ์ํ๊ณ ํ๋ก์ ํธ ์ ์๋ฅผ ์ง์ ๋น๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฐ๋จํ ๋น๋๋ฅผ ์ํํ๊ธฐ ์ํด ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ๊ณ ์ ์ฐํ๊ณ ์ง๊ด์ ์ด์ง ์์ ๋น๋ ์์คํ ์ด ์ ๋ง๋ก ํ์ํฉ๋๊น?
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฃ์ด. ๊ทธ๋ฐ ๊ฐ๋จํ ํ๋ก์ ํธ ์ ์์ ํ๋ก์ ํธ ์ ์๋ฅผ ๋น๋ํ๋ ๊ฒ ์ธ์๋ ์๋ฌด ๊ฒ๋ ํ ์ ์๋ ๋งค์ฐ ๊ฐ๋จํ ๋น๋ ๋๊ตฌ๋ฅผ _๊ฐ์ง๊ณ ์๋_ ๊ฒฝ์ฐ MSBuild ๋๋ NAnt ๋ฑ์ ์ค์นํ๊ณ ์ฌ์ฉํ๊ธฐ๋ก ์ ํํ์๊ฒ ์ต๋๊น?
์๋, ์๋ง ์๋๊ฑฐ์ผ, ๊ทธ๋ ์ง? ๋ณต์ก์ฑ์ ๋ถํ์ํ๊ฒ ์ถ๊ฐํ๋ ์ด์ ๋ฅผ ์๋ฏธํฉ๋๋ค. ํจ๊ณผ์ ์ธ ์ํํธ์จ์ด ์์ง๋์ด๋ง ์ค์ต์ ํต์ฌ ๋ถ๋ถ์ ์ผ์ ๋จ์ํ๊ฒ ์ ์งํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ฐ๋จํ "์ ์ ์์ฑ" ๋๊ตฌ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ์๋๋ฆฌ์ค์ ๋๋ฌํ๋ค๋ฉด? ๋ฌผ๋ก _๊ทธ๋ ๋ค๋ฉด_ ๊ทธ๋ด ๊ฒ๋๋ค.
๋ ๋๊ตฌ๋ฅผ ๋๋ํ ์ค์นํ๋ฉด ํ์์ ๊ฐ์ฅ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ ์ ์์ต๋๋ค. MS๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์๋์. ๋ณต์กํ๊ณ ์ง๊ด์ ์ด์ง ์์ ๋๊ตฌ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ํ์ง๋ง ๊ฐ์ฅ ์ฌํ๊ฒ ๋์ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๊ฒ ์ต๋๋ค.
๋น๋ ์์
์ ๊ฐ ํ๊ณ ์๋ ์ฝ๊ฐ์ ์ฐ๊ตฌ๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ ๋ Twitter, Slack, Github, Gitter, Jabbr์ ๋ณด๊ณ ์์ต๋๋ค.
ํต์ฌ ํ ์ธ๋ถ๋ก์ ์ด๋์ ๋ํ ์ง์์ ๊ฑฐ์ ์์์ต๋๋ค. ๋ด ๋ง์, ์ฝ๊ฐ์ ์์์ง๋ง ๋ง์ง๋ ์์์ต๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๊ทธ ์์ง์์ ๋ํด ์๋นํ ํ๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
๋๋ ๋ํ ์น MSBuild ์ง์์ ๋ง์ ์ฌ๋๋ค์ด ์๋๋ฐฉ์ด ์๋ชป๋ ์ ๋ณด๋ฅผ ์ป๊ฑฐ๋ ๋ ์ผ๋ฐ์ ์ผ๋ก ์๊ฒฉ์ด ์๋ค๊ณ ์ถ๋ก ํ๋ ๊ฒฝํฅ์ ์๋นํ ์ค๋งํ์ต๋๋ค. ์ด๊ฒ์ pro-project.json ์ง์์์ ์ข์ง ์์ ๋๊ธฐ๋ฅผ ์ถ๋ก ํ๋ ๊ฒฝํฅ๊ณผ ์ผ์นํ์ต๋๋ค(์ ๋ฅผ ํฌํจํ์ฌ, mea culpa).
๋ค์๊ณผ ๊ฐ์ด ๋ฌป๊ณ ์ถ์ต๋๋ค.
์ ๋ํ ์ธ์
MSBuild๋ก์ ์ด๋์ ๋ํด ๊ณ ๊ธํ๋ ์ฃผ์ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ๋ ์ฃผ์ฅ
์๊ฒฌ
์ ์ฒด SurveyMonkey ๊ตฌ๋
๋ฃ๋ฅผ ์ง๋ถํ์ฌ ์ ์ฒด ๊ฒฐ๊ณผ ์งํฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค(100๊ฐ 100๊ฐ๊ฐ ์๋). 321๊ฐ์ ์๋ต์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก 9๋ฐฑ๋ง ์ธ๊ตฌ์ ๋ํด ยฑ5.5% ์ค์ฐจ ํ๊ณ, 95% ์ ๋ขฐ๋ก ํด์๋ฉ๋๋ค.
์ด ์ค๋ฌธ์กฐ์ฌ์ ๋ํด ์ ๊ฐ ๋ค์ ์ผ๋ฐ์ ์ธ ์ฃผ์ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ ์์ต๋๋ค:
.NET ํ๋ ์์ํฌ๋ฅผ ์ฌ๋ํ๋ ์ฌ๋์๊ฒ ํธ์ํ๋ ๋ฐ๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ฐ๋ ค์ ์์ค์ ๊ณผ์ํ๊ฐํ์ง ๋ง๊ณ , ๋ฌธ์ ๊ฐ ์ ํจํ๊ณ ์ ๋ณด์ ์ ๊ฐํ ๊ฒฝํ์์ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๋ ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ปค๋ฎค๋ํฐ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ณ ์ด์ ๋ํด ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ๋ ๊ฒ์ ๋๋ค. .
๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ ์ด ๊ณ์ ์งํ๋๋ค๋ฉด ์ง๊ธ๊น์ง๋ณด๋ค ๋ ๋์ ์ถ๋ก ๊ณผ ์ฆ๊ฑฐ๊ฐ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
Man @shederman ์ Silverlight๊ฐ ๊ทธ๊ฒ์ ๋จน์์ ๋ ์ ์ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค์ ์๊ฐ๋๊ฒ ๊ฒฝ์ฐ ๋ ์์ธ์ ๋๋ค. ๋ด๊ฐ ๊ทธ๋ฅผ ์ง์งํ๋ ์ด์ ์ผ ๊ฒ์ด๋ค :100:%! ใ .
ํ์ฌ ํํ์ MSBuild์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ํ๋๋ ํ๋ก์ ํธ ์ ์๋ฅผ ๋น๋ ํ๋ก์ธ์ค์ ๊ฒฐํฉํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋น๋ ํ๋ก์ธ์ค๋ฅผ project.json์ ์ถ๊ฐํ๋ ๊ฒ์ MSBuild/VS๊ฐ ์ ์ง๋ฅธ ๊ฒ๊ณผ ๋๊ฐ์ ์ค์๋ฅผ ํ๊ฒ ๋ฉ๋๋ค.
ํ๋ก์ ํธ ์ ์๋ ๋น๋ ํ๋ก์ธ์ค์ ๋ณ๋๋ก ์์ด์ผ ํ๋ฉฐ ๋น๋ ํ๋ก์ธ์ค์ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
:+1: :+1: :+1: ... ๋ฌธ์ ๋ฅผ ๊ตฌ์ฑํ๋ ํ์ํ ๋ฐฉ๋ฒ!!! ์๋ค์ํผ, ๋๋ ์ด๊ฒ์ ๋๋ฌด ์ค๋ซ๋์ ์ฝ๋ฅผ ๊ฐ๋์ด ์๊ณ ์ด๊ฒ์ ๋์๊ฒ ์ค์ ๋ก ์ผ์ด๋ ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ (๋ค์) 100% ์์ ์ ์์ต๋๋ค.
๋๋ csproj ํ์ผ์ด ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ด๋ ค์ด ํ ์คํธ์ ๋ฒฝ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ ๊ฒ์ ์ซ์ดํฉ๋๋ค.
์ด๊ฒ์ ์ด๋๊ฐ์ ์ก์๊ฐ ํ์ํฉ๋๋ค, @nbarbettini! ๋ด ๊ฐ์ ๋ ์๋ฒฝํ๊ฒ ํฌ์ฐฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ํ์ผ ํ์์ด JSON, XML ๋๋ ๋ฌด์์ด๋ ๊ฐ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์์ผ ํฉ๋๋ค.
์, ์ ๋ ์ฌ๋๋ค์๊ฒ ์ด๊ฒ์ ์๊ธฐ์ํค๋ ค๊ณ ํ๋ ๊ฒ์ ์ซ์ดํ์ง๋ง ์ผ๋ถ ๊ฐ๋ฐ์๋ ํ์์ ๊ฐ๋ ์ ์ง์ฐฉํ๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ์ด๋ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. "JSON" ํ๋ก์ ํธ ํจ๋ฌ๋ค์์ ์ค์ ๋ก "JSON ๊ฒ"์ด ์๋๋ผ JSON์ ์ง๋ ฌํ์ ์ ํ์ผ๋ก ์ฌ์ฉํ์ฌ "๋ชจ๋ธ"์ ์ค๋ช ํฉ๋๋ค. JSON์ด XML๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ ๋ ์๋ค์ค๋ฝ๋ค๋ ์ฌ์ค์ ๊ทธ๊ฒ์ (๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ) ๋ ๋งค๋ ฅ์ ์ผ๋ก ๋ง๋ค์์ต๋๋ค.
์ด์ ๋ฐ๋ผ MSBuild๋ ๊ทธ ์์ฒด๋ก XML์ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์์ง๋ง ๋์์ธ๋ ๋ฐฉ์์ "๋ชจ๋ธ"์ด ์ด ํ์์ผ๋ก ์ค๋ช ๋๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ "๋ชจ๋ธ"์ด๋ผ๊ณ ๋งํ๋ ์ด์ ๋ ๋ ์์คํ ๋ชจ๋ ๊ถ๊ทน์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ก ์ญ์ง๋ ฌํ๋๋ ์ค์ ๋ชจ๋ธ/API ์์ ๋ฌธ์ ๋ชจ๋ธ์ ๋ฐฐ์นํ๋ ์ค๊ณ ๊ฒฐํจ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, ์ค์ ๋ก ํ์ํ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ํฐํฉํธ์ ๊ฐ๋ ์ ๊ด๋ฆฌํด์ผ ํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ์์คํ ์ด ๋ณต์กํด์ง๋๋ค. ํน์ ํ์(XML ๋๋ JSON)๋ง ํ์ฉํ๋๋ก ํ๋์ฝ๋ฉํ๋ฉด ์ํฉ์ด ์ ํ๋ ๋ฟ์ด๋ฏ๋ก ์ด ์ ์ฝ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ชจ์ํด์ผ ํฉ๋๋ค.
์ฌํํผ, ๋ชจ๋๋ฅผ ์ํ ์ ๋ฆ๋ฐ์ด ์ผ์์ผ ์์นจ PSA. :stuck_out_tongue:
์ด ์ค๋ ๋์ ์ด๋์๋ ๊ฒ์๋ ๊ฒ์ ๋ณผ ์ ์์์ผ๋ฏ๋ก ์ฌ๊ธฐ๋ก ์ด๋ํฉ๋๋ค... https://youtu.be/N9MteJH-HsQ. ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ ์ด์ ์ ๋ํด ์กฐ๊ธ ๋ ์ค๋ช ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@shederman
"ํฅ๋ถํด์ ์ฌ์ญค๋ด๋ ๋ ๊น์? ๋ฏธ์น ๋ถ๋ถ์ด ๋ญ์ฃ ? ์์ฆ์ ๋จ์ ์๊ฐ์ ๋ฌผ์ด๋ณด๋ ๊ฒ ๋นํฉ๋ฆฌ์ ์ธ๊ฐ์? ์๋๋ฉด ์ ๊ฐ ๋ญ๊ฐ๋ฅผ ๋จ๊ฒจ๋ ๊ฑด๊ฐ์?"
๋๋ ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ๊ณ ์ผ๋ฐ ๊ฐ๋ฐ์ ๋ชจ์ง๋จ์ ์ธ์ฝํ๋ ค๊ณ ํ์ต๋๋ค. ๋ด๊ฐ ์ธ๊ธํ๋ฏ์ด ์ด๊ฒ์ ๊ณ ์์ด ์ฅ๋๊ฐ ๋ํ์์ ๊ฐ์ ๊ณ ์์ด๊ฐ ๋ ๋์ ํฌํ๋ฅผ ์ค์ํ๋ ๊ฒ๊ณผ ๋๋ต ๋์ผํ๋ฉฐ ์ ์ฒด ์ธ๊ตฌ์ ์ ์ฉ๋๋ค๊ณ ๊ฐ์ ํ ๋ ํฌ๊ณ ๋ช ๋ฐฑํ ํ๋ณธ ํธํฅ์ด ์์ต๋๋ค.
๋ด ์ ํ์ GitHub์์๋ @gregoryyoung์ +1ํ ์ ์์ง๋ง +1ํ ์ ์์ต๋๋ค.
ํ์ ๋ณํ์ ์์ธ ์ค ์ผ๋ถ๊ฐ Xamarin ์ธ์๋ผ๊ณ ์ค๋ช ํ๋๋ฐ ์ด๋ ํฐ ์ผ์ ๋๋ค. .NET, ASP.NET ๋ฐ Xamarin ๋ชจ๋ฐ์ผ/x-plat ํ๋ก์ ํธ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต์ ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์์ฒญ๋๋ฉฐ ์ด๊ฒ์ด ํ๋ก์ ํธ/๋น๋ ํ์ผ ํ์์ ์์์ํค๋ ๊ฒ์ ์๋ฏธํ๋ค๋ฉด IMHO๋ฅผ ๊ฑฐ๋ํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋๋ ์ต์ข ์๊ฒฌ์ ํ์ฑํ๊ธฐ ์ ์ ๋๊ตฌ์ ์ต์ข ํ์ผ ์ค์ ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ง์ผ๋ณผ ๊ฒ์ ๋๋ค.
@gregoryyoung ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ์ฌ ์ผ๋ฐ ๊ฐ๋ฐ์ ์ง๋จ์ผ๋ก ์ถ์ ํ๋ ค๊ณ ํ์ต๋๋ค... ํฌ๊ณ ๋ช ๋ฐฑํ ํ๋ณธ ํธํฅ์ด ์์ต๋๋ค.
์ด๋ค ํ๋ณธ ํธํฅ์ด ๋ ๊น์? ๋ณ๊ฒฝ ์ฌํญ์ _์ข์ํ๋_ ์ฌ๋๋ค์ Twitter ํผ๋์ ์ฃผ๋ก ๊ฒ์๋ ๊ณณ์ ๋ฌด์์ ๋๊น? dev ํ์ด ์ฌ์ฉํ๋ slack ์ฑ๋์ ์์๋ ๊ณณ์ ๋ฌด์์ ๋๊น?
๋ด๊ฐ ๋ณด๋ ์ฃผ์ ์ํ ํธ๊ฒฌ์ ์๋ต์๊ฐ ์๋ง๋ ์ฐธ์ฌํ๊ณ , ์ ๋ณด๋ฅผ ์๊ณ , ์ด์ ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก ๋ํ์ ์ธ ํ๋ณธ์ ์๋์ง๋ง ์ค์ํ ํ๋ณธ์ด๋ผ๊ณ ์ฃผ์ฅํ๊ณ ์ถ์ต๋๋ค. ํ๋ณธ ํธํฅ์ด ์๋๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฒ๋ ค์ผ ํ๋ค๋ ์๋ฏธ์ ๋๊น? ์๋ต์์ ๊ด์ ์ด ์ค์ํ์ง ์๋ค๊ณ ์?
322๋ช ์ ์ ๋ฌธ .NET ๊ฐ๋ฐ์๊ฐ ์๊ฒฌ์ ํ๋ช ํ์ต๋๋ค. (๋น์ ์ ๋ท๋ฐ์นจํ ์ด๋ค ์ฆ๊ฑฐ๋ ์์ด) ๊ทธ๊ฒ์ด ๋ํ์ฑ์ด ์๋ค๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ ์๊ฒฌ์ ์์ ํ ๋ฌด์ํ์๊ฒ ์ต๋๊น?
๋ถ๋ช ํ ๋ค์ ์ฃผ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์ฌ๋ผ์ฌ ๊ฒ์ด๋ฉฐ ๊ทธ๋ ๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ๋ ผ์ํ ๊ฒ์ ๋๋ค.
์ด๋ฐ ์ฌ๋๋ค์ ์ ์ ์ ์ฐจ๋ ค์ผ ํด์:)
๋๋ ์ด ๋ณํ๊ฐ ํฐ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค๋ ๋ฐ ๋์ํ์ง๋ง ์ฌ๋๋ค์๊ฒ ๋ณด์ด๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ด cli๋ ํฌํจํ๋ "๋๊ตฌ"์ ๋ํด ์ด์ผ๊ธฐํ ๋ ๊ธฐ์ตํ์ญ์์ค. ๋ฐ์ํด์ผ ํ๋ ๋ชจ๋ ๋ณํ์ ์ฐธ์กฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ "๋๊ตฌ"์ธ cli์์๋ ์ํ๋๋ฉฐ, json ๋๋ xml์ ์ ๋ ฅํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ๋ค๊ณ ์ฃผ์ฅํ๋ฉฐ cli์ ์์ ๊ฒ์ ๋๋ค. ๊ธ๋ก๋น์ ์ด๋ฏธ msbuild์์ ์ง์๋ฉ๋๋ค. Msbuild๋ ๋ถ๋ช ํ don't sdk์ ํฌํจ๋ ๊ฒ์ด๋ฏ๋ก ์ถ๊ฐ ์ค์น๊ฐ ์๊ณ ์ ํ๋ก์ ํธ ์คํ ๋ฆฌ๋ ๋์ผํ๋ฉฐ dotnet ๋ช ๋ น์ ๋ด๋ถ์์ ๋ค๋ฅธ ์์ ์ ์ํํฉ๋๋ค. (์ ๋ ๋ง์ดํฌ๋ก์ํํธ๋ ์๋์ง๋ง ์ด๊ฒ์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ ๋ณด์ ๋๋ค)
ํ์ ๋ฐ๋ณด๊ฐ ์๋๋๋ค. ๊ทธ๋ค์ ์ด ๋ณํ๋ฅผ ๊ฐ๋ณ๊ฒ ๋ง๋ค์ง ์์ต๋๋ค. ๊ทธ๋ค์ ์ธ์ด, ๊ธฐ๋ณธ ์ฐธ์กฐ ๋ฐ ํ๋ก์ ํธ ์ ํ, ๋๊ฒ ํจํค์ง์ ์ธ๋ถ์ฑ ๋ฑ์ ๊ฑธ์ณ ํ๋ซํผ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ์ฃผ๋ก ํธํ์ฑ ๋ฐ ์ผ๊ด์ฑ์ _๊ฐ์ง๊ณ _ ์์ต๋๋ค. ์ผ์ฃผ์ผ ๋ฐ์ ์ง๋์ง ์์์ผ๋ฉฐ ๊ณง ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ถ๋ก ์ ์์ธํ ์ค๋ช ํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค.
์ฌ๋๋ค์ด ์ ์ด๋ ๊ทธ ์์ง์์ ์์ ํ ๋น๋ํ๊ธฐ ์ ์ ์ค์ ๊ณํ์ด ๋ฌด์์ธ์ง ๊ธฐ๋ค๋ ค ์ฃผ์ จ์ผ๋ฉดํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, csproj/tfproj ํ์ผ์ ์๋์ผ๋ก ๋๋ฒ๊น ํ๊ณ ํ์ผ ํฌํจ ๋ฐ ๊ทธ ๋ชจ๋ ๊ฒ์ ๋ํ ์กฐ๊ฑด๋ถ ๊ท์น๊ณผ ์ธ์ ์ต๋๋ค. ์ ์ฅ, ์ฌ์ฉ์ ์ ์ ๋น๋ ์์ ๋ ์์ฑํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ฃจ๊ฐ ๋๋๋ฉด ๋น๊ต์ ๋จ์ํ project.json ์์คํ ์ด ์ง์ํด์ผ ํ๋ ๋ชจ๋ ๋ณต์กํ ์๋๋ฆฌ์ค๋ฅผ ์ง์ํ๋๋ก ๋ง๋๋ ๊ฒ๋ณด๋ค ๊ฐ๋จํ ๋๊ตฌ(cli ํฌํจ)๋ก ๋ณต์กํ ์์คํ ์ ์ถ์ํํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค.
๋ค์ ๋งํด์ project.json์์ ์ฌ๋๋ค์ด ์ข์ํ๋ ๋จ์ํจ์ ์ด๋ฏธ ์ฌ๋ผ์ก๊ณ ๋ชจ๋ ์ข ๋ฅ์ ํ๋ก์ ํธ์ ์๋๋ฆฌ์ค๊ฐ ์๋ ์ผ๋ฐํ๋ ๋ท๋ท ํ๊ฒฝ์ ๋ณต์กํ ํ์ค์ ์ง์ํด์ผ ํ์ต๋๋ค. ๊ทธ๋ค์ด ๋ชจ๋ ๊ฒ์ project.json์ ๊ตฌํํ๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก msbuild๋ฅผ ๋ค์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๋ค์ด ํฐ ์คํ๊ฒํฐ ๊ณต์ด ๋ ๋๊น์ง project.json์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค ํ ๊ฑธ์ ๋ฌผ๋ฌ์์ ๋น๋ ์์คํ ์ ์ ์ฒด์ ์ผ๋ก ๋ณด๋ ๊ฒ์ ํจ์ฌ ์ ํธํฉ๋๋ค.
๊ทธ๋ค์ด ์ ์ํ๋ ๋ด์ฉ์ ํ์ธํ ๋ค์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํน์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ญ์์ค. :)
@aL3891
ํ์์ ์์ ์ ์ถ๋ก ๊ณผ ๊ณ ๋ ค๋ ๋์, ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๋ถ๋ ์ด์ ๋ฅผ ๋ช ํํ๊ฒ ์ค๋ช ํ๊ณ ์ฌ๊ธฐ์ ์ ์๋ ์ ์์ ๊ณ ๋ คํ๊ณ ์ฐธ์ฌํ๋ค๋ฉด ์ ๋ ๊ทธ์ ํจ๊ป ํ ๊ฒ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ํฉ๋ฆฌ์ ์ธ ์๋ฃจ์ ์ ์ง์งํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๊ณผ์ ์์ ๋์ต๋๋ค.
์ฌ์ค, ์ด๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ 3์ผ ๋์ ์๊ตฌํ๋ ๊ฒ์ ๋๋ค. ์์ฌ ๊ฒฐ์ ๊ณผ์ ๊ณผ ์ด๋ฅผ ๋ท๋ฐ์นจํ๋ ์ฆ๊ฑฐ์ ๋ํ ํต์ฐฐ๋ ฅ. ์ด์ ๊ด๋ จํ์ฌ ์ง๊ธ๊น์ง ์ ๊ณต๋ ์ ๋ณด๋ ๊ธฐ๊ปํด์ผ ์๋์ ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ป๋๋ค๋ฉด, ๋์๊ฒ์ +10.
@aL3891 ๋น ๋ฅธ ์ง๋ฌธ์ ๋๋ค. ์ด๋ค ์ฌ๋๋ค์ ์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์์ผ ์คํ ๋์ ์ ์ฐธ์ํด์ผ ํ๋ค๊ณ ๋งํ์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ๋ง์์ด์ ๊ฐ์?
๋ชจ๋ ์ฌ๋์ ์ด๊ฒ์ด ๋ชจ๋ ์คํ ์์ค์์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค. ๋น msbuild๊ฐ ๋ ๋ซ๋ค๊ณ ๊ฐํ๊ฒ ๋๋ผ๋ฉด ๊ธฐ์กด ๋๊ตฌ๋ฅผ ๋ถ๊ธฐํ๊ณ ๊ณ์ ์งํํ์ญ์์ค. ๋ชจ๋ ํฅ๋ฏธ๋ก์ด ์ํํธ์จ์ด ๋์์ธ ์ ํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ ผ์์ ๋ชจ๋ ์ธก๋ฉด์ ๋ํ ์ฐฌ๋ฐ ์๋ก ์ด ์์ต๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๋ ํฐ ๋์ ์ง๋ถํ๋ ๊ณ ๊ฐ์๊ฒ ๋ฐ์ํด์ผ ํ์ง๋ง ๊ทธ๋ค์ ์ ์ฉ์ ๋ฐ๋ผ ์ด ๋ชจ๋ ๊ฒ์ ์คํ ์์ค๋ก ๋ง๋ค์์ต๋๋ค. ๋ค๋ฅธ ๊ฒ์ด ๋น์ ์ ์ํด ์๋ํ๋ค๋ฉด ๊ทธ๊ฒ์ํ์ญ์์ค.
@khellang์ด ๊ฒ์ํ YouTube ๋น๋์ค๋ฅผ
๊ฒ๋ค๊ฐ, ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช ํ๋ค๋ ์์ด๋์ด๋ ๋งค๋ ฅ์ ์ด์ง ์์ ๊ฒ ๊ฐ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ค์ ๋ก ์ณ์ ์ผ์ธ ๊ฒ์ฒ๋ผ ๋ณด์์ ๋...๊ทธ๋ฌ๋ ๋ค์ ์ ์ฐ์ด์์ต๋๋ค.
.NET ์คํ ๋์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ MSBuild ์ฌ์ฉ์ ๋ํ ์๋ก์ด ๋นํ์ด ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ฌ๋ฌ ๊ณณ์์ ๋ฌธ์ ๋ฅผ ์ ๊ตฌ๋ถํ๊ณ ์์ง๋ง MSBuild๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋๋ต์ ์ผ๋ก ์คํ ๋์ ์ ๋ฐ๋ฅด๋ฉด ํจ๊ณผ์ ์ด๊ธฐ ์ํด์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ๋ ์์์ผ ํ๋ฉฐ ๋จ์ํ ๋ค๋ฅธ ๋ถ๋ถ์ ์ค์ผ์คํธ๋ ์ด์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
ํํธ, ๋๋ ์ด๊ฒ์ด ๋ค๋ฅธ ์ค๋ ๋์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋์ค์ ์ปค๋ฎค๋ํฐ์ ๊ณต์ ๋๋ "๋ด๋ถ ์์ง๋์ด๋ง ๊ฒฐ์ "์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ MS๊ฐ ์์ ํ ์คํ ์์ค๋ฅผ ์ป์ง ๋ชปํ๋ค๊ณ ์๊ฐํ๊ฒ ๋ง๋ญ๋๋ค. ๋ง์ฝ ๊ทธ๋ค์ด ์ด๋ฌํ ํ ๋ก ์ ๊ณต๊ฐ์ ์ผ๋ก ํ๋ค๋ฉด(๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ด ์ด๋ฌํ ๋ ผ์๊ฐ ์ผ์ด๋๊ณ ์๋ค๋ ์ฌ์ค์ ์๊ฒ ํ๋ค๋ฉด) ๋ ๋๋ผ์ ์ ๊ฒ์ด๊ณ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ต์ ์ป์์ ๊ฒ์ ๋๋ค. ๋ง์ ์ดํด ๊ด๊ณ์(MSBuild์์ ๋ฉ์ด์ง์ผ๋ก ์ธํด ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฐ๋ ๊ณ ๊ฐ)๊ฐ ๋ ์ผ์ฐ ์์ ์ ์ ์ฅ์ ๋ถ๋ช ํ ์๋ฆด ์ ์์๊ณ ์ปค๋ฎค๋ํฐ๋ ๋ฌธ์ /์ฐ๋ ค ์ฌํญ ๋ฐ ์๋ฃจ์ ์ ๋ํด ๋ณด๋ค ์๊ธฐ ์ ์ ํ ๋ฐฉ์์ผ๋ก ๋์ํ ์ ์์์ต๋๋ค. ์ ์๋ ๋ฌธ์ ๋ค...๋์ "๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์ ์ ์ผํ ์ ํ"์ด์์ต๋๋ค. ์ด๊ฒ์ด ๋น์ ์ด ์ํํธ์จ์ด๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ ์คํ ์์ค๋ก ๋ง๋๋ ์ด์ ์ ๋๋ค. ์ด๊ฒ์ "์ถฉ๋ถํ ์๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉด ๋ชจ๋ ๋ฒ๊ทธ๋ ์๋ค"๋ผ๋ ๊ฒฉ์ธ์ด ์๋ํ๋ ๋ฐฉ์์ ๋๋ค. MS์ ์์ง๋์ด๋ง ํ์ด ์ผ๋ง๋ ํฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ ์ฒด ์ปค๋ฎค๋ํฐ๋ณด๋ค ์์ผ๋ฉฐ ์ปค๋ฎค๋ํฐ์๋ ์์ง๋์ด๋ง ํ์ด ์์ ํ ์ ์๋ค๊ณ ๊ฒฐ์ ํ ๊ฒ๊ณผ ๊ฐ์ ๋์ ์ ์ง๋ฉดํ ์ ์๋ ์ง์งํ๊ฒ ์ข์ ์ธ์ฌ๊ฐ ์์ต๋๋ค. ...์๋ง๋ ๊ทธ๋ค์ ์ํ ๊ฒ์ด์ง๋ง ์ปค๋ฎค๋ํฐ ์ ์ฒด๋ ์๋๋๋ค. ์คํ ์์ค๋ ์์ง ๊ฐ๋ฐ๋์ง ์์ ์์๊ณผ ์ฌ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ฉด์ ๋ด๊ฐ ์ด๋๊ฐ์์ ๋ญ๊ฐ๋ฅผ ๋์น ๊ฒ์ ์๋๊น?
@shederman ์ ๋ ๊ธฐ๋๊ถ์ ๊ฐ์ง ์ฌ๋๋ค์ด ์คํ ๋์ ์ ์ฐธ์ํ๊ณ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ(๊ฑฐ์ ํ์คํ ์ฌ๊ธฐ์ ๋งํฌ๋ ๊ฒ์ ๋๋ค)์ ์ฃผ์ํ ๊ฒ์ ์ ์ํฉ๋๋ค.
์คํ ๋์ ์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ฌ๊ธฐ๋ก ์ด๋ํ์ญ์์ค: https://live.asp.net/
์บ๋ฆฐ๋์ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ ํ๋ก์ ํธ ์ ์ ๋ณ๊ฒฝ์ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
@shederman ์ ๋ ์ ๊ฐ ๋๊ตฌ์๊ฒ ๋ฌด์์ ํด์ผ ํ ์ง ๋งํ ๊ถํ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ ๊ฐ ๋ฌด์์ ํ
์์ ๋งํฌ๋ ์ต์ on.net ์ํผ์๋ ๋ ๋ช ๊ฐ์ง ์ข์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ์ต๋๋ค.
์์ผ๋ก ๋ช ๋ฌ ๋์ ๋ง์ ์กฐ์น๋ฅผ ์ทจํ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋์ roslyn ํ๋ก์ ํธ ์์คํ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ ์์ต๋๋ค.
๋๊ตฐ๊ฐ on.net ์ํผ์๋์ TL;DR์ ๊ฐ์ง๊ณ ์์ต๋๊น?
๋๋ ํ๋ก๊ทธ๋๋ฐ์ ๊ดํ ๋น๋์ค๋ฅผ ๋ณด๋ ๊ฒ์ _์ซ์ดํ๋_ ๋งค์ฐ ์ด๋ก์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ธ์ ๋ ๋ฌธ์์ฃผ์ธ์๐
๋น์ด๋จน์ ์ง์ฅ๋ถ! ์ ๋ ํ์ต ๋ฐฉ๋ฒ์ ์์ด์ IDE๊ฐ ์๋๋๋ค. ๐ฑ
๋๋ ํ๋ก๊ทธ๋๋ฐ์ ๊ดํ ๋น๋์ค๋ฅผ ๋ณด๋ ๊ฒ์ ๋งค์ฐ ์ซ์ดํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ธ์ ๋ ์ง ๋ฌธ์ ์ฃผ์ธ์ :์ค๋ง์ผ:
๋ญ๊ฐ ๋ฌธ์ ์ผ? ์๊ฐ์ _๋จ_ ํ ์๊ฐ์ ๋๋ค. :์ด๋ฅผ ๋๋ฌ๋ด๊ณ ์๋ค:
@rhires
๋ ์. ๊ทธ๊ฒ์ ์๋ง๋ ์ง๋ 3์ผ ๋์ ์ด ๋ฌธ์ ์ ๊ดํด ๋ณธ ๊ฐ์ฅ ์ข์ ๊ฒ์๋ฌผ ์ค ํ๋์ผ ๊ฒ์ ๋๋ค!
์ต์ฒจ๋จ ๊ธฐ์ ์ ์ ์งํ๊ธฐ ์ํด ์ง๋ถํด์ผ ํ๋ ์์ ๊ฐ๊ฒฉ์ด์ง๋ง ๊ฐ์์ ๋น์ฉ์ ๋๋ค. ;)
๊ธฐ๋ณธ ์ ๋ณด:
ํ์ xamarin๊ณผ ๊ฐ์ ๋ด๋ถ ๊ณ ๊ฐ๊ณผ ์ธ๋ถ ๊ณ ๊ฐ ๋ชจ๋๋ก๋ถํฐ ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ project.json์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์์ํ๊ณ project.json์ด ๊ธฐ์กด ํ๋ก์ ํธ๋ ๋ฌผ๋ก ๋ค์ดํฐ๋ธ ๋ฐ ๊ธฐํ ๋๊ตฌ ์ฒด์ธ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋๊ตฌ ์ฒด์ธ๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ์ต๋๋ค. Android์ ๊ฐ์ ํ๋ซํผ์ msbuild์์ ์๋นํ ์์ ์ฝ๋(๋๋ ๊ฐ๋
)๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ํ์ํ๊ณ ์์ฉํ ์ ์๋ ์๊ฐ๋งํผ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฏธ๋ฃจ๊ณ ํฅํ ์์
(xamarin ์คํ๋์ค ๋ฐ ๋ชจ๋
ธ ๊ฐ๋ฐ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ ํ ๋ฐ Visual Studio ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ํฌํจ)์ ์ง์ฐ์ํต๋๋ค.
๊ทธ๋์ ๋์ ๊ทธ๋ค์ msbuild๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋ ์์คํ ์ ์ ํํ์ง๋ง ์ฌ๋๋ค์ด ์ข์ํ๋ ๊ฒ์ ์ ์์คํ ์์ ๊ฐ์ ธ์์ต๋๋ค. ํ์ด๋ฐ์ ๊ดํด์๋, RC1์ด ๋ง๋ค์ด์ก์ ๋๋ xamarin ์ธ์๋ ์๋ ค์ง์ง ์์์ง๋ง ์ง๊ธ์ ๋ง์ ๊ฒ์ ๋ฐ๊ฟจ์ต๋๋ค.
๊ทธ๋ค์ ๋ํ ์ฌ๋๋ค์ด project.json์ ๋งค์ฐ ์ข์ํ๋ค๋ ์ฌ์ค์ ์๊ณ ์์ผ๋ฉฐ, ๊ทธ ์ฅ์ ์ ์ต๋ํ ์ ์งํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์๋ง๋ msbuild๊ฐ ๋์์ ํตํด project.json ํ์ผ๋ ์ฝ์ ์ ์๋๋ก ํ ์๋ ์์ต๋๋ค. Cli ๋ฐ VS-less ์๋๋ฆฌ์ค๋ ํต์ฌ ์๋๋ฆฌ์ค๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๊ทธ๋ค์ ๋ํ ๋ค๋ฅธ ๋น๋ ์์คํ ์ ๋ํด ์ฝ๊ฐ ์ด์ผ๊ธฐํ๋ฉฐ ๋ชฉํ๋ ์ฌ๋๋ค์ด ์ํ๋ ๊ฒฝ์ฐ msbuild ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๊ทธ๋ค์ RC2์ ๊ฑฐ๊ธฐ์ ํฌํจ๋ ๋ด์ฉ์ ๋ํด ์กฐ๊ธ ์ด์ผ๊ธฐํ๊ณ ํ๋ก์ ํธ ์์คํ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ ๊ด๋ จํ์ฌ ๋ค๋ฅด๊ฒ ํ ์ ์์๋ ์ผ, ๋ ์ผ์ฐ ๊ณต๊ฐํ๊ณ GitHub ๋ฑ์์ ๋ ๋ง์ ๋ํ๋ฅผ ๋๋๋ ๊ฒ์ ๋ํด ์๊ฐํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ง๋ ์ฌ๊ธฐ์ ๋ ๋ฏธ์ธํ ํฌ์ธํธ๊ฐ ๋๋ฝ๋์์ ๊ฒ์ ๋๋ค.
@aL3891 - ํ๋ฅญํ ์์ฝ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์์ผ๋ก ๋์ด๊ฐ๋ ์ฌ๋ก๊ฑด์ด์์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ํ ์คํธ ์์ฝ์ ์์ฑํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด "๋ฐฐ์ฐ๊ณ " ์๊ณ , ๊ทธ๋ค์ด ์ข์ ์ผ์ด๋ผ๊ณ ๋งํ๋ฉด์๋ ์ฌ์ ํ ์์ ์ ๊ณผ์ ์ ๊ณต๊ฐํ๋ ๋ฐ ๋ถํธํจ์ ๋๋๋ค๋ ๊ฒ์ ์์์ฐจ๋ ธ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ด ๊ทธ๋ค์๊ฒ ์ข์ ํ์ต ๊ฒฝํ์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๋ณํ๋ฅผ ๋ณด๊ณ ๊ทธ ์ํ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
@aL3891 ์์ฝ ๊ฐ์ฌํฉ๋๋ค!
์ต์ฒจ๋จ ๊ธฐ์ ์ ์ ์งํ๊ธฐ ์ํด ์ง๋ถํด์ผ ํ๋ ์์ ๊ฐ๊ฒฉ์ด์ง๋ง ๊ฐ์์ ๋น์ฉ์ ๋๋ค. ;)
์,ํ์ง๋ง ๋๋ ์ถํ ๊ฐ์ฅ์๋ฆฌ์ ์๋์์, ๋๋ ๊ฑฐ๊ธฐ์์ ์ฝ๊ฐ์ ๋ท๋ฉด์ ์ ์ง. ๋ ์์ ์ ์๋ฅด์ง ์์ ๋งํผ ์ถฉ๋ถํ ๋ค๋ก, ๋๋ ์ ์ด๋ RC1 ์ดํ .NET Core๋ฅผ ์ฑํํ์ ๋ ์๊ฐํ์ต๋๋ค.
@shederman ์ "post-RC1"์ด ๊ธฐ๋ณธ์ ์ผ๋ก nightlies ๋๋ ์์ค๋ผ๋ ์ ์ ๊ฐ์ํ ๋ ์คํ ์ดํฌ๋ฅผ ์ ํํ ์ด๋ป๊ฒ ์ข์ํฉ๋๊น?
@neoKushan ์ ๋ RC1์ด ์ถ์๋ ์ดํ์ .NET Core๋ฅผ "์ฑํ*ํ์ต๋๋ค*. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๋ฐ๋๋ผ RC1์ ์ฌ์ฉ ์ค์ ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์คํ ์ดํฌ๋ฅผ ๋ฏธ๋์ ๋ ์ด๋ก ์ข์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๋ฆฌํ์ง ์์ ํ ์กฐ๊ฐ์ผ๋ก ์๋ฅด๊ณ ์จ์ดํฐ๋ฅผ ์ํด ์๋ฆฌ์น๊ณ ์์ต๋๋ค.
ํ์ง๋ง ๊ด์ฐฎ์ต๋๋ค. ์จ์ดํฐ์ ๋ํ ์ ํ๋ฅผ ์ค๋จํ๊ณ ์ด์ maitre'd(Microsoft ๊ทธ๋ฃน Microsoft ํํธ๋ ๋ด๋น์)์๊ฒ ์ ํ๋ฅผ ๊ฑธ์ด ์ ๋ฅผ ๋ง๋๋ฌ ์์ ์์ฌ ๊ฒฐ์ , ์ ๋ณด ๋ณด๊ธ ๋ฐ ํ๋ซํผ ๋ฐฉํฅ์ ๋ํด ๋ ผ์ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ์ ๋ํด ์ถฉ๋ถํ ์ ๋ณด, ๋๋ฌด ๋ง์ ์ด๋ก ๊ณผ ์ถ์ธก์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ์ถ์ง ์์ ๊ฒ์ผ๋ฅธ ์ฌ๋๋ค์ ์ํ ๋น ๋ฅธ ์์ฝ:
msbuild
์์ต๋๋ค.dotnet build
๋ฟ๋ง ์๋๋ผ msbuild
์์ต๋๊น? ์ ๋ @shanselman์ด ์ด๋งํ๋ 'ํ๋์ .net'์ dotnet add reference MyAssembly
๋๊ตฌ๋ฅผ ์ป์ ์ ์์ต๋๊น?๋๋ ์ฐ๋ฆฌ๊ฐ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ๋๊น์ง ์ด ๋ฌธ์ ๋ฅผ ๋ซ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ @shanselman์ด ์ด๋งํ๋ 'ํ๋์ .net'์
์ด๊ฑฐ ? :์ค๋ง์ผ: :+1: :+1: :+1:
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ๋๊น์ง ์ด ๋ฌธ์ ๋ฅผ ๋ซ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง ํ์ง๋ง... ๊ทธ๋ผ ๋ ๋ด ์ธ์์ ์ด๋ป๊ฒ ํ ๊น??? :์ธ๋ค::์๋๋ค:
@RehanSaeed
"์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๊ฒ" ๋ชฉ๋ก์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
์ฐ๋ ค ์ฌํญ์ ์ ๊ธฐํ๊ธฐ ์ ์ "์์ง ๋ชจ๋ฅด๋ ๊ฒ" ๋ชฉ๋ก์ด ๋ช ํํด์ง ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น?
์๋๋ฉด ๊ทธ๋ฅ ๋ฅ์น๊ณ ๋นจ์์ผ ํ ๊น์?
๋ง์ ๋ถ๋ค์ด ์ํ์๊ฒ ์ง๋ง... ๐
๋ด๊ฐ ๋ณธ ๋ชจ๋ ๊ฒ์์ ๊ฒฐ์ ์ 100%์ด๋ฉฐ ๋ค์์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด "์ฐ๋ฆฌ๊ฐ ์์ง ์์ง ๋ชปํ๋ ๊ฒ"์์ ๋ ์ด์ ๋ฌด์์ด ํ์ํฉ๋๊น?
@shederman On.Net ๋น๋์ค๋ฅผ ๋ณด๊ณ ์ถ์ ์๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๊ฒฐ์ ๋ค์ ๋ง์ ์ถ๋ก ์ ์ ๊ณตํฉ๋๋ค.
fyi: ์ ๋ ๋ณดํต ๋ ๋นจ๋ฆฌ ๋ณด๊ธฐ ์ํด ์๋๋ฅผ 1.5๋ก ๋ณ๊ฒฝํฉ๋๋ค. https://www.youtube.com/watch?v=N9MteJH-HsQ
XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ๊ณ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋๊ตฌ๊ฐ ํ์ผ ๋ด์ฉ์ ์ด๋ค ์ข ๋ฅ์ ์์๋ก ๋ฐฐ์นํ๋๋ก ์ ์/๊ถ๊ณ /์๊ตฌํ ์ ์๋์ง ๋ถํ๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ "์๊ฐ์"์ ํ์ฉ๋๋ ์์๊ฐ ์๋๋๋ค. ๋ด๊ฐ proj ํ์ผ์์ ๋ฐ๊ฒฌํ ๊ฐ์ฅ ํฐ ๊ณ ํต์ ํ์ผ์ ๋ณํฉํ๋ ๋ฐ ์ด๋ ค์์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ต์ํ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌํ์ญ์์ค. ์, ์ฌ์ ํ ๊ฐ๋ ๋ณํฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ์ธ์ ๋ ์ง "ํธ์ฌํ๋" ๋์ "๊ฐ๋"์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค.
@MelGrubb ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ํ ๊ฐ์ง๋ ์ ํ๋ก์ ํธ ๋ ์ด์์์ด ์กด์ฌํ๋ ๋ชจ๋ ํ์ผ์ ๋์ดํ์ง ์์ผ๋ฉฐ project.json์ด ์ํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์์ผ๋ก ๊ด๋ฆฌํ ๊ฒ์ผ๋ก ์์๋๋ ๋ชจ๋ ๊ฒ์ TOML๋ก ๋ฌธ์ํ์ญ์์ค.
JSON์ ๊ตฌ์ฑ์ ๋ํด ์๋ฌด ์๋ฏธ๊ฐ ์์ต๋๋ค. XML๋ณด๋ค ํจ์ฌ ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๊ด์ฌ ์๋ ์ฌ๋์ RC2 ๋นํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค(์์ง ๋ณผ ์ ์๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์์).
๋ด 2์ผํธ, fwiw:
๋๋ project.json์ ๋จ์ํจ์ ์ข์ํ์ต๋๋ค. ๋ค์์ MSBuild ๊ธฐ๋ฐ ๋๊ตฌ์์ ๋ณด๊ณ ์ถ์(๊ทธ๋ฆฌ๊ณ ์ํ์ง ์๋) ๊ฒ์ ๋๋ค.
@jtbennett
"ํ์ง๋ง VS๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ฌ๋๋ค์ VS ๋๊ตฌ ์ค์ ์ ๋ณผ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ค์ ์ ๋ณ๋์ ํ์ผ์ ์ํฉ๋๋ค."
์ถ๊ฐํ๊ธฐ ์ํด ์ด์ msbuild ํ์ผ์ ๋ฃ์ด์ผ ํ ๋ค๋ฅธ ํ์ผ์๋ ๋ง์ ํญ๋ชฉ์ด ์์ต๋๋ค. ๋ฌด์๋ ๊ฒ์ ํ๋ก์ ํธ ํ์ผ์ด ๊ณ์ ์ง์๋๋ค๋ ์ข์ ์์ ๋๋ค. VS์์ ๋น๋ํ์ง๋ง ๋ช ๋ น์ค์์๋ ๋ณผ ์ ์๋ ํ๋ก์ ํธ๊ฐ ๋ช ๊ฐ์ธ์ง ๋งํ ์ ์์ต๋๋ค.
@jtbennett
MSBuild๋ VS ๋๋ ๋ค๋ฅธ IDE/ํธ์ง๊ธฐ์ ์ฐ๊ฒฐ๋์ด์๋ ์ ๋ฉ๋๋ค.
VS์ ์ ํ ์ฐ๊ฒฐ๋์ง ์๊ณ Nuget์ ํตํด ์ ๋ฌ๋๋ฏ๋ก ์๋ฌด ๊ฒ๋ ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค.
MSBuild(๋๋ MSBuild๊ฐ ํฌํจ๋ dotnet cli) ์์ฒด๋ ๋ช ๋ น์ค๋ก ์ค์นํ ์ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ค๋๋ถํฐ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉฐ ์ผ๋ฐ์ ์ธ ํจํค์ง ์์ค๋ฅผ ํตํด ์ฌ์ ํ dotnet cli๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
MSBuild๋ ๋ช ๋ น์ค์ ๋งค์ฐ ์น์ํด์ผ ํฉ๋๋ค.
_MSBuild_๋ ํจ๊ณผ์ ์ผ๋ก ๋น๋ ์์ฒด์ ์ผ๋ถ์ด๋ฏ๋ก ๋ช ๋ น์ค ์ต์ ์ ์ ๋ฌํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ dot(CLI)๋ ๋ถ๋ช ํ ๋ช ๋ น์ค ์นํ์ ์ด๋ฉฐ ์ด๊ฒ์ด ๋น์ ์ด ์ํ๋/ํ์ํ ์ ๋ถ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
VS Code(๋๋ ๋ค๋ฅธ ๋น VS ํธ์ง๊ธฐ)์์ .NET Core ํ๋ก์ ํธ์์ ์์ ํ ๋ csproj ํ์ผ์ด๋ ๋ค๋ฅธ ๊ณณ์์ VS ๊ด๋ จ ์ ๋ณด๊ฐ ํ์ํ์ง ์์์ผ ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์์ ํ ๋์ํฉ๋๋ค. "์๋ก์ด" ํ๋ก์ ํธ ํ์์ด ํจ์ฌ ๋ ๋จ์ํ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ๋ก์ ํธ ํ์ผ์ ์ดํดํ๊ธฐ ์ฝ๊ณ ์์ผ๋ก ์ฝ๊ฒ ํธ์งํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ทธ๋ค์ ์ด๊ฒ์ด ๊ทธ๋ค์๊ฒ๋ ์ฐ์ ์์๋ผ๊ณ ๋งํ์ต๋๋ค.
๊ธฐ๋ฅ/๋ฅ๋ ฅ์ ์ฐจ์ด๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง xml๋ณด๋ค json์ ๋ํ ๊ฐํ ๊ฐ์ธ์ ์ ํธ๊ฐ ์์ต๋๋ค. ๋ํ json์ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์คํ์์ ์ค๋ ๊ฐ๋ฐ์๋ฅผ ์ ์นํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๋๋ค์ด ํด๋ ํ๊ธฐ ์ด๋ ค์ด ํฐ XML ํ์ผ์ ๊ฐ์ฅ ๋จผ์ ๋ณด์ง ์๊ณ .NET์ผ๋ก ๋์ด๋ค์ด๋ ๊ฒ์ ์ถฉ๋ถํ ์ด๋ ต์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก XML์ด JSON๋ณด๋ค ํด๋ ํ๊ธฐ๊ฐ ํจ์ฌ ๋ ์ฝ๋ค๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ์ง๋ง ๊ทธ ์ค ๋ง์ ๋ถ๋ถ์ด ์คํค๋ง(๋ ์ค ์ด๋ ์ชฝ์ด๋ )๊ฐ ์ผ๋ง๋ ์ ์ค๊ณ๋์๋์ง์ ๋ฌ๋ ค ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ๊ณผ๊ฑฐ์ "Element"์ ๊ฐ์ ์ ๋ง ๋์ฐํ ์์ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ ๋ง ๋์ฐํ XML์ ํด๋ ํด์ผ ํ์ต๋๋ค. MSBuild๊ฐ ๊ทธ๋ฐ ๋ฉด์์ ๊ฒฐ์ฝ ์ต์ ์ ๋ฒ์ฃ์๋ ์๋์ง๋ง, ํ์คํ ๋ง์ ๋ถ๋ถ์ด ํ์ํฉ๋๋ค. JSON์ ์ฌ์ฉํ๋ฉด ํค ์ด๋ฆ์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ผํ์ ์ผ๋ก, ๋๋ ์ต๊ทผ ๋๊ตฐ๊ฐ๊ฐ JSON์ XML ์์์ ํฌํจ์ํค๋ ค๋ ํ๋ก์ ํธ์์ ์์ ํด์ผ ํ์ต๋๋ค.
RC2 ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์ฌ๋ผ์์ต๋๋ค: https://blogs.msdn.microsoft.com/webdev/2016/05/16/announcing-asp-net-core-rc2/
.net ์ฝ์ด ๊ฒ์๋ฌผ๋ ์ฌ๋ผ๊ฐ๋๋ค https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-net-core-rc2/
@neoKushan ๊ฐ์ฌ
@michaelvolz ๋๋ https://github.com/dotnet/cli/blob/rel/1.0.0/Documentation/specs/runtime-configuration-file .md
System.GC.Server(์ด์ : gcServer) - ์๋ฒ GC๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋ถ์ธ(๊ธฐ๋ณธ๊ฐ: true).
๊ทธ๋ฆฌ๊ณ
deps ํ์ผ์ ๋ค๋ฅธ ํ์์ ์ฌ์ฉํ ์ ์์ง๋ง ์ด๋ฏธ JSON ํ์๋ฅผ ํธ์คํธ์ ํตํฉํ๊ณ ์๋ค๋ฉด ์ฌ๊ธฐ์์ ๋ค์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ ํด ๋ณด์ ๋๋ค.
_project config_์๋ XML์ด ์์ง๋ง _runtime config_์๋ .json์ด ์๋ ๊ฒ์ด ์ฝ๊ฐ ์ด์ํด ๋ณด์ ๋๋ค.
ํ๋ก์ ํธ์๋ XML์ ์ฌ์ฉํ์ง๋ง ๋ฐํ์์๋ .json์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฝ๊ฐ ์ด์ํ๊ฒ ๋ณด์ ๋๊น?
์ง๊ธ ํฉ๋๊น? :์์:
@Mike-EEE ์ข์ ์ง์ ! ๋๋ ๋ด๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด ์ ๋ฐ์ดํธํ์ต๋๋ค:ํค์ค:
@neoKushan ์๋ ์ฒ์์๋ ๋น์ ์ด ์ณ์์ต๋๋ค. :smile: ๋๋ ๋ด ๋์์ ์ด๊ณ ๊ฒฝ๊ณ์ ์ ๋น์์ฐ์ ์ธ ๋ฐฉ์์ผ๋ก ๋น์ ๊ณผ ๋์ํ์ต๋๋ค. :smirk_cat:
ํ์ง๋ง ์... ์๋ฃจ์ ๋ด์์ ๋ค๋ฅธ ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฏธ์น ์ง์ด๋ผ๋ ๋ฐ 100% ๋์ํฉ๋๋ค. ์ ๋ฐ์ ์ผ๋ก ๋จ์ผ ํ์์ ์ฌ์ฉํ๋ฉด ๋ณต์ก์ฑ, ์ปจํ ์คํธ ์ ํ, ๋ฐ๋ผ์ _ํผ๋_์ด ์ค์ด๋ญ๋๋ค. MSBuild๊ฐ ๋ค๋ฅธ ํ์์ ํ์ฑํํ๊ณ ํ์์ ๊ตฌ์ ๋ฐ์ง ์๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ ์ด์ ์ค ํ๋์ ๋๋ค. ์, ๊ฒฝ๊ณ , ๋ป๋ปํ ํ๋ฌ๊ทธ. :์ด๋ฅผ ๋๋ฌ๋ด๊ณ ์๋ค:
๋๋ ๋น์ ์ ์ฑ์ค๋ฌ์ด ์ฑ์ @Mike-EEE์ ์ถ์ข ์๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ msbuild์ ๋ฌถ์ฌ ์๊ธฐ ๋๋ฌธ์ ๋ ์ข๊ฒ ๋ง๋ค๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค @sandorfr ... ๊ฑฐ๊ธฐ์ ์๋ ์ค๋ ๋์ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํด ์ฃผ์ธ์(๋ฆฌ์ก์ /:+1:์ด๋๋ผ๋). ๋๋ ๊ทธ๊ณณ์์ ์ฝ๊ฐ ์ธ๋ก์ด ๋๋์ด ๋ค๊ณ ํ์คํ ๊ฒฝ์์ ์์ญ์ผ๋ก ๊ฑธ์ด๊ฐ๊ณ ์์ต๋๋ค! ๋ด ๊ด์ ์์ ๋ณผ ๋ ๋ง์ ๊ณ ๊ฐ์ด ์ด๋ค ์ด์ ์์๋ ๋ด ์ ํ์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ค๋ฉด ์ฑํ/ํธ๊ฐ๋/์ฌ์ฉ์ฑ/ํธ๊ฐ๋๋ฅผ ๋์ด๊ธฐ ์ํด ๋ด ์ ํ์ ๊ฐ์ ํ๋ ๋ฐ ๋งค์ฐ ๊ฐ๋ฐฉ์ ์ผ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ด๊ฐ ์ฑ ์์ง๋ ๊ฒ ์๋๋๊น. :stuck_out_tongue:
@Mike-EEE ์ฐ๋ ๋๋ฅผ ์ฝ์๋๋ฐ ์ง๊ธ ๋๋ฌด ์ฐ์ธํด์... ๋น์ ์ ๋ ๊ฑฐ์ ๋ง์ธ๋์ ๋ ๊ฑฐ์ ์ธ๊ณ์ ๋ฐ์ ๋ค์์ต๋๋ค :D.
Microsoft์ ์ฌ๋๋ค์ด ๋น์ ์ ์์ด๋์ด์ ๋ ๊ฐ๋ฐฉ์ ์ด๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ผ์ด ๋ ๊ฐ๋จํ๊ณ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด์ง๊ณ ๋ด ํ๋ก์ ํธ๋ฅผ ํธ์งํ๊ธฐ ์ํด Gui๊ฐ ํ์ํ์ง ์์ ๊ฒฝ์ฐ์๋ง msbuild๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค(์, json intellisense๊ฐ ํจ์ฌ ๋ ์ข์์ต๋๋ค. ์ผ๋ฐ์ ์ธ Visual Studio ํ๋ก์ ํธ ํญ๋ณด๋ค).
๋น์ ์ ๋ ๊ฑฐ์ ๋ง์ธ๋์ ๋ ๊ฑฐ์ ์ธ๊ณ์ ๋ฐ์ ๋ค์์ต๋๋ค :D.
Wellllll-said @sandorfr ... wellllll-๋งํ์ต๋๋ค.
์คํ ๋์ ์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ฌ๊ธฐ๋ก ์ด๋ํ์ญ์์ค: https://live.asp.net/
์ข์, ๋๋ ์์ ํ ๊ฒ์ผ๋ฆ๋ฑ ์ด์ด๊ณ ๋ง์นจ๋ด ์ด๊ฒ์ ์ง๊ธ ํ์ธํ์ต๋๋ค. ๋ค์ ์คํ ๋์ ์ด ๋ค์์ฃผ์ธ ๊ฒ ๊ฐ์ฃ ? ์ด๋ฒ ์ฃผ์ ํ์ด ๊ฑด๋๋ฐ๋์?
@Mike-EEE ํฅ๋ฏธ๋กญ๊ฒ๋ ์ธ์ ๊ฐ๋ ์ค๋ ๋ฐค์ ํ์คํ ์์ ๋์ด ์์๋๋ฐ ๋ณ๊ฒฝ๋์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋๋ @shanselman์ ํธ์ ์์ผ๋ฉด ์ข๊ฒ ์ง ๋ง RC2๊ฐ ์ด์ ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์ฃผ์๋ ๊ฑด๋๋ฐ๊ณ ์ถ์ดํ ๊ฒ์ ๋๋ค.
์ค์ผ์ด ์ฟจ @neoKushan ... ์ ์ ์ ์ด ํ ๋ฒ๋ง ๋จธ๋ฆฌ์
์ฌ๋์์:
jongallowway [9:31 AM] ASP.NET Community Standup์ด ๋ด์ผ ์ทจ์๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. shanselman๊ณผ damianedwards๋ ๋ชจ๋ OSCON์ ์์ต๋๋ค.
...
davidfowl [9:34 AM] damianedwards: ๋์์์ง๋ง shanselman์ oscon์ ์์ต๋๋ค
...
jongloway [9:46 AM] ๋ค, ASP.NET Community Standup์ 5/17๋ก ํ์คํ ์ทจ์๋ฉ๋๋ค. ์ฌ์ดํธ๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค.
@Mike-EEE๋ ์ฐ๋ฆฌ์ ๋ชจ๋ ... ๋ถ๋ง์ ์ฒ๋ฆฌํฉ๋๋ค.
๐
์์ฌ์ค๋ฌ์ด ์ ์ด ๋จ์ ์๋ ๊ฒฝ์ฐ: https://twitter.com/shanselman/status/732585321775267842
๊ฑด๋๋ฐ์ด์ผ ํฉ๋๋ค. ์ ๋ #vslive์ OSCON์ ์์ต๋๋ค.
project.json์์ ๋ด๊ฐ ์ฆ๊ฒจ ์ฌ์ฉํ๋ ๊ฒ์ด ํ ๊ฐ์ง ์์ต๋๋ค. ๋ชจ๋ ํ์ผ์ด ํ๋ก์ ํธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด ์์ผ๋ฉฐ, ๊ฐ ํ์ผ์ ๋ช ์์ ์ผ๋ก ํฌํจํ ํ์๊ฐ ์์ต๋๋ค. ๋๊ท๋ชจ ํ๋ก์ ํธ(์์ฒ ๊ฐ์ ํ์ผ์ ์๋ฏธํจ)์ ๊ฒฝ์ฐ ๋ณํฉ ํ๋ก์ธ์ค๋ XML ๋๋ฌธ์ ์ ๋ง ๊ณ ํต์ค๋ฌ์ ์ง๋ง ๋ชจ๋ ํ์ผ์ด csproj์ ๋์ด๋์ด ์๊ธฐ ๋๋ฌธ ์ด๊ธฐ๋ ํฉ๋๋ค.
์ด ์ธก๋ฉด์์ ๊ฐ์ ์ฌํญ์ด ์๋์ง ์๊ณ ์์ต๋๊น?
@pierrus ๋ชจ๋ ํ์ผ์ด csproj ๋ด๋ถ์ ๋์ด๋์๋ ์์ ๋ก ๋์๊ฐ๊ณ ์ถ์ง ์๋ค๊ณ ์ธ๊ธ๋์์ต๋๋ค.
@MaximRuiller OK, ๊ทธ๊ฒ์ ๋ชฐ๋์ต๋๋ค.
@MaximRouillerํ์ง๋ง ๊ทธ๋ค์ ํ MSBuild์์์ด ์ ๋ ๋ฐ์ง โข, I ํ๊ท ๋น๋ ๋๊ตฌํ๋ ์ผ์ ๋ค์ ๊ฐ๊ณ ์ถ์ด. ๐
_์ ์ฌ ๋๋ํ ๊ทธ ๋ฒ ๊ฐ ๋๋ฐํด๋ฃจํฌ, ์ ์ฌ ๋๋ํ ๊ทธ ๋ฒ ๊ฐ ๊น๋ฐํด,
์ ์ฌ ๋๋ํ ๊ทธ vegal thrakatulรปk agh burzum-ishi krimpatul._
@shederman ์ ๋ ๋ด์ค์ ๋ํ ์ฒซ ๋ฐ์๋ถํฐ ์ ๊ด์ ์ ์กฐ์ ํ์ต๋๋ค.
๋ด ์๊ฐ์ ๊ทธ๋ค์ ์ฒ์์ project.json
ํ์์ ์ ๊ณตํ๊ธฐ๋ฅผ ์ํ์ง๋ง csproj/Xamarin์ผ๋ก ๋ชจ๋ธ์ ์ ๊ทํํ๋ ค๋ฉด ํ๋ ์์ํฌ๋ฅผ ๋ ์ค๋ ํธ์ํด์ผ ํฉ๋๋ค. ๋ ๋น ๋ฅธ ์ด๋์ csproj๋ก ๋ค์ ๋ณํฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ๋ค์ csproj ๋ด๋ถ์ ์์ํ "๋ฐ์ดํฐ๋ง"์ ์ ์งํ๋ฉด์ ๋ณ๋์ ํ์ผ์ ์๋ก์ด ๋ฐฉ์์ ์ ์งํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ํ๋ RC2์ ๋ฐฉ๋ํ ์์
์ ์ค๋ช
ํฉ๋๋ค.
๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์๋ ์์ฑ์ ์ด๋ํ๊ณ ๋ฉ์ง ์ ๊ธฐ๋ฅ์ ๋ณ๋์ ํ์ผ์ ๋ณด๊ดํ๋ค๋ฉด? ์ฐ๋ฆฌ๋ ์ ๋ง ์๋ฌด๊ฒ๋ ์์ง ์์ต๋๋ค. ์, ์ฐ๋ฆฌ๋ ๊ดด๋ฌผ์ ๋ค์ ๊ฐ ๊ฒ์ ๋๋ค... ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋๋ฌด ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ง ์์ต๋๋ค.
์ด์ ๋ํ ๋ด๋ถ ์ง์์ด ์์ต๋๋ค. ์ด๊ฒ์ ์์ ํ ์ ์ถ์ธก์ ๋๋ค.
์ด์จ๋ ... ์ฐ๋ฆฌ๋ ๋ ์ด์ ์ฐ๊ฐ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ก ๋๋์ง ์์ต๋๋ค. ๊ทธ๋ค์ด project.json์์ csproj post-RTM์ผ๋ก ์ ํํ ์ค๋น๊ฐ ๋์๋ค๋ฉด ๋ ํฐ ๋ณ๊ฒฝ ์ฌํญ์ด post-RTM์์๋ ๋ฆด๋ฆฌ์ค๋ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
MSํ ์ธ์๋ ์๋ฌด๋ ๋ชจ๋ฅด๋ ๋ณํ.
@MaximRuiller _ ๊ฐ๋ฅ์ฑ์ด ์๋_ "๊ฐ๋ฅํ" ๋ณ๊ฒฝ ์ฌํญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ ๋ ๋ฐํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ฌ ๊ฒฝ๋ ๋น๋์์ ๋ชจ๋ ๊ฒ์ MSBuild ๋ฐ xproj๋ฅผ ์ฌ์ฉํ๋๋ก ์ด๋ํฉ๋๋ค.
์, ์ฐ๋ฆฌ๋ ๊ดด๋ฌผ์ ๋ค์ ๊ฐ ๊ฒ์ ๋๋ค... ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋๋ฌด ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ง ์์ต๋๋ค.
์, ์ฌ์ฉ ์ฌ๋ก์ 90%์์ ์๋ํ๋ ๊ฒ์ _์ฌ์ฉํ์ง ์๋__ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ง๋์น๊ฒ ๋ณต์กํ ๊ฒ์ผ๋ก _๋ค๋ก_ ์ด๋ํ๋ค๋ฉด, ํ ๊ฐ์ง ์ง๋ฌธ๋ง ํ๊ฒ ์ต๋๋ค.
์์?
msbuild
์ด๋ฏธ ์ด ์์
์ ์ ์ํํ๊ณ ์๋๋ฐ dotnet build
๊ฐ MSBuild๋ฅผ ํธ์ถํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ ๋จ์ ๋น๋๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๊น? ์ถ๊ฐ ์์
์ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ ์ผํ ์ด์ ๋ ๊ฐ๋จํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ชจ๋ ๊ฒ์ ํญ์ MSBuild๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒฐ์ ์ด ๋ด๋ ค์ก๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฌ์ฉ ์ฌ๋ก์ 90%์์ ์๋ํ๋ ๊ฒ
[์ธ์ฉ ํ์]
์ฌ์ฉ ์ฌ๋ก์ 90%๋ฅผ ๊ฐ์ ํ๋๋ผ๋ 1/10์ ์๊ฐ์ ์คํจํ ์์ ์ ์ํํ์๊ฒ ์ต๋๊น?
์ง๋์น๊ฒ ๋ณต์กํ ๊ฒ์ผ๋ก ๋์๊ฐ๋ค
๋ค์ [์ธ์ฉ ํ์], ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ์๊ณ ์๋ ์ ์ผํ ๊ฒ์ ์ด๊ฒ์ด XML-csproj์ด๊ณ ํ์ผ ๋ชฉ๋ก์ ํฌํจ ํ์ง ์๋๋ค๋ ๊ฒ
msbuild๊ฐ ์ด๋ฏธ ์ด ์์ ์ ์ ์ํํ ๋ dotnet build๊ฐ MSBuild๋ฅผ ํธ์ถํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
MSBuild๊ฐ "์ง๋์น๊ฒ ๋ณต์กํ๋ค"๋ ๋ง์์ "MSbuild๋ ์ด๋ฏธ ์ด ์์
์ ์ ์ํํ๊ณ ์์ต๋๋ค"๋ก ๋ฐ๋์์ต๋๊น? ํ์ฌ dotnet build
๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ผ์ด๋๋ ๋ชจ๋ ์ผ์ด ์ฌ๋ฌ๋ถ์๊ฒ ์จ๊ฒจ์ ธ ์๊ธฐ ๋๋ฌธ์ _์ฝ๊ฒ ๋ณด์
๋๋ค_. MSbuild๋ก ์ ํํด๋ ์ด๊ฒ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋น์ ์ด ์ผ๋ คํ๋ ํ ์ฌ์ ํ dotnet build
์
๋๋ค.
ํ๋ก์ ํธ ์์คํ ๊ณผ ๋น๋ ์์คํ ์ฌ์ด์ ๊ตฌ๋ณ์ด ํ์ํ๋ค๊ณ ๊ณ์ ๋งํ๋ ์ฌ๋์ ๊ฒฝ์ฐ, ์ค์ ๋ก MSBuild XML ํ์ผ์ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ MSBuild๋ฅผ ๋น๋ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๊ณ ์ถ์ง ์์ ๊ฒ์ ๋๋ค. ์ด๋ฏธ ์ด๋ณ์ด๋ค.
์ฌ์ฉ ์ฌ๋ก์ 90%์์ ์๋
@shederman ์ ๋ฐ ๋ชจ๋ ๊ฒ์ด ASP.NET์ด๋ผ๊ณ ๊ฐ์ ํ์ง
@shederman ๋ฌด์ธ๊ฐ ์์ ์ฌ์ ๋ง๋๋ ์ด์ ๋ ๊ทธ๊ฒ์ ๊ต์ฒดํ๊ณ ์ถ์ ๋์ ๋๋ค. ๊ตฌํ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ์ถ์ํํ์ญ์์ค. ์ฐ๋ฆฌ๋ ๋งค์ผ ๊ทธ๊ฒ์ ํฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ด๋ผ๊ณ ํฉ๋๋ค.
๊ต์ฒด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. XML ์ธ์๋ ์ ๊ธฐ์ต์ด ๋ง๋ค๋ฉด ๋ค๋ฅธ ๊ฒ๋ค์ ๋นํด ๋๋ฆฐ ๊ฒ ๊ฐ์์.
dotnet build
์ ๊ฐ์ ๊ฒฝ์ฐ ์ง๋ฌธ์ - ๋ฐ์ค ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ธ๊น์? msbuild๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๊น? ์ผ๋ง๋ ๋ง์ ๋ํธ ํ
์ดํ๊ฐ ํ์ํฉ๋๊น?
์ฐ๋ฆฌ๊ฐ ๋ํธ ํ ์ดํ 1๊ฐ ๋๋ 2๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฌํ ๋ณ๊ฒฝ์ ์ํํ ์ ์๋ค๋ฉด ์ถฉ๋ถํ ์์ฉํ ์ ์์ต๋๋ค.
@neoKushan ์ฐ๋ฆฌ๋ MSBuild๊ฐ "์ง๋์น๊ฒ ๋ณต์กํ๋ค"๋ ๋ง์์ "MSbuild๋ ์ด๋ฏธ ์ด ์์ ์ ์ ์ํํ๊ณ ์์ต๋๋ค"๋ก
์ .. ์๋์ผ. msbuild
๋ช
๋ น์ด MSBuild๋ฅผ ์์ฃผ ์ ์คํํ๋ค๊ณ ๋งํ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ MSBuild๋ฅผ ๋๊ตฌ๋ก ํ๋จํ์ง ์์์ต๋๋ค. ๋ช
ํํ์ง ์์์ต๋๊น?
@neoKushan ์ฌ์ฉ ์ฌ๋ก์ 90%๋ฅผ ๊ฐ์ ํ๋๋ผ๋ 1/10์ ์๊ฐ์ ์คํจํ ์์ ์ ์ํํ์๊ฒ ์ต๋๊น?
์๋ฌด๋ ์คํจ ์ ๋ํด ์๋ฌด ๋ง๋
@neoKushan MSbuild๋ก ์ ํํด๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
์, ๋น๋ ํ๋ก์ธ์ค ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น๋ ํ๋ก์ธ์ค๊ฐ ์๋ํ๋ ๋ฐ ํ์ํ ๊ฒ(์: csproj ํ์ผ)๊ณผ ์ํ ์๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
@neoKushan ๋น์ ์ ์ค์ ๋ก MSBuild XML ํ์ผ์ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ MSBuild๋ฅผ ๋น๋ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๊ณ ์ถ์ง ์์ต๋๋ค. ์ด๋ฏธ ๋ถ๋ฆฌ๊ฐ ์์ต๋๋ค.
์ฃ์กํ์ง๋ง ํ๋์ ๋๊ตฌ๊ฐ ๋ ๊ฐ์ง ์์ ์ ์ํํ๋ ๊ฒ์ด ์ด๋ป๊ฒ ๋ถ๋ฆฌ๋๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@poke ๋ชจ๋ ๊ฒ์ด ASP.NET์ด๋ผ๊ณ ๊ฐ์ ํ์ง
๋ ์๋๋ค. ์ ์๋ ์๋ฃจ์ ์ด ๊ฐ๋จํ ๋น๋์์๋ ์ ์๋ํ์ง ์๋๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค. ๊ทธ ์ค ์ผ๋ถ๋ ASP.NET ๋น๋์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ฐ๋จํ ์ฝ์ ์ฑ์๋ MSBuild์ ๊ฐ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด ํ์ํ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@poke ๋น์ ์ ์ด ์ค๋ ๋์์ ์๋์ ์ผ๋ก ๋ฌด์งํ ๊ฒ์ฒ๋ผ
๊ทธ๋ฌ๊ธธ ๋ฐ๋๋๋ค. ๋ด๊ฐ ์๋์ ์ผ๋ก ๋ฌด์งํ ๊ฒ์ MSBuild ์ฌ์ฉ์์๊ฒ ๋ฐ์ํ๋ ๋๋ผ์ด ์ด์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@poke ๋ชจ๋ ๊ฒ์ด
ํ, ์ง์ ํด์ ์ฝ์ํ ๊ฒ์.
๋๋ ๋จ์ง ๋ด๊ฐ ๋์ํ์ง ์๋ ๊ด์ ์ด ๋์ ๋ฐ์ง ์๋๋ก ๋๋์ง ์์ ๋ฟ์
๋๋ค. ๋์์ ํ์๊ฐ ์๋์ ์ฝ์๋๋ฆฝ๋๋ค. ๋ง์์ฌ, ์ด๋ค ๊ผฌ๋งน์ด _์ฌ๋_์ด ๋๋ฅผ ๋ฌด์งํ๋ค๊ณ ๋ถ๋ฌ๋ ๋์ํ์ง ์์์ด ๐
์ด ๊ฐ์ ๊ผฌ๋ง
์ ๋ง ์ฌ๋ฏธ์๋ค.
@MaximRouiller @shederman ๋ฌด์ธ๊ฐ ์์ ์ฌ์ ๊ตฌ์ถํ๋ ์ด์ ๋ ๊ต์ฒดํ๊ณ ์ถ์ ๋์ ๋๋ค. ๊ตฌํ์ ๋ณ๊ฒฝํ ์ ์๋๋ก ์ถ์ํ
์ ์, ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์ข์ ์ด์ dotnet build
๊ฐ ๊ธฐ์กด ๋ผ์ดํธ ๋น๋๋ฅผ ์ํํ๊ฑฐ๋ ๊ตฌ์ฑ(์: config.xml)์ ๊ธฐ๋ฐ์ผ๋ก ๋น๋ ๋๊ตฌ๋ฅผ ์ ํํ๋๋ก ํ์ฉํ๋ฉด ์ข๊ฒ ์ต๋๋ค. MSBuild๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ๋์ msbuild ํ์ผ์ ๋ง๋ค๊ณ msbuild
.
์ .. ์๋์ผ. ๋๋ msbuild ๋ช ๋ น์ด MSBuild๋ฅผ ์์ฃผ ์ ์คํํ๋ค๊ณ ๋งํ๊ณ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์ด๊ฒ์ ์ปจํ ์คํธ์ ์ ์ฉํ๋ ค๋ฉด ๋ค์์ ์ํํ์ญ์์ค.
dotnet ๋น๋๊ฐ MSBuild๋ฅผ ํธ์ถํ๋ ์ด์
dotnet build
๋ณด๋ค ํจ์ฌ ๋ ์์ต๋๋ค "๊ทธ๋ฅ", ์ปดํ์ผ๋ฌ๋ฅผ ํธ์ถ DOTNET ๋น๋์ ํ์ฌ CLI์ ๊ตฌํ์ ์ดํด . ํ๋์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ dotnet build
ํ๋ก์ธ์ค์ ์ผ๋ถ์ผ ๋ฟ์
๋๋ค. ๊ฒฐ๊ตญ ๊ทธ ํ๋ก์ธ์ค์ _part_๋ msbuild
๋ฅผ ํธ์ถํ๋ ๊ฒ์ด์ง๋ง ๊ทธ๊ฒ์ ๋น์ ์ ์ผ์ด ์๋๋ผ CLI์ ๋ชซ์
๋๋ค.
์ ๋ MSBuild๋ฅผ ๋๊ตฌ๋ก ํ๋จํ์ง ์์์ต๋๋ค.
์ด ์ค๋ ๋์์ ์ํํ ๋ชจ๋ ์์ ์ MSBuild๋ฅผ ๋๊ตฌ๋ก ํ๋จํ๋ ๊ฒ์ ๋๋ค. ๋น์ ์ด ๊ทธ๋ฐ ์ผ์ ํ์ง ์๋๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ์์งํ ๋งํด์ ์ฐ์ค๊ฝ์ค๋ฝ์ต๋๋ค.
๋ช ํํ์ง ์์์ต๋๊น?
๋น์ ์ด ๋งํ๋ ๋ด์ฉ ์ค ๋ช ํํ์ง ์๊ฑฐ๋ ์ต์ํ ์ ์๊ฐํ ๋ด์ฉ์ด ๊ฑฐ์ ์์ต๋๋ค.
์๋ฌด๋ ์คํจ์ ๋ํด ์๋ฌด ๋ง๋ ํ์ง ์์ต๋๋ค. ์ผ๋ถ ๋๊ตฌ๋ ๋ค๋ฅธ ๋๊ตฌ๋ณด๋ค ํน์ ๋ชฉ์ ์ ๋ ์ ํฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ผ๋ถ ๋๊ตฌ๋ ๋ชฉ์ ์ ์ ํฉํ์ง ์์ต๋๋ค.
MSBuild์ ์ฑ๋ฅ๊ณผ ๋ณต์ก์ฑ์ ๋น๋์ ์ฝ 10%์ ์ ํฉํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๋ชจ๋ Visual Studio .net ๊ฐ๋ฐ์๊ฐ ๋์ํ์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋กญ์ต๋๋ค. ๋น์ ์ MSBuild๊ฐ 90%์ ์ฌ์ฉ์์๊ฒ ์ข์ง ์๋ค๊ณ ํจ๊ณผ์ ์ผ๋ก ๋งํ๊ณ ์์ต๋๋ค(๊ทํ์ ์์น๋ฅผ ๋์ด๋ด๊ณ ์๋ค๋ ์ฌ์ค์ ๋ฌด์ํ๊ณ ). ๋ค์ ๋งํ์ง๋ง ์ฐ์ค๊ฝ์ค๋ฝ์ต๋๋ค.
์, ๋น๋ ํ๋ก์ธ์ค ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
ํ๋ก์ธ์ค๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ ์ผํ ์ฃผ์ฅ์ ํ๋ก์ ํธ์ ๊ตฌ์กฐ๊ฐ ๋ง์์ ๋ค์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, MSbuild ๋๋ ํ๋ ๋ค์ ์๋ ๋ชจ๋ ๊ฒ์ด ์์ ํ ๊ด๋ จ ์ด ์๋ค๋ ์ฌ์ค์ ๋๋ค.
๊ทธ๋ฌ๋ ๋น๋ ํ๋ก์ธ์ค๊ฐ ์๋ํ๋ ๋ฐ ํ์ํ ํญ๋ชฉ(์: csproj ํ์ผ)์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๊ฒ์ ๋ง ๊ทธ๋๋ก ์ฌ๋๋ค์ด ๋ณผ ์ ์๋ ํ ์ค์ ๋ก ๋ณํ๋ ์ ์ผํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ํ๋๋ ์๋.
[์ธ์ฉ ํ์]
ํ์ฌ ์กด์ฌํ์ง ์๋ ์ ํ๋ก์ธ์ค๊ฐ ๋ ๋น ๋ฅด๊ฑฐ๋ ๋๋ฆฐ์ง ๋ณด์ฌ์ฃผ์ธ์.
์ฃ์กํ์ง๋ง ํ๋์ ๋๊ตฌ๊ฐ ๋ ๊ฐ์ง ์์ ์ ์ํํ๋ ๊ฒ์ด ์ด๋ป๊ฒ ๋ถ๋ฆฌ๋๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํ๋์ ๋๊ตฌ๊ฐ ๋ ๊ฐ์ง ์์ ์ ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ MSBuild๊ฐ ๋น๋ ์์คํ ์ผ ์ ์์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก์ ํธ ์์คํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
๋ ์๋๋ค. ์ ์๋ ์๋ฃจ์ ์ด ๊ฐ๋จํ ๋น๋์์๋ ์ ์๋ํ์ง ์๋๋ค๊ณ ๋งํ๊ณ ์์ต๋๋ค.
dotnet new
dotnet restore
dotnet build
์ ์๋ ์๋ฃจ์ ์ด "๋จ์ ๋น๋" ์๋๋ฆฌ์ค์ ๋ํด ์ด๋ป๊ฒ ๋ณ๊ฒฝํ๋์ง ๋ณด์ฌ์ฃผ์ธ์.
๊ทธ ์ค ์ผ๋ถ๋ ASP.NET ๋น๋์ ๋๋ค.
yo asp-net web
dotnet restore
dotnet build
๊ฐ์ธ์ ์ผ๋ก ๊ฐ๋จํ ์ฝ์ ์ฑ์๋ MSBuild์ ๊ฐ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด ํ์ํ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋น์ ์ํ์ง ์์ต๋๋ค. dotnet build
๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ๋น์ ์ด ์ฌ์ ํ ๊ฐ์ง๊ณ ์์ ๊ฒ์
๋๋ค. ๊ฑฐ๊ธฐ์๋ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๋๋ ๋น์ ์๊ฒ ์ฝ์ํฉ๋๋ค.
๋ฆฌํ ํธ์ํ
:-1:
@neoKushan ์ธ์ฉ๋ ๋ฐ์ท๋ฌธ์ ๋ํ ์๋ต๊ณผ ์ ์ฒด ํ ๋ก ์ ๋ํ ์๊ฒฌ ์ฌ์ด์ ๊ฐ๋ ์ ํ์ ํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ๋๋ ๋น์ ์ด ๊ทธ๋ ๊ฒ ํ _๋ฅ๋ ฅ์ด ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ๊ทธ๋์ ์ ์ผํ ๊ฒฐ๋ก ์ ๊ทธ๊ฒ์ด ๊ณ ์์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ง์ ์ผ๋ก ๋ถ์ ์งํ ์ ์ ์์ ์๋ ค์ฃผ์ญ์์ค. ๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ์๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ๊ธฐ์ ์์ฌ์ ์ด์ ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
๋ํ ๊ฐ๊ธฐ์ฝ์ ๋ฐ๋์ ๋ณต์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ ์์ํฌ์ ๊ฐ์ฅ ์ ํฉํ๋ค๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ๊ฒ์ ๋ํด ๋ ผ์ํ ๋ฟ์ด์ง ์๋ก _์ธ์_ํ๋ ค๊ณ ํ์ง ์์ต๋๋ค. ์ฌ๋์ด ์๋๋ผ ๋ ผ์์ ๊ณต๊ฒฉํ์ญ์์ค. ๊ธ์, ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ง๊ธ ๊ฝค ๋ฉฐ์น ๋์ _์๋_ํ ๊ฒ์ ๋๋ค(์ต๊ทผ ํ ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ , ์๋ ์ฐธ์กฐ).
๋ชจ๋ Visual Studio .net ๊ฐ๋ฐ์๊ฐ ๋์ํ์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋กญ์ต๋๋ค.
์๊ธฐ๊ฒ๋, ๋๋ ๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋งํ๋ ์ฆ๊ฑฐ ๋ฅผ ์์งํ์ต๋๋ค. ๋น์ ์ ์ด๋์์ ์ป์์ต๋๊น?
ํ๋์ ๋๊ตฌ๊ฐ ๋ ๊ฐ์ง ์์ ์ ์ํํ์ง ์๊ธฐ ๋๋ฌธ์ MSBuild๊ฐ ๋น๋ ์์คํ ์ผ ์ ์์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ ํ๋ก์ ํธ ์์คํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋น์ ์ด ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋น๋ ์์คํ ์ ์ฌ์ฉ์ ์ค์ง ์๋ฌด๊ฒ๋ ๊ทธ๋ฅ ๋น ์ฌ์ํ ์ ๋์ ์ผ๋ก ์๋ค.
๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋์ํฉ๋๋ค. ์ฌ์ํ๋ผ๋ฉด ์ ๋ง ์ข์, ์ ๋ง ๊ฒ์ ๋๋ค.
์ ๋ง ๋๋ฌด ๋ฌด๋ฆฌํ ์๊ตฌ์ธ๊ฐ์? ์ง์ง?
๋น์ ์ํ์ง ์์ต๋๋ค. dotnet ๋น๋๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ๋น์ ์ด ์ฌ์ ํ ๊ฐ์ง๊ณ ์์ ๊ฒ์ ๋๋ค. ๊ฑฐ๊ธฐ์๋ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ dotnet build
๋ ์ ํํ ๋ฌด์์ ํฉ๋๊น? msbuild
? MSBuild๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ msbuild
์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๊ทธ ์ํฉ์์ dotnet build
์ ๋ชฉ์ ์ ์ ํํ ๋ฌด์์
๋๊น? ๋๊ตฌ์ ๋ฌด์์ ์ถ๊ฐํฉ๋๊น?
๋ฆฌํ ํธ์ํ ๐
์๊ธฐ๋ ค๋ ์๋์ง๋ง ์๋ง๋ ๋น์ ์ด ์ณ์ ๊ฒ์ ๋๋ค.
@poke ๋ฌด์กฐ๊ฑด ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
์ธ์ฉ๋ ๋ฐ์ท๋ฌธ์ ๋ํ ์๋ต๊ณผ ์ ์ฒด ํ ๋ก ์ ๋ํ ์๊ฒฌ ์ฌ์ด์ ๊ฐ๋ ์ ์ดํดํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ๋๋ ๋น์ ์ด ๊ทธ๋ ๊ฒ ํ ์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ผ๋ฏ๋ก ์ ์ผํ ๊ฒฐ๋ก ์ ๊ณ ์์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ง์ ์ผ๋ก ๋ถ์ ์งํ ์ ์ ์์ ์๋ ค์ฃผ์ญ์์ค. ๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ์๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ๊ธฐ์ ์์ฌ์ ์ด์ ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
๋ง ๊ทธ๋๋ก ๋น์ ์ด ๋งํ๋ ๊ฒ์ ์ ํ ๋ชจ๋ฆ ๋๋ค.
๋ํ ๊ฐ๊ธฐ์ฝ์ ๋ฐ๋์ ๋ณต์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
...
์ฌ๋์ด ์๋๋ผ ๋ ผ์์ ๊ณต๊ฒฉํ์ญ์์ค.
:์ฝ์ RolleyEye ์ด๋ชจํฐ์ฝ์ฌ๊ธฐ:
์๊ธฐ๊ฒ๋, ๋๋ ๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋งํ๋ ์ฆ๊ฑฐ๋ฅผ ์์งํ์ต๋๋ค. ๋น์ ์ ์ด๋์์ ์ป์์ต๋๊น?
์ข์, ๊ทธ๋ผ 10%/90% ์์น๋ ์ด๋์ ์์๊น?
๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋์ํฉ๋๋ค. ์ฌ์ํ๋ค๋ฉด ์ ๋ง ์ข์์ ํ ๋ฐ.
msbuild๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๊ณผ ์๋ฌด ๊ด๋ จ์ด ์์ผ๋ฏ๋ก ํ์ฌ ๋น๋ ์์คํ
์ dotnet build
์์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ด๋ฏธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ dotnet build๋ ์ ํํ ๋ฌด์์ ํ ๊น์? msbuild๋ก ์ ธ ์์?
dnx
๋๋ roslyn ๋์ msbuild๋ฅผ ํธ์ถํ๋ dotnet build
์ ๋ค๋ฅธ ์ ์ ๋ฌด์์
๋๊น?
MSBuild๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ msbuild๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋์ ์ง๊ธ์ MSBuild๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด? ์๋ฌด๊ฒ๋ ๋น์ ์ ๋ง์ ์ ์์ต๋๋ค. ์์ฆ์ ๋๊ฒ ํจํค์ง์ ๋๋ค. ๋ฏธ์ณค์ด. ๋น์ ์ด msbuild๋ฅผ ์ผ๋ง๋ ์ซ์ดํ๋์ง ๊ฐ์ํ ๋ ๋น์ ์ด ๋ฌป๊ณ ์๋ค๋ ๊ฒ์ ๋๋์ต๋๋ค.
๊ทธ ์ํฉ์์ dotnet ๋น๋์ ๋ชฉ์ ์ ์ ํํ ๋ฌด์์ ๋๊น? ๋๊ตฌ์ ๋ฌด์์ ์ถ๊ฐํฉ๋๊น?
์ค์ ๋ก dotnet build
์ ์ฅ์ ์ ๋ํด ๋
ผ์ํ๊ณ ์์ต๋๊น? dotnet build
๋ง์์ ๋ค์ง ์์ต๋๊น? dotnet build
์ ๋ชฉ์ ์ ์ดํดํ์ง ๋ชปํ์
จ์ต๋๊น? ๊ทธ๋ด ๊ฐ๋ฅ์ฑ์ ์์ด ๋ณด์
๋๋ค. ๋ฌด์์ ๋ฌป๊ณ ์ ํ๋ ๊ฒ์
๋๊น?
@neoKushan ๊ทธ๋ฅผ ์ ๋์ํ์ง ๋ง์ญ์์ค. ์ด๊ฒ์ ๊ฑด์ค์ ์ด์ง ์์ต๋๋ค.
์ข์, ๊ทธ๋ผ 10%/90% ์์น๋ ์ด๋์ ์์๊น?
์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์์ ๋์จ ๊ฒ์
๋๋ค. ๋๋ ์ง๋ ๋ช ๋
๋์ ์ฐ๋ฆฌ ํ๊ณผ ๋ด๊ฐ ๋ง๋ ๋น๋์ ์ฝ 90%๊ฐ RC1 dotnet build
๋ณด๋ค ๋ ๋ณต์กํ ๊ฒ์ด ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
msbuild๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๊ณผ ์๋ฌด ๊ด๋ จ์ด ์์ผ๋ฏ๋ก ํ์ฌ ๋น๋ ์์คํ ์ dotnet build์์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ด๋ฏธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ช ํํ ํด์ฃผ์ธ์. ์ฌ๊ธฐ์ ๋ฌด์จ ๋ง์์ด์ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด์ MSBuild๋ฅผ ์ฌ์ฉํ์๊ฒ ์ต๋๊น? ์๋ฌด๊ฒ๋ ๋น์ ์ ๋ง์ ์ ์์ต๋๋ค. ์์ฆ์ ๋๊ฒ ํจํค์ง์ ๋๋ค. ๋ฏธ์ณค์ด. ๋น์ ์ด msbuild๋ฅผ ์ผ๋ง๋ ์ซ์ดํ๋์ง ๊ฐ์ํ ๋ ๋น์ ์ด ๋ฌป๊ณ ์๋ค๋ ๊ฒ์ ๋๋์ต๋๋ค.
_ํ์จ์ ์ฌ๋ค_. ๋ด ์ง๋ฌธ์ ์ํด์ผ dotnet build
๋์ MSBuild์ ๋ฐ์ผ๋ก ๊ป์ง msbuild
๊ทธ ์ด๋ฏธ ์ ๋ง ์ํฉ๋๊น? ๋ ๊ฐ์ ๋ช
๋ น์ด ํ ๊ฐ์ง ์์
์ ์ํํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ง๊ธ๊น์ง ์ธ ๋ฒ ์ ๋ ์ฌ์ญค๋ดค๋๋ฐ ๋งค๋ฒ ์๋ชป ์ดํดํ์ จ๊ฑฐ๋ ์๋ชป ํด์ํ์ จ๋ค์.
๋ ๊ฐ์ง ๋ค๋ฅธ ๋ช
๋ น์ค ๋ช
๋ น์ ๋์์ ๋ํด ๋ฌป๊ณ ์์ต๋๋ค.
๋๋ ์ ๋ ๋ค ๊ฐ์ ์ผ์ ํ๋์ง ๋ฌป๊ณ ์๋ค
๋๋ ๊ทธ๋ค์ด ๋ ๋ค ๊ฐ์ ์ผ์ํ๋ค๋ฉด ์ ํ๋์ ๋ช
๋ น์ ๊ฐ์ง์ง ์๋์ง ๋ฌป์ต๋๋ค.
๋๋ ๋ ๋ฒ์งธ ๋ช
๋ น์ด ๋ ๋ค ๊ฐ์ ์ผ์ํ๋ค๋ฉด ์ํฉ์ ๋ฌด์์ ์ถ๊ฐํ๋์ง ๋ฌป๊ณ ์์ต๋๋ค.
๋๋ ๊ทธ ๋งฅ๋ฝ์์ ๊ธฐ๋ณธ ๋๊ตฌ์ ํ์ง์ ๋ํ ํ๋จ์ ๋ด๋ฆฌ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๊ณณ์์ ๊ทธ๋ ๊ฒ ํ์ ์๋ ์์ง๋ง
์ง๋ฌธ๋๋ ์ง๋ฌธ์ ๊ธฐ๋ณธ ๋๊ตฌ๊ฐ ์๋๋ผ ๋ช
๋ น์ค ๋ช
๋ น ๋ฐ ํด๋น ์์
์ ๊ดํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ณณ์์ ๋งํ ํ๋จ์ ์ง๋ฌธ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
๋๋ ๋๊ตฌ๊ฐ ๊ณผ๊ฑฐ์ ํ์ ์๋ ์๊ณ ํ์ง ์์์ ์๋ ์๋ ๋ค๋ฅธ ๊ฒ์ ๋ํด ๋
ผ์ํ๋ ค๋ ๊ฒ์ด ์๋๋ผ ๋จ์ง ๋ฏธ๋์ ํ๋ ค๋ ์๋์ผ ๋ฟ์
๋๋ค.
ํ ๋ฌธ์ฅ์ผ๋ก ๋ ์ง๋ฌธ์ ์ค๋ช ํ๋ ๊ธด ์ค๋ช ์ ๋ํด ์ ๊ฐ์ค๋ฝ๊ฒ ์๊ฐํ์ง๋ง ๋ถ๋ช ํ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
InfoQ์ ๋ํ ๊ธฐ์ฌ :
"Microsoft๋ project.json ์คํ์ด ์คํจ ํ์ผ๋ฉฐ .csproj ํ์ผ ์ฌ์ฉ์ผ๋ก ๋ค์ ์ ํํ ๊ฒ์ด๋ผ๋ ๊ฒฐ๋ก ์ ๋๋ฌ
๋ด๊ฐ ๋งํ๋ฏ์ด, ์ธ์์ด ์ค์ํฉ๋๋ค.
๋ด ์ง๋ฌธ์: msbuild๊ฐ ์ด๋ฏธ ์ ๋์ด ์๋๋ฐ ์ dotnet์ด MSBuild์ ์ ธ์ ๋น๋ํด์ผ ํฉ๋๊น? ๋ ๊ฐ์ ๋ช ๋ น์ด ํ ๊ฐ์ง ์์ ์ ์ํํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋ค์ด ํ ๊ฐ์ง ์ผ๋ง ํ์ง ์๊ธฐ ๋๋ฌธ์?
csc๊ฐ ์ด๋ฏธ ๋น๋ ์์ ์ ์ ์ํํ ๋ MSBuild๊ฐ csc๋ก ์์ ์ถ๋ ฅํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ ๊ฐ์ ๋ช ๋ น์ด ํ ๊ฐ์ง ์์ ์ ์ํํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
dotnet test
์์ฒด์ ์ผ๋ก ํ
์คํธ๋ฅผ ์คํํ๋ ๋ฐ ์ด๋ฏธ ํ๋ฅญํ ์์
์ ์ํํ๊ณ ์๋๋ฐ ์ xUnit ํ
์คํธ ๋ฌ๋์๊ฒ ์์ ๋ณด๋ด์ผ ํฉ๋๊น? ๋ ๊ฐ์ ๋ช
๋ น์ด ํ ๊ฐ์ง ์์
์ ์ํํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
NuGet์ด ์ด๋ฏธ ํจํค์ง๋ฅผ ์ค์นํ๋ ์์
์ ์ ์ํํ ๋ dotnet restore
๊ฐ NuGet์ผ๋ก ์ ์์๋์ด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๋ ๊ฐ์ ๋ช
๋ น์ด ํ ๊ฐ์ง ์์
์ ์ํํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋น์ ์ ์์ด๋์ด๋ฅผ ์ป์์ต๋๋ค ... (๋๋ ํฌ๋งํฉ๋๋ค :wink:)
@sandorfr
@neoKushan ๊ทธ๋ฅผ ์ ๋์ํ์ง ๋ง์ญ์์ค. ์ด๊ฒ์ ๊ฑด์ค์ ์ด์ง ์์ต๋๋ค.
๋๋ ์๋์ ์ผ๋ก ๋๊ตฐ๊ฐ๋ฅผ ์ ๋์ํ๋ ๊ฒ์ด ์๋๋ผ @shederman ์ ์ฃผ์ฅ์ ์ง์ ๋ณ๋ก ํด์ฒดํ๊ณ ์์ต๋๋ค.
์ฌ๋์ด ์๋๋ผ ๋ ผ์์ ๊ณต๊ฒฉํ์ญ์์ค.
์ด ์์ ์์ ๋๋ @shederman ์ ์ฃผ์ฅ์ด ๋ฌด์์ธ์ง ์์ ํ ํ์ ํ์ง ๋ชปํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ๋ XML์ด ์ข์ง ์์ ๊ฒ์์ MSBuild๊ฐ ๋์ ๊ฒ์ผ๋ก ํ์ฌ dotnet build
๊ฐ ๋์ ๊ฒ์ผ๋ก ๋ฐ๋์๊ธฐ ๋๋ฌธ ์
๋๋ค.
๊ณ์ํ์.
์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์์ ๋์จ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ๋น์ ์ "์ฆ๊ฑฐ"์ ๋๊น? ๊ตต๊ฒ ํ์ํ ๊ฒ์ ๊ธฐ์ตํ์ธ์.
์๊ธฐ๊ฒ๋, ๋๋ ๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋งํ๋ ์ฆ๊ฑฐ ๋ฅผ ์์งํ์ต๋๋ค. ๋น์ ์ ์ด๋์์ ์ป์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ์ด์ "๊ฐ์ธ์ ๊ฒฝํ"์ ๋๋ค. ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ _์ผํ์ ์ธ_ ์ฆ๊ฑฐ๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋๋ค.
์ ๋ ์ง๋ ๋ช ๋ ๋์ ์ ํ๊ณผ ์ ๊ฐ ๋ง๋ ๋น๋์ ์ฝ 90%๊ฐ RC1 dotnet ๋น๋๋ณด๋ค ๋ ๋ณต์กํ ๊ฒ์ด ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๊ด๋ จํ์ฌ RC2 dotnet build
๋๋ RTM dotnet build
๋๋ post-RTM dotnet build
์ด ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น?
๋ช ํํ ํด์ฃผ์ธ์. ์ฌ๊ธฐ์ ๋ฌด์จ ๋ง์์ด์ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๊ทํ์ ์ฃผ์ฅ์ " dotnet build
๊ฐ Microsoft๊ฐ ํ๋ก๊ทธ๋๋ฐํ ๊ฒ ์ด์ธ์ ๋ค๋ฅธ ์์
์ ์ํํ๋๋ก ํ๋ ๊ฒ์ ์ฌ์ํ ์ผ์ด ์๋๋๋ค."์ ๊ฐ์ ๋ด์ฉ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๊ฐ DNX๋ฅผ ์ข์ํ๊ธฐ ๋๋ฌธ์ DNX ์๋์๋ ๊ด์ฐฎ์์ง๋ง ์ด์ Microsoft๋ ๋ด๋ถ์ ์ผ๋ก MSBuild๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๊ณ MSBuild๋ฅผ ์ข์ํ์ง ์๋๋ค๋ฉด MSbuild๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ต์
์ ์ํฉ๋๋ค. ์ ์์ ์ ์ด๊ฒ์ด ์๋ก์ด ๊ฒ์ด ์๋๋๋ค. DNX์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ผ๋ฏ๋ก dotnet build
์ "๋ฌธ์ "๊ฐ ๋ฌด์์ด๋ ์๋ก์ด ๊ฒ์ ์๋๋ฏ๋ก ๊ด๋ จ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. project.json
์ ๊ตฌ์กฐ์ธ _actual_ ํ ๋ก ์ผ๋ก ์ด๋ํฉ๋๋ค. csproj
ํ์จ์ ์ฌ๋ค. ๋ด ์ง๋ฌธ์: msbuild๊ฐ ์ด๋ฏธ ์ ๋์ด ์๋๋ฐ ์ dotnet์ด MSBuild์ ์ ธ์ ๋น๋ํด์ผ ํฉ๋๊น? ๋ ๊ฐ์ ๋ช ๋ น์ด ํ ๊ฐ์ง ์ผ์ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@khellang ์ ์ด๋ฏธ ์ด์ ๋ํ ๋ต๋ณ์
dotnet build
๋ณด๋ค ํจ์ฌ ๋ ์์ต๋๋ค "๊ทธ๋ฅ", ์ปดํ์ผ๋ฌ๋ฅผ ํธ์ถ DOTNET ๋น๋์ ํ์ฌ CLI์ ๊ตฌํ์ ์ดํด . ํ๋์ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์dotnet build
ํ๋ก์ธ์ค์ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค. ๊ฒฐ๊ตญ ๊ทธ ํ๋ก์ธ์ค์ _์ผ๋ถ_๋msbuild
๋ฅผ ํธ์ถํ๋ ๊ฒ์ด์ง๋ง ๊ทธ๊ฒ์ ๋น์ ์ ์ผ์ด ์๋๋ผ CLI์ ๋ชซ์ ๋๋ค.
๋ค์, ์ ์ด๋ ์ธ ๋ฒ์งธ๋ก: dotnet build
ํธ์ถ์ msbuild
ํธ์ถ๊ณผ ๋์์ด๊ฐ ์๋๋๋ค . ๊ทธ๊ฒ์ ๋น์ ์ด ๋งํ ๊ฒ์ฒ๋ผ "๋ ๋ช
๋ น์ด ํ ๊ฐ์ง ์ผ์ ํ๋" ๊ฒ์ด ์๋๋ฉฐ ๊ฒฐ์ฝ ๊ทธ๋ ์ง๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ด ์ ์ฒด ํ ๋ก ์ ๋ฒ์ ๋ด์ ์์ง๋ ์์์ง๋ง ์ด์จ๋ ๋น์ ์ ๊ฑฐ๊ธฐ์ ์ด๋ฅด๋ ์ต๋๋ค.
์ค์ ํ ๋ก , ์ค์ ๋ก ์ค์ํ ๊ฒ์ project.json์ ๊ตฌ์กฐ์ ์ด๊ฒ์ด .csproj๋ก ๋ณํฉ๋๋ ๋ฐฉ๋ฒ์
๋๋ค. ๊ธฐ๋ณธ ๋น๋ ์์คํ
์ ํญ์ dotnet build
๋ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๊ฒ์ ์ํ๋ ๊ฒฝ์ฐ ํฌ๊ฒ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด msbuild๊ฐ ์ํํ๋ ์์ ๊ณผ dotnet ๋น๋๊ฐ ํ์ฌ ์ํํ๋ ์์ ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ ์ ์์ต๋๊น? ์๋ ๋ฐฉ์์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? ๋๋ ๊ทธ๊ฒ์ด ์ด ํ ๋ก ์์ ๋น ์ ธ ์๋ค๊ณ ์๊ฐํ๋ค. ๋ค๋ค ์ด๋ฏธ ์๊ณ ๊ณ์๊ฒ ์ง๋ง, ํ ์ด๋ธ์ ์ฌ๋ ค๋์ผ๋ฉด ์ข ๋ ๋ช ํํด ์ง ๊ฒ ๊ฐ์์.
@khellang ํํํ ๋ฐฉ์์ด ๋ง์์ ๋ค์ง๋ง ๊ณ์ํด์ dotnet test
๊ตฌ์ฑํ ์ ์์ต๋๋ค. project.json์ xunit๊ณผ ๋ค๋ฅธ ํ
์คํธ ๋ฌ๋๋ฅผ ๋ฃ์ ์ ์์ผ๋ฉฐ dotnet test
๋ ํด๋น ํ
์คํธ ๋ฌ๋๋ฅผ ํธ์ถํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ค๊ฐ์ค๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ค์ ๋ฐ์ ๋ฐ๋ฅด๋ฉด dotnet build
์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์์ ๊ฒ์
๋๋ค. ํญ์ MSBuild๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๋ฅผ ์ํํฉ๋๋ค. ๊ทธ ์ดํด๊ฐ ์ณ์ง ์์ต๋๊น?
@neoKushan ๋๋ ์๋์ ์ผ๋ก ๋๊ตฐ๊ฐ๋ฅผ ์ ๋์ํ์ง ์์ต๋๋ค. ๋๋ @shederman ์ ์ฃผ์ฅ์ ์ ๋์ ์ผ๋ก ํด์ฒดํ๊ณ ์์ต๋๋ค
์ ์ด๋ ์ฐ๋ฆฌ๋ ์ด์ ๋น์ ์ด ๋ฌด์์ _์๊ฐ_ ํ๊ณ ์๋์ง ์๊ณ ์์ต๋๋ค. ๋น์ ์ด ํ๊ณ ์๋ ๊ฒ์ _์ฌ์ค์_ ์๋ชป๋ ํํ์ ํ๊ณ , ์ ์ฅ์ ์๊ณกํ๊ณ , โโ์๋์ ์ผ๋ก ์คํด๋ฅผ ํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก ์ฝ๊ฐ ๋ฐ๋ณด๊ฐ ๋๋ ๊ฒ์ ๋๋ค. ๋น์ ์ ์ด์กฐ๋ ์ ํฌ์ ์ด๋ฉฐ ์๋์ ์ผ๋ก ๋ํฉ๋๋ค. ๋๋ฌด ๋ง์์ ํ ๋ฒ์ ํ ๊ฐ์ง ์๊ฐ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํด์ผ ํ์ต๋๋ค. ์๊ธฐ๊ฒ๋ ๋น์ ์ ์ ์ฅ์ ๋ฐ๊พธ๋ ๊ฒ์ผ๋ก ์คํดํ๊ณ ์์ต๋๋ค.
@neoKushan ์ด ์์ ์์ @shederman ์ ์ฃผ์ฅ์ด ๋ฌด์์ธ์ง ์์ ํ ํ์ ํ ์ ์์ต๋๋ค. XML์ด ์ข์ง ์์ ๊ฒ์์ MSBuild๊ฐ ๋์ ๊ฒ์ผ๋ก ๋ฐ๋์๊ธฐ ๋๋ฌธ ์ ๋๋ค.
XML์ ๋์๋ค. MSBuild๊ฐ ๋์ฉ๋๋ค. dotnet build
๊ฐ MSBuild ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ข์ง ์์ต๋๋ค. ๊ณ์ ์๋ํ๊ณ ๋ฐ๋ผํด ์ฃผ์ธ์. ๊ทธ๋ ๊ฒ ๋ณต์กํ์ง ์์ต๋๋ค. ๋น์ ์ด ๊ทธ๋ ๊ฒ ๊ณ ์์ ์ผ๋ก ๋ํ์ง ์์๋ค๋ฉด, ๋น์ ์ ์ค๋์ ์ ๊ทธ๊ฒ์ ์ดํดํ์ ๊ฒ์ด๊ณ ์ค์ ๋ก ๊ฑด์ค์ ์ธ ์
๋ ฅ์ ์ถ๊ฐํ ์ ์์์ ๊ฒ์
๋๋ค.
@neoKushan ์ด๊ฒ์ด ๋น์ ์ "์ฆ๊ฑฐ"์ ๋๊น? ๊ตต๊ฒ ํ์ํ ๊ฒ์ ๊ธฐ์ตํ์ธ์.
์, ๊ทธ๊ฑด ์ฆ๊ฑฐ๊ฐ ์๋๋ผ ์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์ด์์ต๋๋ค. ์ ์ฆ๊ฑฐ ๋ 383๋ช ์ค 281๋ช ์ ์๋ต์๊ฐ .NET Core๋ฅผ MSBuild๋ก ๋ค์ ์ฎ๊ธฐ๋ ๊ฒ์ด ๋์ ์๊ฐ์ด๋ผ๊ณ ๋ฏฟ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ MSBuild๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ง๊ฐ์ก๋ค๊ณ ๋ฏฟ๋ ์๋ต์ ์ค 85๋ช ์ด ์์์ต๋๋ค. ๊ทธ๊ฒ ๋ด ์ฆ๊ฑฐ์ผ. ๋น์ ์ ์ ํํ ์ด๋์ ์์ต๋๊น?
"... _๋ชจ๋ ๋จ์ผ_ Visual Studio .net ๊ฐ๋ฐ์๊ฐ ๋์ํ์ง ์์ ๊ฒ"์ด๋ผ๋ ์ง์ ์ ๋ท๋ฐ์นจํ๋ ค๋ฉด? [๊ฐ์กฐ ์ถ๊ฐ๋จ]
@neoKushan ์ค์ ํ ๋ก , ์ค์ ๋ก ์ค์ํ ๊ฒ์ project.json์ ๊ตฌ์กฐ์ .csproj์ ๋ณํฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ฌ์ค _๋์_ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ๊ฒฝ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. MS๊ฐ ํํํ ๊ณํ์ MSBuild๊ฐ ๋น๋ ์ ๋๋ฒ์ค์ ์ค์ฌ์ด ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ _์ข์ํ์ง_์์ง๋ง ๊ณ์ ๊ฐ์. ์ด๋ฅผ ๊ฐ์ํ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ์ง๋ฌธ์ด ์์ต๋๋ค.
"MSBuild๋ ์์ํ .NET Framework์ ๊ธฐ๋ณธ ๋น๋ ์์คํ ์ด ๋ ๊น์?"
๊ทธ๋ ๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๋จ์ง ํ์ msbuild
๋ช
๋ น์ ์ฐ๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค dotnet build
๋ช
๋ น์, ๊ทธ๊ฒ์ ์์ ํ ๋ถํ์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ ์์ ์์ MSBuild๊ฐ _One True Build System_์ด ์๋ ์ ์๋ค๋ ์ ์ ์ธ์ ํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๋ ํฅ๋ฏธ๋ก์ด ์์ญ์ ์๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด dotnet build
๋ฅผ ๊ฐ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค. ๊ทธ๋ฌ๋ ๋ณํฉ csproj ๋ฐ project.json์ ๋
ผ์ ํ ๋ ์ฐ๋ฆฌ๊ฐ ์ผ๋์ ๋ฏธ๋๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๋ค์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ด๊ฐ (์๋ง๋ ํํธ์๊ฒ) ์ง์ ํ๋ ค๊ณ ํ๋ ๊ฒ์ (๋ด ์๊ฐ์) ๋ ๋์ ์ต์
์ _project definition_ ํ์ผ๊ณผ _build definition_ ํ์ผ์ ๋ช
ํํ๊ฒ ๊ตฌ๋ถํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ๋ฌ ๋น๋ ์์ง์ ์ง์ํ ์ ์๋ dotnet build
๋ ์ ํฉํฉ๋๋ค. ๋์ ๋ชจ๋ ๊ฒ์ csproj๋ก ์ฎ๊ธฐ๋ฉด MSBuild ์ธ๊ณ์ ์์ ์ ๊ฐ๋๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, ์ด "๋จ ํ๋์ ์ง์ ํ ๋น๋" ์ํฉ์ด DNX์ ์กด์ฌํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋น๋๊ฐ _์ข์์_ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๋น์์๋ ์ง๋ฌธํ์ง ์์์ต๋๋ค. ์, ์ฐ๋ฆฌ๊ฐ _์ข์ํ๋_ ๐. ๋ถ์๋ฅผ ์์งํ๊ฒ ๋ฐ์๋ค์ผ ๋ ์ฐ๋ฆฌ๊ฐ ์ฒํ ์ํฉ.
๋ฐ๋ผ์ ๊ตฌ์ฑ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋น๋ ๋๊ตฌ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ dotnet build
์ด ์๋ ์ํฉ์ ๊ณ ๋ คํ์ญ์์ค. dotnet test
์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ํ
์คํธ ์คํ๊ธฐ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ง๊ธ, ์ง๊ธ ๋น์ ์ csproj ๋ฐ project.json ๋ณํฉ ์ผ๋ง๋, ์ด๋ฌํ ๊ฐ์ ์ธ๊ณ์์ ์ฃผ์ด์ง? ๊ทธ๊ฒ์ด ์ ๊ฐ ํ๊ณ ์ถ์ ํ ๋ก ์
๋๋ค.
@rhires ๋งค์ฐ ๋์ ์์ค์์ dotnet build
:
@shederman ๊ฐ์ฌํฉ๋๋ค! ์ด ์์ ์์ msbuild๋ ์ด ํ๋ก์ธ์ค์์/์์/์์ ๋ฌด์์ ์ถ๊ฐ/๋นผ๊ธฐ/๋ฐ๊พธ๋์?
์ ์ด๋ ์ด์ ์ฐ๋ฆฌ๋ ๋น์ ์ด ๋ฌด์์ ํ๊ณ ์๋ค๊ณ ์๊ฐํ๋์ง ์๊ณ ์์ต๋๋ค. ๋น์ ์ด ์ค์ ๋ก ํ๊ณ ์๋ ๊ฒ์ ์๋ชป๋ ํํ, ์ ์ฅ์ ํผ๋ํ๋ ๊ฒ, ์๋์ ์ผ๋ก ์คํดํ๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๊ฐ์ ๋ฐ๋ณด๊ฐ ๋๋ ๊ฒ์ ๋๋ค. ๋น์ ์ ์ด์กฐ๋ ์ ํฌ์ ์ด๋ฉฐ ์๋์ ์ผ๋ก ๋ํฉ๋๋ค. ๋๋ฌด ๋ง์์ ํ ๋ฒ์ ํ ๊ฐ์ง ์๊ฐ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํด์ผ ํ์ต๋๋ค. ์๊ธฐ๊ฒ๋ ๋น์ ์ ์ ์ฅ์ ๋ฐ๊พธ๋ ๊ฒ์ผ๋ก ์คํดํ๊ณ ์์ต๋๋ค.
๋๋น -> ์ฃผ์ ์
์์น๋ฅผ ๋๋ฌด ๋ง์ด ๋ณ๊ฒฝํ์ฌ ์ค์ค๋ก๋ฅผ ๋ฐ๋ผ์ก์ ์ ์์๊ณ , ๋น๋ ์ฒด์ธ์ ๋ชจ๋ ๋จ์ผ ์ธก๋ฉด์ ๋ํด ๋ง ๊ทธ๋๋ก ๋ ผ์์ ๋ฒ์์ต๋๋ค. ๋น์ ์ด ์๊ฐํ๋ ๊ฒ์ฒ๋ผ ํจ๊ป ํ์ง๋ง, ๋น์ ์ ์ฃผ์ฅ์ด ์ด๋์์ ๋ฌด๋์ง๋์ง๋ฅผ ๊ฐํ ์ง์ ํ๊ธฐ ๋๋ฌธ์ _๋๋_ ๋ฐ๋ณด๊ฐ ๋ฉ๋๋ค. ์์์ ์ ๊ธฐํ ์์ ์ ์ ๋ฐ์ ๋ํ ์๋ต์ ์ฌ์ ํ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ง๋ง, ๋น๋ ํ๋ก์ธ์ค์ ๋ค๋ฅธ ์ธก๋ฉด์ ์ ํํ๊ธฐ ์ํด ์ด๋ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
XML์ ๋์๋ค. MSBuild๊ฐ ๋์ฉ๋๋ค. dotnet build๊ฐ MSBuild๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ข์ง ์์ต๋๋ค.
_๋น์ _ ์ด์ธ์ ๋๊ตฌ๋ ์ด์ ๊ฐ์ ๊ฒ์ ์ฃผ์ฅํ์ง ์์์ต๋๋ค. ์๋ฌด๋. ๊ทธ๋ฐ ์ข
๋ฅ์ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๋ ์ฝ๊ฐ์ ์์์กฐ์ฐจ ์์ต๋๋ค. ๋๋ dotnet build
๊ฐ MSBuild
๋ฅผ _๊ทธ๋ฅ_ ํธ์ถํ์ง ์๋๋ค๊ณ ๋ฐ๋ณตํด์ ๋งํ์ง๋ง dotnet build
์ msbuild
๋ ์์ ํ ๋์์ด๊ฐ ์๋๋ผ๊ณ ๋งํ์ต๋๋ค. dotnet build
๋ ์ปดํ์ผ๋ฌ๋ฅผ ํธ์ถํ๋ ๊ฒ๋ณด๋ค
๊ณ์ ์๋ํ๊ณ ๋ฐ๋ผํด ์ฃผ์ธ์.
๊ณ์ _๋น์ ์_ ์ด๋์? dotnet build
๊ฐ msbuild
๋ง ํธ์ถํ๋ค๋ ์์ด๋์ด๊ฐ ์ด๋ ์๋์ง ๋ณด์ฌ์ฃผ์ธ์. ๋๊ฐ ๊ทธ๋ฐ ๋ง์ ํ์ต๋๊น? ์ด๋์ ์ฝ์์ด?
์ ์ฆ๊ฑฐ๋ 383๋ช ์ค 281๋ช ์ ์๋ต์๊ฐ .NET Core๋ฅผ MSBuild๋ก ๋ค์ ์ฎ๊ธฐ๋ ๊ฒ์ด ๋์ ์๊ฐ์ด๋ผ๊ณ ๋ฏฟ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ MSBuild๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ง๊ฐ์ก๋ค๊ณ ์๊ฐํ ์๋ต์ ์ค 85๋ช ์ด ์์์ต๋๋ค. ๊ทธ๊ฒ ๋ด ์ฆ๊ฑฐ์ผ. ๋น์ ์ ์ ํํ ์ด๋์ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๊ทธ ์์น์์ 10%๋ฅผ ๋ฝ์์ฃ ? ์ด๊ฒ์ ๊ทํ์ ์ฃผ์ฅ์์ ๊ธฐ์ตํ์ญ์์ค.
MSBuild์ ์ฑ๋ฅ๊ณผ ๋ณต์ก์ฑ์ ๋น๋์ ์ฝ 10%์ ์ ํฉํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๋์ค์ ๋น์ ์ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค.
์๊ธฐ๊ฒ๋, ๋๋ ๋ญ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋งํ๋ ์ฆ๊ฑฐ๋ฅผ ์์งํ์ต๋๋ค.
๊ทธ๋ผ ์ด ์ฆ๊ฑฐ๋ ์ด๋์ ์์ต๋๊น? ๋๋ ๋น์ ์ด ๋น์ ์ "์ฆ๊ฑฐ"์์ ์ด๋ป๊ฒ ๊ทธ ์์น๋ฅผ ๋์ด๋๋์ง ์๊ณ ์ถ์ต๋๋ค.
"... ๋ชจ๋ Visual Studio .net ๊ฐ๋ฐ์๊ฐ ๋์ํ์ง ์์ ๊ฒ"์ด๋ผ๋ ์ง์ ์ ๋ท๋ฐ์นจํ๋ ค๋ฉด?
์ฌ์: https://msdn.microsoft.com/en-us/library/ms171468.aspx
Visual Studio๋ ๊ด๋ฆฌ๋๋ ํ๋ก์ ํธ๋ฅผ ๋ก๋ํ๊ณ ๋น๋ํ๊ธฐ ์ํด MSBuild๋ฅผ ํธ์คํ ํฉ๋๋ค.
Visual Studio๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๊ฒฝ์ฐ MSBuild๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ค๋๋ .net ์ฝ์ด๋ก ์์ ํ ๋๋ RC1 VS์์๋ ๋ด๋ถ์ ์ผ๋ก MSbuild๋ฅผ ์ฌ์ฉํ์ต๋๋ค. MSbuild๊ฐ ๋ง์์ ๋ค์ง ์์ ์๋ ์์ง๋ง ์ ๊ฐ ๋งํ๋ฏ์ด ๊ฑฐ์ ๋ชจ๋ VS ๊ฐ๋ฐ์๊ฐ MSbuild๋ฅผ ์๊ณ ์๋ ์๋ ์ฌ์ฉํฉ๋๋ค.
MS๊ฐ ํํํ ๊ณํ์ MSBuild๊ฐ ๋น๋ ์ ๋๋ฒ์ค์ ์ค์ฌ์ด ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ๋์ํ์ง ์๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ด ์ค์ฌ์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์ด ์์ผ๋ฉฐ, ๊ทธ๋ค์ด ๋งํ ๊ฒ์ project.json์ ์ผ๋ถ๊ฐ ๊ฒฐ๊ตญ .csproj๋ก ๋ค์ ๋์๊ฐ ๊ฒ์ด๋ผ๋ ๊ฒ๋ฟ์
๋๋ค. ์ด ์ธ์๋ ์ด๊ฒ์ด dotnet build
๋ฅผ ์ด๋ ์ ๋ ๋ณ๊ฒฝํ๋์ง์ ๋ํด์๋ ์๋ฌด ๋ง๋ ํ์ง ์์์ต๋๋ค.
"MSBuild๋ ์์ํ .NET Framework์ ๊ธฐ๋ณธ ๋น๋ ์์คํ ์ด ๋ ๊ฒ์ ๋๊น?"
๊ทธ๋ ๋ค๋ฉด msbuild ๋ช ๋ น๋ง ํ์ํ๊ณ dotnet build ๋ช ๋ น์ ํ์ํ์ง ์์ผ๋ฏ๋ก ์์ ํ ๋ถํ์ํฉ๋๋ค.
์ง๊ธ ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ๋ฏ์ด dotnet build
๋ฐ msbuild
๋ ์์ ํ ๋ณ๊ฐ์ ๋ ๊ฐ์ง์
๋๋ค. dotnet build
๋ ๋จ์ง ์ปดํ์ผ๋ฌ ํด์ฒด์ธ ์ ํ๋ณด๋ค ์์ต๋๋ค. dotnet build์ ๋ชฉ์ ์ ์ฌ๋๋ค์ด ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋จํ๊ฒ ์ ์งํ๋ ๊ฒ์
๋๋ค. ๋ค์๋ณด๋ค:
dotnet new
dotnet restore
dotnet build
msbuild๊ฐ dotnet CLI์ ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋๋๋ผ๋ dotnet build๊ฐ ์๋นํ ๋ณต์กํ ์์คํ
์ ๋ํ ๊นจ๋ํ๊ณ ๊ฐ๋จํ ๋ํผ๋ผ๋ ์ฌ์ค์ ๋ณํ์ง ์์ต๋๋ค. ์ ์ฅ, dotnet CLI๊ฐ ์กด์ฌํ๋ ์ด์ ์ ์ ๋ฐ(๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด์ ์ DNX)์ ํนํ MSBuild๊ฐ ๊ถ๊ทน์ ์ผ๋ก ์กด์ฌํ๋ ๋ช
๋ น์ค ์ธ์ ์ง์ฅ์์ ๋ฒ์ด๋๊ธฐ ์ํ ๊ฒ์
๋๋ค. ๊ทํ์ ์ฃผ์ฅ์ "ํจํค์ง๋ฅผ curl
ํ ์ ์๋๋ฐ ์ npm install
๋ช
๋ น์ด ํ์ํ๊ฐ์?"๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ์ํ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ๋ชจ๋ ์์
์ ์ํํ ์ ์์ง๋ง ๊ฑฐ์ ์๋ฌด ๊ฒ๋ ์ป์ ์ ์์ต๋๋ค. dotnet build
๊ฐ ๋ด๋ถ์ ์ผ๋ก msbuild
๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋น์ ์ ๊ฑฐ์ ํ์คํ ๊ทธ๊ฒ์ ๋ณด์ง ๋ชปํ๊ฑฐ๋ ๊ทธ๊ฒ์ ๋ํด ์์์ผ ํ ํ์๊ฐ ์์ต๋๋ค.
์ด์ ๊ฒฝํ์ MSBuild์ ๋น๊ตํ ์๋ ์์ต๋๋ค. ์์ ํ ๋ค๋ฆ
๋๋ค. ์ฐ๋ฆฌ๋ VS๋ฅผ ์ด๊ณ , ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ , ๊ทธ๋ฅ ๋น๋ํ๋ ๋ฐ ์ต์ํ๊ธฐ ๋๋ฌธ์ (๊ฒ๋ณด๊ธฐ์๋) ๊ทธ ์ผ๋ก ์ธํด ํ์์ ์
์์ง๋ง, ๋น๋ ์๋ฒ์์ ๋์ผํ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ค๊ณ ํ๋ฉด ๊ฐ์๊ธฐ ๋ฅ์ ๋ํด ๋ถํํฉ๋๋ค. _๊ทธ๋ฅ ์๋_ํด์ผ ํฉ๋๋ค. ์๋ง๋ Microsoft๊ฐ TFS 2015์์ ์ํํ ๊ฐ์ฅ ์ข์ ์์
์ค ํ๋๋ _MSBuild_๊ฐ ์๋ _Visual Studio_์ ์ฐ๊ฒฐ๋๋ ๋น๋ ์ ์๋ฅผ ๋ง๋ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด "๊ทธ๋ฅ ์๋"ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ด ๋น๋ ๋๊ตฌ ๋ชจ์์
๋๋ค. dotnet build
๋ ์ ์ฒด ๋น๋ ์์คํ
์ ๋์ฒดํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋ฉฐ, ํ๋ ์๋์์ MSBuild
์ฌ์ฉํ๋๋ผ๋ ํ๋ก์ ํธ ๋น๋์๋ง ๊ด์ฌ์ด ์์ต๋๋ค. TeamCity ๋๋ Jenkins์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ค๋ฉด dotnet build
ํธ์ถํ๋ฉด ๋๊ณ ๋๋จธ์ง๋ dotnet์ด ์์์ ํฉ๋๋ค. _์ด๋ป๊ฒ_ ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
์ ์ผํ ๊ฒ - ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ด๊ฒ์ ์์ ํ ์๋ฏธํฉ๋๋ค. ์ค์ ๋ก ๋ณ๊ฒฝ๋๋ ์ ์ผํ ๊ฒ์ project.json/csproj ํ์ผ์
๋๋ค. _๊ทธ๊ฒ_์
๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ dotnet build
์ค์ ๋ก ๋ฌด์์ ํ๊ณ MSBuild
๊ฐ ์ข๊ณ ๋์์ง์ ๋ํด ์ด ๋ชจ๋ ๋
ผ์์ด ์ ๋์ ์ผ๋ก _๋ฌด์๋ฏธํฉ๋๋ค_.
@neoKushan ๊ทธ๋ฅ ๊ทธ๋ง ...
@neoKushan ๊ทธ๋ง...
์ ์ค ์ผ๋ถ๋ ASP.NET ํ์ด ์ผ๋ฅผ ์ฆ๊ธฐ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์คํ ๋์ ์ ์ทจ์ํ๊ณ ๋ต๋ณ์ ์ ๊ณตํ๋ฉด ๋ชจ๋ ๊ฒ์ ๋๋ผ ์ ์๋ค๊ณ ์์ํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค. :์๋ค:
๋์ (์ง๊ธ์ ํ๊ณ ํ) ๋ถ๊ฐ์ง๋ก ์ ์ ์ฅ์์, ์์ธก์ ์ด์ ํ๋์ ์๋๋ฐฉ์ ์์ ์ ๋ํด ๊ณ ์์ ์ผ๋ก ๋ํ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ๋น์ ์ .NET Core ์ปค๋ฎค๋ํฐ์ ๋ํ ๋์ ์ ์ ์ ์ด๋ฏธ์ง๋ฅผ ๊ฑด์ค์ ์ด์ง ์๊ณ ๋ ๋์๊ฒ ์ค์ ํ๋ ๋ฐ ์ฑ๊ณตํ๊ณ ์์ต๋๋ค. ์ธ์์ ๋ํด ์ด์ผ๊ธฐํ์ญ์์ค ...
NuGet์ด ์๋ ๋๋ถ๋ถ์ ํญ๋ชฉ์ csproj์ ๋ณํฉ๋ฉ๋๋ค. project.json(nuget.json?)์ด ์์ผ๋ฉด NuGet ํญ๋ชฉ์ ์ด๋ป๊ฒ ๋ฉ๋๊น?
์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐฉ์์ผ๋ก ์ข
์์ฑ์ ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ณ NuGet์ด .net ์ปค๋ฎค๋ํฐ์์ ์ ํ๋ฆฝ๋์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก dotnet nuget
๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ dotnet ํต์ฌ ํญ๋ชฉ์ ์ข
์์ฑ์ ๊ด๋ฆฌํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ์ปคํํ์ง ๋ง์ญ์์ค( dotnet restore
๋ dotnet nuget restore
๊ฐ์ง ์์์ผ ํจ). ๋ง์ ์ฌ๋๋ค์๊ฒ nuget์ ํจํค์ง ์ ์ฅ์์ผ ๋ฟ ์๋๋ผ ์ข
์์ฑ ๊ด๋ฆฌ์, ์ฌ๋๋ค์ "์ข
์์ฑ ๊ด๋ฆฌ์" ์ฌ์ฉ ์ฌ๋ก์ ๋ ์์ฐ์ ์ด๊ณ ์ ํฉํ๋ค๊ณ ์๊ฐํ ์ ์๋ ๋ค๋ฅธ ์ ํ ์ฌํญ์ด ์์ต๋๋ค.
์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด IntelliSense๋ฅผ ์ ์งํฉ๋๊น? ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก project.json์ ๋ํ ์ต๊ณ ์ ๋ฐ๋ชจ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
๋ ผ๋ฆฌ์ ์ฉ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ ๋ ์ด๊ฒ์ ํฐ ๋ฌธ์ ๋ก ๋ณด์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด nuget.org๋ก ์ด๋ํ์ฌ ํจํค์ง๋ฅผ ๊ฒ์ํ๊ณ URL์์ ID๋ฅผ ๋ณต์ฌํ๋ฉด ํจ์จ์ ์ ๋๋ค.
bash
๋๋ zsh
์ฌ์ฉํ๋ ์ฌ๋๋ค๋ก๋ถํฐ ๋ง์ ์ฐฌ์ฌ๋ฅผ ๋ฐ์ ์
ธ ์์ฑ ๊ธฐ๋ฅ๋ ์ ๊ณตํ ์ ์์ต๋๋ค.
dotnet nuget add S[tab]
๋ S
์์ํ๋ ํ๋ก์ ํธ ์๋ณ์์ ๋ํ ์๋ฃ ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค.
<NuGet>
ํ๊ทธ๋ฅผ ๊ฑฐ๊ธฐ์ ๊ตฝ๊ณ ์ถ๋ค๋ฉด msbuild *proj ํ์ผ์ intellisense๋ฅผ ๊ฐ๋ ๊ฒ๋ ๊ฐ๋ฅํด์ผ ํ์ง๋ง, ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ฒด ์ํ๊ณ์ ํ๋ ์ปคํ๋ง์ ํ์ง ๋ง์ญ์์ค. ์ฆ, <Package>NuGetPackageId</Package>
์๋ฉ๋๋ค. t๋ <NuGet>NuGetPackageId</NuGet>
์ ๋์ผํ๊ฑฐ๋ ์ด๋ฅผ ์ฌ์ ์ํ๋ ๋งค์ฐ ๊ฐ๋จํ(๊ทธ๋ฆฌ๊ณ ๋งค์ฐ ์ ๋ฌธ์ํ๋๊ณ ์ง์๋๋) ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
Paket Visual Studio ํ๋ฌ๊ทธ์ธ์๋ nuget์์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ด ์์ง๋ง ์๋ํ์ง๋ง nuget.org์์ ์๋ต์ ๋ฐํํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด์จ๋ ๋๋ฆฝ๋๋ค.
์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด JSON ํ์์ ์ ์งํ๊ณ ์์ต๋๊น? XML์ ๊ทธ๋ฐ ์ข ๋ฅ์ ์ผ์ ๋์ฐํฉ๋๋ค(Maven ์ฐธ์กฐ). JSON์ ์ด๋ฌํ ์ข ์์ฑ์ ๋ํ๋ด๊ธฐ ์ํด ๋ ๊ฐ๋จํฉ๋๋ค.
ํ์์ ๋ํ ์์ด๋์ด๋ฅผ ์ฐพ๊ณ ์๋ค๋ฉด paket.dependencies
๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ณ๋ก ์ค์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. project.json
ํธ์ง์ packages.config
ํธ์ง๋งํผ ์ข์์ต๋๋ค
์ฐธ๊ณ ๋ก lock
ํ์ผ์ด ์ฌ์ ํ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ฝ์ ์ ์๊ณ ์ ์ฅ์์์ ํ์ธํ๊ณ diff๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๊น?
@rhires ์ด ์์ ์์ msbuild๋ ์ด ํ๋ก์ธ์ค์์ ๋ฌด์์ ์ถ๊ฐ/๋นผ๊ธฐ/๋ฐ๊พธ๊ธฐ/์์/๋ฐ๊พธ๋์?
๊ธ์, ๊ทธ๊ฒ์ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ํตํฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌ๋ ค ์์ต๋๋ค. ๊ณต๊ฐ ์ ๋ณด๊ฐ ์ ํธํ๋ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ํ์๋๋ dotnet ๋น๋์ msbuild๋ฅผ ๊น์ด ํตํฉํ์ฌ "ํ๋ ์ ๊ธ"์ ์ํํ๋ฉด ์ ์ฒด๊ฐ msbuild๋ก ๋์ฒด๋ฉ๋๋ค.
๊ทธ๋ฌ๋ dotnet build
๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๋ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
@neoKushan ๊ทธ๋ ๊ธฐ ๋๋ฌธ์
๐
๋ด๊ฐ _discuss_ ํ๊ณ ์ถ์ ๊ฒ์ dotnet build
๊ฐ _๋ง์ ๊ฐ๋ฅํ ๋น๋ ๋๊ตฌ ์ค ํ๋๋ก MSBuild์ ์
ธ ์์ํ ์ ์๋ ์ธ์์์ project.json ๋ฐ csproj๊ฐ ์ด๋ป๊ฒ ๋ณด์ฌ์ผ ํ๋์ง์
๋๋ค. ๊ด์ฐฎ์? project.json์ ๋ฌด์์ด ์๋์ง์ csproj์ ๋ฌด์์ด ์๋์ง์ ๋ํด ์ด์ผ๊ธฐํ ์ ์์ต๋๊น?
์๋ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ ์ ์๋ค๋ฉด ์ด ์ค๋ ๋๊ฐ ์ค์ ๋ก ๊ฑด์ค์ ์ผ ์ ์๋ค๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@jmm ๋น์ ์ .NET Core ์ปค๋ฎค๋ํฐ์ ๋ํ ๋ด ์ ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๊ฑด์ค์ ์ด๊ณ ๋ ๋์๊ฒ ์ค์ ํ๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค.
๋ฏธ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ์ด ์๋ค๋ฉด ๋ค๋ฅธ ๊ฑฐ๋ํ ์คํ ์์ค ํ๋ก์ ํธ์ ์ฑํ ์์นด์ด๋ธ๋ฅผ ์ฝ์ด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ ผ์์ ์ค์ ๋ก ์ถ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฑด๊ฐํ ์ปค๋ฎค๋ํฐ์ ํ์์ ๋๋ค. ๋ชจ๋ ์ฌ๋์ด ๋งน๋ชฉ์ ์ผ๋ก ์ง๋์๋ฅผ ๋ฐ๋ฅผ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ํฉ์ด ์ข์ง ์์ต๋๋ค. ๊ฒฐ์ , ์ฆ๊ฑฐ ๋ฐ ์์ฌ ๊ฒฐ์ ์ ์ฌ๋ฌธ์ ๋ฐ์ ์ ์๋๋ก ๊ณต๊ฐ๋์ด์ผ ํฉ๋๋ค.
@shederman ์์ฐ์ ์ธ ๋ ผ์๋ฅผ ๊ณ์ํ๊ธฐ ์ํด ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฏธ๋ฅผ ๋ ผ์ํ๊ธฐ ์ํด ์ ์ ๊ธ๊ณ ์ถ์ต๋๋ค.
์ฌ๊ธฐ์ ํต์ฌ ํ ๋ก ์ "์" .csproj์ ๋ ์ด์์๊ณผ ํ์๊ณผ project.json(๊ตฌ์ฒด์ ์ผ๋ก๋ "ํ๋ก์ ํธ" ๊ตฌ์กฐ ์ ์ฒด)์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง์ ๊ดํ ๊ฒ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น๋ ์์คํ ์ด msbuild์ธ์ง ์๋์ง, dotnet build๊ฐ ์๋ํ๋ ๋ฐฉ์ ๋ฑ์ _this_ ๋ฌธ์ ์ ๋ฒ์ ๋ด์ ์์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ทธ๊ฒ์ ๋ํ ํ ๋ก ์ด ํ์๋ฐ์ง ๋ชปํ๊ฑฐ๋ ์ ํจํ์ง ์๋ค๋ ๊ฒ์ด ์๋๋ผ ๋จ์ง ์ด _ํน์ _ ๋ฌธ์ ์ ์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์คํ๋ ค ๋ณ๊ฐ์ ๋ฌธ์ ์ฌ์ผ ํฉ๋๋ค. ์๋ จ๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ์ฆ๋ช ํ ์ ์๋ฏ์ด, ๋ฒ๊ทธ ๋ณด๊ณ ์์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ๋ณ ๋ฒ๊ทธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ๋งค์ฐ ์ค๋ง์ค๋ฝ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ์ถ์ ํ ์ฌ๋ฌ ๋ฌธ์ ๋ก ๋ถํ ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ ๋ง ์ฌ๊ธฐ์์ ๋๋ฝ๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ด _๊ฐ์ธ์ ์ธ_ ๊ด์ ์์, ๋๋ ๋น๋ ์์คํ
์ด ๋ฌด์์ธ์ง ๋๋ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ดํ์ง ์์ต๋๋ค. ํ๋ ์ฌ๋๋ค์๊ฒ ๋ฌด์งํ๊ฑฐ๋ ๋ฌด์ํ๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฐ๋ค๋ ์๋ฏธ๊ฐ ์๋๋ผ ๊ฐ๋ฐ์ ๊ด์ ์์ ํ๋ก์ ํธ ๊ตฌ์กฐ๊ฐ ์ฌ๋ฐ๋ฅธ ํ "dotnet build"๊ฐ ๋ด ์ด์
๋ธ๋ฆฌ๋ฅผ ๋ฑ์ด๋ธ๋ค๋ ๊ฒ์ ์๊ณ ์ถ์ต๋๋ค. ๋ด๊ฐ ์ผ๋ คํ๋ ๊ฒ์ฒ๋ผ dotnet build
-> ํ๋ก์ ํธ ->
.cs ํ์ผ์ ์ถ๊ฐํ๋ค๊ณ ํด์ ๋ณํฉ ์ง์ฅ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ง๋ ์๊ณ , _๋๋ ์๊ดํ์ง ์๋_ ์ผ๋ถ ์์คํ ์ด ๊ทธ๊ฒ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ฒ ์ค ๊ธธ์ด์ XML ํ์ผ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ์ฐ๋ฆฌ ์ค ๋๊ตฌ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ผ๋ฉฐ ๊ทธ๊ฒ์ ๋ช ๋ ๋์ VS ๊ฐ๋ฐ์ ๋ฒ๊ทธ ๋ฒ ์ด์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ค๋๋ ์ project.json ํ์์ ๋ํ ํฌ๋ง์ ๋น์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ด์ ๋ณด๋ค _ํจ์ฌ ๋ ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. "๋์ ์๋ "์ด์ง๋ง ๋์์ ์ฐ๋ฆฌ๊ฐ ์ค์ค๋ก๋ฅผ ๋๋ฆฌ์ง ๋ง์์ผ ํ๋ค๊ณ ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ค๋๋ project.json์ ๊ฒฐ์ฝ _์๋ฒฝํ์ง ์์ต๋๋ค. ์์ฒด์ ์ธ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ "์ค๋๋" csproj์ ๋ฌธ์ ์ ๋ํด ๊ฐ๊ด์ ์ด๊ณ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ๊ณผ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ์ ๋ํด ๋ ผ์ํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
ํ์คํ _์์ชฝ ์ธ๊ณ์ ์ต๊ณ _ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ฌ๊ธฐ์ ํต์ฌ ํ ๋ก ์ "์" .csproj์ ๋ ์ด์์๊ณผ ํ์๊ณผ project.json(๊ตฌ์ฒด์ ์ผ๋ก๋ "ํ๋ก์ ํธ" ๊ตฌ์กฐ ์ ์ฒด)์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง์ ๊ดํ ๊ฒ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ค์ํผ, ์ด ์ค๋ ๋์์ ๋ช ๋ฒ ์ธ๊ธ๋์์ง๋ง ์ค๋ ์์นจ ๋ด ์์ ์ "๊ฐ์ธ์ ์ธ ์ํ"๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋ค์ ์ธ๊ธํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง Roslyn ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ๊ณผ ํจ๊ป ์งํ ์ค์ธ ๋ค๋ฅธ ๋ ธ๋ ฅ์ด ์์ต๋๋ค. -- ๋๋ readme ์์ ๋ ์ ํํ CPS(์ค์ ํ๋ก์ ํธ ์์คํ ) . ๋ฌธ์๋ฅผ ์ฐพ์๋ณด๋ฉด ํ๋ก์ธ์ค๋ณด๋ค ํ๋ก์ ํธ ์ ์ ๋ ธ๋ ฅ์ด ๋ ๋ง์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์๋ง๋ ์ด๊ฒ์ด .json๊ณผ .csproj ์ฌ์ด์ ๋ชจ๋ ๋ง๋ฒ์ด ํตํฉ๋๋ ๊ณณ์ผ๊น์? ๊ทธ๋ฌ๋ฉด MSBuild๊ฐ ํ๋ก์ธ์ค ๋์ ์ผ๋ก ๊ฐ๋ฑ๋ฉ๋๊น? _๊ทธ๊ฑด_ ์ข์ง ์๊ฒ ์ด์. :์๋ค:
์ด์จ๋ , ๋๋ ๊ทธ๊ณณ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ธฐ ์์ํ๊ธฐ ์ํด ๊ทธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์์/์์ฒญํ์ต๋๋ค. :+1:
(์ด ํ ๋ก ์ ์๋ก์ด ๋ฌธ์ ๋ก ์ฎ๊ฒจ์ผ ํ๋์ง๋ ๋ฐ์ฏค ๊ถ๊ธํฉ๋๋ค.)
@neoKushan ํ์คํ msbuild๊ฐ ๊ด๋ จ๋์ด ์๋ค๋ ์ฌ์ค ์์ฒด๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ msbuild์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด์ ์ฌ๋์ด ์ฝ์ ์ ์๊ณ ํธ์ง ๊ฐ๋ฅํ ๊ฐ๋จํ ํ์ผ ํ์์ ์ ์งํ ์ ์๋ ๊ฒฝ๋ก๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ฅผ ๊ฑฑ์ ์ํค๋ ๊ฒ์ "msbuild๋ ์ ํฌ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค"์ ๊ฐ์ ์ฃผ์ฅ์ ๋๋ค. ์ผ๋ฐ msbuild๋ ํ์ง๋ง ํ์ฌ xplat์ ๊ทธ๋ ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ด๋ จ github ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๋ฉด ์์ง ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ๋ํ msbuild ํ์ ์ด๋ฏธ ์/ํฅ์๋ ์ง๋ ฌํ ํ์ ์ง์์ด msbuild์ ๋์์ด ์๋๋ผ ์๋ก์ด ๋น๋ ์์คํ (๊ณง ๋ฐ์ํ์ง ์์ ์์ )์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค.
๋๋ ๋ํ ์ฌ๋๋ค์ด ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ด ์ข ์์ฑ์ ์ ๊ฑฐํ๋ ๊ฒ๋ง ์ถ๊ฐํ๋ค๊ณ ๊ฐ์ ํ ๋ ๊ฑฑ์ ๋ฉ๋๋ค. ์๋ง๋ ๊ทธ๋ค์ ๋จ์ง 'hello worlds' ์ฑ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ buildOptions ๋ฐ ๋ชจ๋์ปค์ ์ํ ์ฌ์ ์์ ๊ฐ์ ๋ค๋ฅธ ์ต์ ์ ๋งค์ฐ ๊ฐ๋ ฅํ๊ณ ํธ๋ฆฌํฉ๋๋ค. ํ์ฌ json ์คํค๋ง ๊ธฐ๋ฐ ํธ์ง๊ธฐ ๊ฒฝํ์ ๋งํ ๊ฒ๋ ์์ด ํ๋ฅญํฉ๋๋ค.
ํ ๊ฐ์ง ๊ฒฝ๋ก๋ project.json์ ๋์์ผ๋ก ๋ก๋ํ๋ msbuild ์์ ์ ๊ฐ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ csproj์ ํด๋น ์์ ์ ์ถ๊ฐํ project.json์ ํ์ฑํํ๋ ค๋ ๊ฒฝ์ฐ ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ ์ค์ ์์ ์ ํํ๋๋ก ํฉ๋๋ค.
@Mike-EEE ํฌ๋ง์ด ์์ต๋๋ค :)
ํ์ฌ์ ๊ฒฝํฅ์ project.json์ด nuget.json์ด ๋๋๋ก ํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ข ์์ฑ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๊ณ ๊ธฐ์กด project.json ๊ธฐ๋ฅ์ ๋๋ถ๋ถ์ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
๋ด๊ฐ ์์๋ผ ์ ์๋ ์ ์ผํ ๊ฒ์ ์ด๊ฒ์ด ๋ค์ค ํ๊ฒํ ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์ ๋๋ค. csproj ๋ฐ nuget.json์ ๊ฐ๊ฐ์ด ํ๊ฒํ ํ๋ ๋์์ ์ธ์ํ๊ณ ์ดํดํด์ผ ํฉ๋๊น? ๋ชจ๋ ๋์์ ๋ํด csproj๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๊น(์ด๋ฐ!), ์๋๋ฉด .csproj๋ฅผ ํ์ฅํ์ฌ ์ด๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น?
project.json์ nuget.json์ด ๋ฉ๋๋ค.
์ฌ๊ธฐ๊ฐ ๊ถ๊ธํฉ๋๋ค... _์ด_ ๋ํ๊ฐ ์ด๋์์ ์ผ์ด๋๊ณ ์๋์? ๋๋ ํน์ ํ์์ผ๋ก ๊ณ ์ ํ๊ธฐ ์ํด ์ ์ ๋๊ฒ ํ์ ํฉ๋ฅํ์ต๋๋ค. project.json๊ณผ ๊ด๋ จํ์ฌ ๊ทธ๋ค์ ๊ทธ๊ฒ์ด Visual Studio ๋๊ตฌ ๋ฌธ์ ์ด๋ฉฐ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ผ๊ณ ๋งํ์ต๋๋ค. ์ด์ ์ญํ์ด ๋ณ๊ฒฝ๋์ด ๋์ผํ ์ข ๋ฅ์ ๋ฌธ์ ๋ฅผ ๋ ๋ง์ด ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐํ ๊ฒ ๊ฐ์ต๋๋ค. :stuck_out_tongue:
๋ด ์ฐ๋ ค๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ ์ด์ JSON๊ณผ XML์ ํจ๊ป ํผํฉํ์ฌ ์ต์ํ ๋นํจ์จ์ฑ์ ์์ฑํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์์ ๊ถ๊ธํด์์... ์ด ๋ํ๊ฐ ์ด๋์ ์ผ์ด๋๊ณ ์๋ ๊ฑด๊ฐ์?
๊ธ์, ๊ทธ๊ฒ์ ์๋ ์ฌ๊ธฐ์ ์ธ๊ธ๋์์ต๋๋ค: https://blogs.msdn.microsoft.com/webdev/2016/05/11/notes-from-the-asp-net-community-standup-may-10-2016/
project.json ํ์ผ์ด ๋จ์ ์๊ณ NuGet์ ๋ํ ๋ชจ๋ ํจํค์ง ์ฐธ์กฐ๊ฐ ํฌํจ๋์ด ์๊ณ ์ด๋ฆ์ด nuget.json์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฐ๋ก ์ฌ๊ธฐ์์ ๋ ผ์ํ๋ ๋ด์ฉ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. project.json์์ ์ผ๋ง๋ฅผ ๊ฐ์ ธ์ค๊ณ .csproj์ ๋ฃ์ต๋๊น? ๋ด ํ๋ก์ ํธ์์ project.json์ ๋๋ถ๋ถ์ ํนํ ์ฌ๋ฌ ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ ํจํค์ง ์ฐธ์กฐ์์ต๋๋ค. ์์ ๋ด์ฉ์ ์ด ๋ชจ๋ ๊ฒ์ด ๋จ์ ์๊ณ "๊ธฐํ" ๋นํธ๋ง ์ ๊ฑฐ๋ ๊ฒ์์ ์์ํฉ๋๋ค. ๋ด (๋ค์: ๊ฐ์ธ) ๊ฒฝํ์์ ์ด๋ฌํ "๊ธฐํ" ๋นํธ๋ ํ๋ก์ ํธ ์๋ช ๋์ ์ค์ ๋ก ๋ง์ด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก XML์ ์๋๋ผ๋ XML์ด ๋ง์ง ์๊ณ ์๋นํ ์ ์ ์ด์ด์ผ ํฉ๋๋ค. .
๋ค์ํ ๊ตฌ์ฑ์ ๋ํด XML๊ณผ JSON์ ํผํฉํ๊ณ ์ผ์น์ํค๋ ๊ฒ์ด ์ฝ๊ฐ ๋์๊ฐ ๋๋ ๋ฐ ๋์ํ์ง๋ง JSON์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์ ๋ํ ์ด๋ ฌํ ํฌ์ด ์๋๊ธฐ ๋๋ฌธ์ JSON์ ๋ํด ๋ค์ ํธํฅ๋์ด ์์ต๋๋ค. ๋ฌผ๋ก ๊ฐ์ธ์ ์ธ ์ทจํฅ์ด์ง๋ง.
๊ธ์, ๊ทธ๊ฒ์ ์๋ ์ฌ๊ธฐ์ ์ธ๊ธ๋์์ต๋๋ค ...
์ ์...๋ฌผ๋ก ์ด์ฃ ! ํ์ธ. ํ์ธํ๋ ์ค์ ๋๋ค. ๋ฐ๋ผ๊ฑด๋ ๋ด์ผ์ ์ฐ๋ฆฌ๊ฐ ๋ง์นจ๋ด ์ด๊ฒ์ ๋ํด (์ข๋ ๋์๋ !) ์ฝ๊ฐ์ ๋ช ํ์ฑ์ ์ป๋ ๋ ์ด ๋ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ๊ตฌ์ฑ์ ๋ํด XML๊ณผ JSON์ ํผํฉํ๊ณ ์ผ์น์ํค๋ ๊ฒ์ด ์ฝ๊ฐ ๋์๊ฐ ๋๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์ ๋ง ๋ณด๊ณ ์ด๋ฐ ๋๋์ด ๋๋๊ฒ ์๋์ด์ ์ ๋ง ๋คํ์ ๋๋ค. :) ์ฒ์์ผ๋ก .JSON์ด ํ๋ก์ ํธ์ ๋ค์ด๊ฐ๋ ๊ฒ์ ๋ณด๋ ์ฌํ๊ณผ ์ธ์ ์ ๋ ๊ทธ๊ณณ์ ํ๋์ ์ธ๋ก์ ๋ณด์์ต๋๋ค. web-appdev ๋ฐฐ๊ฒฝ์์๋ ์์ ํ ๋ง์ด ๋์ง๋ง ๊ธฐ๋ณธ appdev๋ ๊ทธ๋ ์ง ์์ผ๋ฉฐ XML์ ๊ฒฝ์ฐ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
ํํ... ๊ทธ๋ฌ๊ณ ๋ณด๋ ์์ ๊ธ์ ์ฐ๋ฉด์ ์์ ์์นด์ด๋ธ๋ฅผ ๊บผ๋ด๊ฒ ๋๋ค์. ์ฌ๊ธฐ 2014๋ ์ ์ ๊ฐ JSON ๋์ Xaml์ ๋ํ ์ฌ๋ก๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค . ๋๋ฌด ๊ท์ฝ๊ณ ๊ฒธ์ํฉ๋๋ค! ์๋ , ๋ด๊ฐ ๋ฐฐ์ธ ์ธ์์ด ์์๋์? :stuck_out_tongue: ํ์ง๋ง ์ด๋ ์ ๋ ์ง์ ์ด ์์๋ค๊ณ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๊ฒฐ๊ตญ ์น ์๋ฒ ๊ตฌ์ฑ์ ์ฌ์ฉ๋๋ .ini๋ฅผ ์ ๊ฑฐํ์ต๋๋ค . :์๋ค:
@neoKushan ๋ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ ์ฅ์ ์ด ๋ถ๋ช ํ ์์ต๋๋ค.
๐ฏ ๐ฏ ๐ฏ
@neoKushan ๋๋ ํ์ฌ์ ๊ฒฝํฅ์ด project.json์ด nuget.json์ด ๋๋๋ก ํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค...๋ด๊ฐ ์์๋ผ ์ ์๋ ์ ์ผํ ๊ฒ์ ์ด๊ฒ์ด ๋ฉํฐํ๊ฒํ ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น๋์ง ์ ๋๋ค. csproj์ nuget.json์ด ์๊ณ ์์ด์ผ ํ ๊น์ ๊ฐ ๋์์ด ๋ฌด์์ธ์ง ์ดํดํ๊ณ ๊ณ์ญ๋๊น?
project.json ์คํค๋ง๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ด ๊ด์ ์์ ๋ค์ ํญ๋ชฉ์ ๋น๋ ์ ์ ํ์ผ์ ์์ด์ผ _์๋_ ํด์ผ ํฉ๋๋ค.
๋ค์์ ๋น๋ ์ ์ ํ์ผ์ ์์ด์ผ ํ๋ _๋ฏฟ๋_ ๊ฒ์ ์๋์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ _meh_ ๊ฒ์ ๋๋ค.
๋ค์์ ์๋ง๋ ๋น๋ ์ ์ ํ์ผ์ _should_ ์์ด์ผ ํฉ๋๋ค.
์์ ๋ด์ฉ์ ํ ๋ก ์ ์ ๋ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ฐ๋ณ ์ฌํญ์ ๋ํด ํ ๋ก ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ํ์ผ์ ์ด๋ฆ๊ณผ ํ์ฌ ํ์์ ๋ฌด์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@shederman "๋น๋ ์ ์"๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ๋ช ํํ ํด์ผ ํฉ๋๊น? ์๋ง๋ ๋ด ์ฉ์ด๊ฐ ๋ง์ง ์์ ์ ์์ง๋ง ํ์ฌ project.json์ _build definition_ ํ์ผ์ด ์๋๋ผ _project definition_ ํ์ผ์ด๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค(์ csproj ํ์ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค). ์๋ฏธ๋ก ์ ์ผ ์๋ ์์ง๋ง ๋์๊ฒ ๋น๋ ์ ์๋ _๋ฌผ๊ฑด์ด ๊ตฌ์ถ๋๋ ๋ฐฉ์์ ์ ์ํ๋ค๊ณ ์ ์ํ๋ ๋ฐ๋ฉด ํ๋ก์ ํธ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ฅผ ์ ์ํ๊ณ ๋น๋ ๋จ๊ณ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋จ๊ฒจ๋ก๋๋ค.
_์ด๊ฒ์ ๋ด ํ๋ก์ ํธ์ด๋ฉฐ ์ด๋ฌํ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ด๋ฌํ ์ข ์์ฑ์ด ์์ต๋๋ค. ๋น์ ์ด ๊ทธ๊ฒ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ด ๊ด์ฌ์ฌ๊ฐ ์๋๋๋ค._
์ด์ ๋ธ๋ฆฌ ์ด๋ฆ์ด ์ต์์ ํด๋์์ ์ค๋ ๊ฒ๊ณผ ๊ฐ์ ๊ท์น์ ํตํด ๋ง์ ํ๋ก์ ํธ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ๊ณ ๋ฐฉ์์ ๋ฐ๋ฅด๋ฉด _nuget.json_์ nuget๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ด๋ฏ๋ก ํจํค์ง/์ข ์์ฑ์ด ๊ฑฐ๊ธฐ์ ๋ค์ด๊ฐ๊ณ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ทธ๊ฒ์ ๋ง์กฑํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ํ์คํ ๊ฒฐ์ ํ ์ ์๋ ๊ฒ์ ๋์ ํ๋ ์์ํฌ์ ๋๋ค. Nuget.json์ด ์ข ์์ฑ ํด๊ฒฐ์๋ง ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํ ๋ ์ฐธ์กฐ์ ๋ํด ์ผ๋ถ ๋ถ๋ฆฌ๊ฐ ์์ ์ ์์ง๋ง ์ค์ ๋ก ๋์์ผ๋ก ํ๋ ํ๋ ์์ํฌ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋์ง ์์ ํ ํ์ ํ ์ ์์ต๋๋ค. ์ ์_ (๊ทธ๊ฒ์ด ๋ฌด์์ด๋ ๊ฐ์).
๊ทธ๋ฐ ๋ค์ ๋ค์ ๋งํ์ง๋ง, ๋จ์ํ ํจํค์ง ์ฐธ์กฐ๋ณด๋ค ๋๊ฒ์ ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํจํค์ง _definition_ ๋ฐ ๋ฒ์ ๋ ํฌํจ๋์ด ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ nuget ํจํค์ง๊ฐ _becomes_์ธ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. nuget.json์ด ์ต์ํ ๋ ๊ฐ์ง ๋ค๋ฅธ ์์ ์ ์ํํ๊ณ ์ฝ๊ฐ์ ๋์๊ฐ ๋๊ธฐ ์์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์๋ง๋(์ฌ๊ธฐ์ ๊ทธ๋ฅ ๋ฑ์ด๋ด๊ธฐ๋ง ํ๋ฉด ๋จ) csproj๋ ํจํค์ง, ๋์ ํ๋ ์์ํฌ ๋ฑ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ์ํ๊ณ ๊ฐ ๋์ ํ๋ ์์ํฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ฒ ํจํค์ง์ธ .json ํ์ผ์ ๊ฐ๋ฆฌํฌ ์ ์์ต๋๋ค. ์ฆ, ํ๋์ nuget.json ๋์ ๊ฐ ํ๋ ์์ํฌ์ ๋ํด ๋ณ๋์ .json ํ์ผ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์ฐํ ์๊ฐ์ผ ์ ์์ต๋๋ค. ์ ๋ ํน๋ณํ ์๊ฐํด ๋ณธ ์ ์ด ์์ต๋๋ค.
https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/ :
์ฐ๋ฆฌ์๊ฒ๋ ๋ ๊ฐ์ง ์ ํ์ด ์์์ต๋๋ค. ํ๋๋ ๋ชจ๋ .NET ํ๋ก์ ํธ๋ฅผ project.json์ ์ฌ์ฉํ๋๋ก ์ด๋ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ Visual Studio, Xamarin ๋ฐ Unity์ ๊ฐ์ ํํธ๋์ ๋ชจ๋ ํ๋ก์ ํธ ์ ํ์ ๋ค๋ฃจ๋ ๋๊ตฌ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๊ฐ ํ๋ก์ ํธ ์ ํ์ ํ์ํ ๋ชจ๋ ๋น๋ ์๋๋ฆฌ์ค๋ฅผ ์ง์ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์คํ ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ค๋ฉด project.json์ ํ์ฅํด์ผ ํฉ๋๋ค. ๋ ๋ค๋ฅธ ์ ํ์ .xproj ํ๋ก์ ํธ๊ฐ .csproj ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ ์ ์๊ณ .csproj ํ๋ก์ ํธ๊ฐ Visual Studio ๋ฐ Xamarin Studio์์ .xproj ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ๋ธ๋ฆฌ์ง๋ฅผ ๋น๋ํ๋ ๊ฒ์ ๋๋ค. ๋ธ๋ฆฌ์ง์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ ๊ฐ์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ .xproj ๋๋ .csproj๋ฅผ ์ ํํด์ผ ํ๋ฏ๋ก ๋ ๋ง์ ์ ํ๊ณผ ๋ณต์ก์ฑ์ด ์ถ๊ฐ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ
์ฐ๋ฆฌ์ ์ ํ์ ์ดํด๋ณธ ํ ๋ชจ๋ .NET ํ๋ก์ ํธ๊ฐ ๋์ผํ ๋๊ตฌ ๋ฐ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๋๋ก .NET Core ํ๋ก์ ํธ๋ฅผ .csproj/MSBuild๋ก ์ด๋ํ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ์ต๋๋ค.
๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ํด .csproj๋ฅผ ๊ฐ์ ํ ๊ณํ์ ๋๋ค.
- ํ๋ก์ ํธ ์์คํ ์ ํ์ผ ๋ชฉ๋ก์ด ์์ต๋๋ค.
- ํ๋ก์ ํธ ํ์ผ์์ ์์ ์ ์ํํ๊ธฐ ์ํ CLI ๋๊ตฌ, ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์์๋ ํ์ผ์ ํธ์งํ์ง ์์ต๋๋ค.
- ํ๋ก์ ํธ์์ ์ง์ ํจํค์ง ๋น๋
- ๋ค์ค ํ๊ฒํ
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ .NET์ด ๋์ผํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ MSBuild ํฅ์์ ์ดํด๋ณผ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋๊ตฌ๊ฐ ์ง๋์น๊ฒ ์ฅํฉํ ํ์ผ ๋ฑ์ ์์ฑํ์ง ์๋๋ก ํ์ฌ XML ๋์ JSON์ ์ง์ํ๋ ๊ฒ์ ๋ํด ๊ณ ๊ฐ๊ณผ ์ปค๋ฎค๋ํฐ๋ก๋ถํฐ ํผ๋๋ฐฑ์ ์์ฒญํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ๋์ผํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ ๋ชจ๋ .NET ํ๋ก์ ํธ์์ ์๋ํ ์ ์์ต๋๋ค.
https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/#comment -71485:
.csproj๊ฐ ์ฌ์ ํ C# ํ๋ก์ ํธ๋ฅผ ์๋ฏธํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋ฌผ๋ก C#์ด ์๋ ํ๋ก์ ํธ์ ๋ํ ๋ค๋ฅธ ๋์๋ ์์ ๊ฒ์ ๋๋ค. ๋ง์ต๋๊น? [๋ฒค]
์. [์ค์ฝง H]
.net์ด msbuild์ ๊ฐ์ ๋ณต์กํ ๋ ๊ฑฐ์ justForTooling ๋น๋ ์์คํ
์ ๊ฐํ๊ฒ ๋ ๊น๋ด ์กฐ๊ธ ๋๋ ต์ต๋๋ค. dotNetCore๋ฅผ ์์ํ๊ณ ์๋ก์ด ์ต์ ๋น๋ ์์คํ
์ ๊ณํํด์ผ ํ ๊น์?
.netcore์ ๋ฐฐ์ก์ ์๋๋ฅด์ง ์๊ณ ๋ชจ๋ ์ฌ๋์๊ฒ ํฌ๋ง์ ์ฃผ๊ณ ์ผ์ ํ ์ ์์ต๋๋ค.
msbuild ํ์ผ์ ์์ฃผ ํธ์งํ ํ์๋ ์์ง๋ง ๋งค์ฐ ์ด๋ ค์ธ ๋ ์ ์ธ์ ์ ๊ทผ ๋ฐฉ์์ ํ๋ฆ์์ ์์ ์ ์๊ฒ ๋ง๋ญ๋๋ค. ์ ์๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. ์๋ฌด๋ ์ด https://github ์ ๊ฐ์ ๊ฐ๋จํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค
6๊ฐ์ ํ ์๋ฌด๋ ๋ํฐ ํดํน ์์ด ๋๋ ์ถ๊ฐ ๋ฐฉ์์ผ๋ก ์์
(๊ฐ๊ฐ ๋ค๋ฅธ ์์
์ ๋ํด ์์ง ๋ชปํ๋ ๋ ๊ฐ์ ๋ค๋ฅธ ์์
)์ ์คํํ ์ ์๋ค๋ฉด ๊ฑฐ๊ธฐ์ ์์ ํด์ผ ํ ๊ฒ์ด ์์ ์ ์์ต๋๋ค.
๊ฐ์ฌ ํด์
ํ๋ก์ ํธ ํ์ผ์์ ์์ ์ ์ํํ๊ธฐ ์ํ CLI ๋๊ตฌ, ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์์๋ ํ์ผ์ ํธ์งํ์ง ์์ต๋๋ค.
:-1:
๋๋ ๋น์ ์ด ์ผ์ ํ๋ ๋ฐ ๋์์ด ๋๋ CLI ๋๊ตฌ๋ฅผ ์ง์งํ์ง๋ง ์ฐธ์กฐ์ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด CLI ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ๋๋ ํ๋ฅผ ๋ผ ๊ฒ์
๋๋ค. Install-package
๋ ํ๋ฅญํ์ง๋ง ํจํค์ง ์ด๋ฆ์ ์ ๋ฐ๋ง ์
๋ ฅํ๊ณ ๋ชจ๋ ๋ฒ์ ๊ณผ ํจ๊ป ๊ฐ๋ฅ์ฑ ๋ชฉ๋ก์ ํ์
์ผ๋ก ํ์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ด์์ต๋๋ค.
cli ๋๊ตฌ๋ ์๋ํ์๋ ํ๋ฅญํ์ง๋ง npm install
๋๋ dotnet restore
์ ๊ฐ์ ๊ธฐ๋ณธ ๋๊ตฌ๋ฅผ ์ ์ธํ๊ณ ๋ ์์
์ ์ํํ๋ ๋ฐ ์ข์ง ์์ ๋ฐฉ๋ฒ์
๋๋ค. dotnet buildoptions define add --framework net451 SOME_DEFINE
์ ๊ฐ์ ๊ฒ์ ๋ฐฐ์์ผ ํ๋ค๋ฉด ํ์คํ ์ด๋ ต์ต๋๋ค. ์ด๊ฒ์ ํฐ ์์ค์
๋๋ค.
์ข์ ๊ฐ๋ฐ ์คํ ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ๋ํ ์ฌ๋(์ด์ ์๋ ์ค์ ๋ก ํ๋ฅญํ์ง๋ง) ์ค ํ ์ฌ๋์ ๋ค๋ฅธ ์ฌ๋์ ๋ฐ์๋ค์ผ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
Unity ๋ฐ xamarin ์ธ์๋ ์ค์ ๋ก ๋งค์ฐ ๋์ฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด ๊ณง .net ์ฝ์ด๋ก ์ด๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ, .net์ ๋ฏธ๋๋ฅผ ์ค๊ณํ ๋ ํธ์๋ฅผ ์ํด ๋ค๋ก ๊ฐ๋ ๊ฒ์ ๋จ์ง ์ ๋ฆ๋ฐ์ด์ผ ๋ฟ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ .NET์ด ๋์ผํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ MSBuild ํฅ์์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
๊ฐ์ ๋ก ์ ์ฉ๋๊ธฐ ์ ์๋ MSBuild๊ฐ ํฅ์๋์ง ์์์ต๋๋ค...
์ด ๊ธฐ์ฌ๋ ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ค๋ฆฌ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์๋๋ฉฐ .net ์ฝ์ด๊ฐ ๊ฑฐ๊ธฐ์์ ์๋ชป ์๋ด๋๊ณ ์์์ ํ์ธํฉ๋๋ค.
cli ๋๊ตฌ๋ ์๋ํ์ ์ ํฉํ์ง๋ง npm install ๋๋ dotnet restore์ ๊ฐ์ ๊ธฐ๋ณธ ๋๊ตฌ๋ฅผ ์ ์ธํ๊ณ ์์ ์ ์ํํ๋ ๋ฐ๋ ์ข์ง ์์ต๋๋ค.
๋ค์ ํ ๋ฒ ์ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฌธํ/์ ํธ/์ฒ ํ์ ์ถฉ๋์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธธ์ ๋ฐ๋ผ ์ด๋๊ฐ์ CLI๊ฐ GUI๋ฅผ ๋์ฒดํ๋ ์ข์ ์์ด๋์ด๊ฐ ๋์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ (๋ค์ ํ ๋ฒ) ์ ๊ทผ ๋ฐฉ์์ ์ ํธํ๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ง ๋ชจ๋๊ฐ ์ค์ ๋ก ํ์ํ ๋์ ๋๋ค. ์ง์์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด ์์ญ์์ ์ฝ๊ฐ์ ํ์ ์ด ํ์คํ ํ์ํฉ๋๋ค. CLI๋ ์์ฑ๋์ง๋ง GUI๋ ์์ฑ๋์ง ์์ผ๋ฉฐ ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๋์๊ฒ API๋ฅผ ์์ฑํ๋ ค๋ฉด ์ผ์ข ์ ํ๋ ์์ํฌ๊ฐ ํ์ํ ๊ฒ ๊ฐ์ผ๋ฉฐ ๊ทธ๋ฌ๋ฉด CLI ๋ฐ GUI ๋ฒ์ ์ด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ถ๋ฅผ ์ ์์ต๋๋ค... CLIGUIAPI! :+1: :+1: :+1: #๋ฌธ์ ํด๊ฒฐ
์ด ๋ฌธ์ ๋ ๋ฌธํ/์ ํธ/์ฒ ํ์ ์ถฉ๋์ ๋๋ค.
ํ์คํ ์ด๊ฒ์ ๊ฐ๋ฅํ ์ต์์ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๊ฐ ์ ๊ทผ ๋ฐฉ์์ ํด๊ฒฐํ๋ ๊ฒ ์ธ์๋ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์
๋๋ค. node.js
๊ทธ๋ฆฌ๊ณ ์ ๋ ์ด ์คํ์ ๊ฐ์ฅ ์ด๋ ฌํ ํฌ์ด ์๋๋๋ค. ํ๋ฅญํ cli ๋๊ตฌ npm ๋ฐ package.json์ ์ฌ์ฉํ์ฌ ์ด ์์
์ ํ๋ฅญํ๊ฒ ์ํํ์ต๋๋ค. Gui ๋ถ๋ถ์ ๋ค์ํ ๊ณต๊ธ์
์ฒด(webstorm, vs code, Visual Studio)์ ์ํด ํด๊ฒฐ๋ฉ๋๋ค. gulp์ ๊ฐ์ ๋ฉ์ง ๋น๋ ์์คํ
์ 100% ์ ํ ์ฌํญ์
๋๋ค.
์๋ง๋ ๋๋ ์ด๊ฒ์ ๋ํด ์์์ผ ์๋ ์๊ณ ์๋ ์๋ ์์ง๋ง project.json์ ์ข์ํ์ง๋ง ์ด์ ๋ ์ฌ๊ธฐ์ ์ค๋ช ๋์ด ์์ต๋๋ค. https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project -json/ ๋์๊ฒ ๋ง์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ข์ ๊ฒฝํ์ ํ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ๊ฝค ํ์ ํ๊ณ ์์ด์ ์ด๊ฒ์ ๋ํด ์ ๋ง๋ก ๊ฑฑ์ ํ์ง ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ด๋ฌํ ์๋ก์ด ํ๋ ์์ํฌ์ ๋ํ ๋์ ์ด์ ์ ๊ฒฐ์ฝ ๊ฐ์์ํค์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ๋ง์ง๋ง ๊ฒฝํ์ด ์ด๋จ์ง ๋ณด๊ธฐ๋ ์ ์ ๊ฐํด์์ ๋์ ์ธ์์ ๋์ธ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ณด๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ผ๋ง ์ ์ ์ฝ๊ธฐ๋ฅผ ์ค๋จํ์ง๋ง project.json
๋ํ ํ์คํ ๋ต๋ณ์ด ๋์ค๋ ๋๋ก ์ด ๋ฌธ์ ๋ฅผ ์ข
๋ฃํ๊ฒ ์ต๋๋ค.
dotnet restore
๋ช
๋ น์ ์ํด .csproj๊ฐ ์์ฑ๋๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์ ์ ์ด์์ ๋๊ธฐํ๋์ง ์๋ project.json๊ณผ .csproj๋ฅผ ๋ชจ๋ ์ ์งํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์ฐจ์ด์ ์ dotnet restore
"project.lock.json"์ ์์ฑํ๋ ๋์ (๋ค๋ฅธ ์์
์ ์ํํ๋) ".csproj" ํ์ผ์ ์์ฑ(๋๋ ์
๋ฐ์ดํธ)ํ๋ค๋ ๊ฒ์
๋๋ค. "project.lock.json"๊ณผ ".csproj"๋ ๋ ๋ค ์๋ ์์ฑ๋๋ฏ๋ก ๊ทธ๋๋ก ๋ ์ ์์ต๋๋ค. ํ๋๊ทธ๋ .csproj๋ฅผ ์์ฑํ๊ธฐ ์ํด dotnet restore
์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐํ์์ Microsoft๋ ์ด๋ฏธ "ํ๋ก์ ํธ ํ์ผ์ ๋ํ ๋ชจ๋ ์์
์ ์ํํ๊ธฐ ์ํ CLI ๋๊ตฌ, ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์์ ํ์ผ์ ํธ์งํ์ง ์์ ๊ฒ"์ด๋ผ๊ณ ๋งํ๊ณ ์์ต๋๋ค. IMHO, dotnet restore
๋ project.json์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ CLI ๋๊ตฌ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ์ฅ์ ์-
dotnet restore
๋ .csproj ํ์ผ์ ํ๋ก์ ํธ ํ์ผ์ ๋ช
์์ "ํฌํจ" ๋ชฉ๋ก์ ์ฝ์
ํ ์ ์์ต๋๋ค.๊ทธ๋... ์๋.
ํ์. ํ ์ ์๋ ๋ง์ ๋ค ํ์ต๋๋ค.
๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ๋ง๋ค์ด์ ธ์ผ ํ๋์ง ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๋์์ธ ํ์ ์๊ณ ์ถ๋ค๋ฉด ...
๊ทธ๋ ์ง ์์ผ๋ฉด ๊ณต๊ฐ์ด ๋ญ๋น๋๊ณ ํนํ... ๋ฐ์ ํธ์งํจ์ ๊ฐ๋ ์ฑ์ฐ๊ฒ ๋ฉ๋๋ค.
@MaximRuiller ๋ ์์์ ์์๋ ๋ถ๊ตฌํ๊ณ ์ด๊ธฐ ์ง๋ฌธ์ ๋ตํ๋ ๋ฐ ์ค์ ์ ๋ ์๊ฒฌ์ ์์งํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@neoKushan "๋น๋ ์ ์"๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ๋ช ํํ ํด์ผ ํฉ๋๊น? ์๋ง๋ ๋ด ์ฉ์ด๋ ๊บผ์ ธ ์์ง๋ง ํ์ฌ project.json์ ๋น๋ ์ ์ ํ์ผ์ด๋ผ ๋ถ๋ฅด์ง ์๊ณ ์คํ๋ ค ํ๋ก์ ํธ ์ ์ ํ์ผ์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค(์ csproj ํ์ผ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค). ์๋ฏธ๋ก ์ ์ผ ์๋ ์์ง๋ง ๋์๊ฒ ๋น๋ ์ ์๋ ๋น๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๋ฐ๋ฉด ํ๋ก์ ํธ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ฅผ ์ ์ํ๊ณ ๋น๋ ๋จ๊ณ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋จ๊ฒจ๋ก๋๋ค.
๋ด ์๊ฐ์ ๊ฝค ๋ง์ ์ง์ . ํ๋ก์ ํธ ์ ์๋ ํ๋ก์ ํธ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ์์ ํ ์ ์ธ์ ์ธ ์ค๋ช ์ ๋๋ค. ๋ฉํ๋ฐ์ดํฐ, ๋ฒ์ , ํ์ผ ์ฌ์ ๋ฑ ๋น๋ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ๋ณํํ๊ธฐ ์ํด ์ํ๋๋ ๋จ๊ณ์ ๋๋ค. ๋น๋ ์ ์๋ ๊ทธ๊ฒ์ ํํํ๊ธฐ ์ํด ์๋นํ ํ๋ถํ ๋ฌด์ธ๊ฐ๊ฐ ๊ฑฐ์ ํ์คํ ํ์ํฉ๋๋ค. ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ฒ์ ์ฝ๋์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์ด ๋ฌด์๋ฏธํด ๋ณด์ ๋๋ค.
์ ๋ฐ์ ์ผ๋ก csproj -> project.json -> csproj ์ ์ฒด๋ .NET ์ฑํ IMHO์์ MS๋ฅผ ๊ดด๋กญํ ์๋ชป๋ ๊ฒฐ์ ์งํฉ์ด์์ต๋๋ค. ๋ ํธ๋ฅด๋ฅธ ๋ชฉ์ด์ง๋ฅผ ์ํด .NET์ ํฌ๊ธฐํ๋ ๊ฐ๋ฐ์๋ค์ ์ถ์ธ๋ ๊ณ์๋ ๊ฒ์ ๋๋ค.
๋๋ฌด ์ฌํผ.
@shederman C#์ ๋ํ Tiobe ์ง์ ํ๋ฝ๊ณผ csproj๋ก ๋ค์ ์ ํํ๊ธฐ๋ก ํ ๊ฒฐ์ ์ฌ์ด์๋ ์๊ด ๊ด๊ณ๊ฐ ์์ต๋๋ค. ๋ํ ํ๋ฝํ๋ Tiobe ์ง์๋ C# ์ํ๊ณ์ ๊ฑด๊ฐ์ด ์ ํ๋๊ณ ์๋ค๋ ํ์๊ฐ ์๋๋๋ค. ๋ ๋ง์ ์ธ์ด๊ฐ ์์ฅ์ ์ง์ ํ๋ฉด์ ํ ์ธ์ด๊ฐ ํฐ ์์ฅ ์ ์ ์จ์ ์ ์งํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๋๋ ์ ์ฒด์ ์ธ ์ํฅ์ ๋ํด ๋ช ํํ์ง ์์ง๋ง ์ฌ๊ธฐ์์ ๊ด์ฌ์ ๋ถ๋ฆฌ ํ๊ฐ๊ฐ ์์ด์ผ ํ๋ค๋ ์ ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค. csproj๊ฐ ๋จ์ง ๋ด๊ฐ ํ์ผ์ ์ถ๊ฐํ๊ณ ์๋ค๋ ์๋ฏธ๋ผ๋ฉด, ํ์๋ค์ ๋น๋ ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ๋ค๋ฅธ ์ํฅ์ ๋ํด ์ฐ๋ คํ๊ณ ์์ผ๋ฏ๋ก ๋ณดํธ๋ฅผ ๋์น๊ณ ์๋ ๊ฒ์ ๋๋ค.
csproj๋ ๋ด๊ฐ ์ ํธํ๋ ๊ฒ์ด ์๋๋ผ ์ฉ์ธํ๋ ๊ฒ์ ๋๋ค.
@jerometerry ์ด ์์ฒด๊ฐ ์ ํด์ ์์ธ์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋งํ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ฌ๋ .NET Core์ ๋ง์ ํ์ ์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์์ AWS์ ๋ํ ์์ค์ ๋ง๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ฒ์ฒํ ํ๋์ฉ ์ ๊ฑฐ๋๊ณ ์์ผ๋ฏ๋ก .NET Core๋ ์ ์ ๋ ๊ฐ๋ฐ์๋ฅผ ํ๋ซํผ์ผ๋ก ์ ์ธํ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ฐํด์ง๊ณ ์์ต๋๋ค.
๋ํ ํ์ฌ๊น์ง project.json์ ๋์ ํ๊ธฐ๋ก ํ ๊ฒฐ์ ์ผ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ ์ ์๋ ์๋ชป๋ ์์ฌ ๊ฒฐ์ ์ ์ข์ ์ง์กฐ๊ฐ ์๋๋๋ค.
MS๊ฐ ๊ณผ๊ฑฐ์ ์ง์คํ๊ธฐ๋ก ๋ง์๋จน์๋ค๋ฉด, ๋ฏธ๋์ ํจ๋ฐฐํ์ ๋ ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค. ๋ฌธ์ ์ ๋น ์ง๊ฒ ํ ์๊ฐ์ ๋ฌธ์ ์์ ๋ฒ์ด๋ ์ ์์ ๊ฒ์ ๋๋ค.
๋ ๋ง์ ์ธ์ด๊ฐ ์์ฅ์ ์ง์ ํ๋ฉด์ ํ ์ธ์ด๊ฐ ํฐ ์์ฅ ์ ์ ์จ์ ์ ์งํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์ฌ์ค์ด์ง๋ง ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด .NET์์ ํ์ํ ๊ฒ๋ณด๋ค ๋ ๋ง์ ํผํด๊ฐ ์ฐํธ์ ์ธ ํ์ฌ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
BTW... ์ด์ ์คํ ๋์ ๋ ์์๋์? live.asp.net์ ๋ก๊ทธ์ธํ์ง๋ง ๋น๋์ค/ํผ๋ ๋๋ ์๋ฌด๊ฒ๋ ์์ด ์นด์ดํธ๋ค์ด์ด ์ฌ์ค์ ๋์์ต๋๋ค...
@Mike-EEE ๊ทธ๋ค์ ๋น์ ์ด ์จ๋ค๋ ์์์ ๋ค์์ต๋๋ค :stuck_out_tongue_winking_eye:
๊ทธ๋ค์ด ์ด๊ฒ์ ํ๋ค๋ ์ฌ์ค์ ์ข์ ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ธ๋ก๊ทธ์ ์ฌ๋ ธ์ต๋๋ค: http://www.brettmorrison.com/microsofts-little-decision-is-a-big-mistake
์ค๋์ ์ ์ฅ์์: https://youtu.be/YJsQ3tnS7Ew?t=38m45s
๊ทธ๋ ์ฌ๊ธฐ์์ project.json์ ๊ตฌ์ฒด์ ์ผ๋ก ์ธ๊ธํฉ๋๋ค. https://youtu.be/YJsQ3tnS7Ew?t=26m12s
project.json ํ์์ด ํธ์งํ๊ธฐ๊ฐ ํจ์ฌ ๋ ๊ฐ๋จํ์ง๋ง(๋๋๊ทธ ์ค ๋๋กญ ๋ฐ์ดํฐ ์ธํธ ์์ญ์ด์ธ .NET ๊ฐ๋ฐ ๋จ๊ณ์ ์์ง ์์ ๊ฒฝ์ฐ) ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์๋ฌด๋ ์์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ . ๋ท์ฝ์ด. ์ง๊ธ๊น์ง Restsharp์ ํ ๋ถ๊ธฐ๊ฐ ์๋ํ๋๋ก ๊ด๋ฆฌํ์ง๋ง ์ด๊ฒ์ project.json ํ์์ ์ฌ์ฉํฉ๋๋ค. JSON.NET, Structuremap, NUnit ๋ฑ์ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ํฌ๋ง์ ๋ฒ๋ฆฐ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ค๋๋ DNX ๋ถ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ ํ๋ก์ ํธ ํ์ dotnet
๋ช
๋ น์ค ๋๊ตฌ๊ฐ ์ ๊ฑฐ๋ ๋ .NET Core RC1/2๋ฅผ ๋ฆด๋ฆฌ์ค ํ๋ณด๋ผ๊ณ ํ๋ ๊ฒ์ ์ฝ๊ฐ ์ด์ํฉ๋๋ค. ๋์๊ฒ ๊ทธ๊ฒ์ ์คํ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ๋ฒ ํ ๋๋ ์ํ ์ํํธ์จ์ด์
๋๋ค.
vNext๋ก ์ด๋ํ๋ ์ฃผ๋ ๋๊ธฐ๋ ์ ๋ ดํ Linux ํธ์คํ ๊ณผ Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ .NET Core ๋ฒ์ ์ด ๋๋ฝ๋ ๋๊ฒ ์ฐธ์กฐ๋ฅผ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ํ ์ฅ์ ๊ฐ ์์ผ๋ฏ๋ก ์ต๋ํ ๋นจ๋ฆฌ ํ๋ก์ ํธ ๋ง์ด๊ทธ๋ ์ด์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@yetanotherchris dnx๋ rc1์ ๊ฐ๋ ์ด์๊ณ rc2์ dotnet cli๋ก ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ํ์ฌ ๋๋ถ๋ถ์ dnx ํ๋ก์ ํธ ๋๋ ๋ถ๊ธฐ๊ฐ ๋ถ์คํฉ๋๋ค.
project.json์ ์ฌ์ ํ โโ์ฌ๊ธฐ์ ์๊ณ rc2์ ํ์ํฉ๋๋ค. RTM ์ดํ์ ํฅํ ์ฌ๋ผ์ง ๊ฒ์ ๋ํ ๋ ผ์
json.net(์ผ๋ช
newtonsoft.json)์ด ์๋ํ๊ณ ํ๋ ์์ํฌ ์์ฒด์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ด ํ๋ก์ ํธ์์๋ ์ฌ์ฉํฉ๋๋ค.
nunit์ ํธํ๋์ง ์์ผ๋ฉฐ ๋ชจ๋ xunit afaik์ ์ฌ์ฉํฉ๋๋ค.
structuremap์๋ rc2 ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
์์ง rc2๋ก ์ด์๋์ง ์์ ํ์ฌ ํญ๋ชฉ์ด ๋ง์ด ์์ง๋ง Microsoft๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ ํ์ด๋ฐ๊ณผ ํธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ์๊ธฐ๋ฅผ ์ ์ดํ์ง ์์ต๋๋ค.
@yetanotherchris project.json์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด์ ์ ๋น netstandard ๋ชจ๋์ปค๋ฅผ ์ง์ ํ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
์๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฐ์ดํธ๋ฅผ ๊ท์ฐฎ๊ฒ ํ์ง ์์ ์ด์ ์ผ ๊ฒ์ ๋๋ค. ์ค์ RTM ์ ์ ๋ค๋ฅธ ์์ง์ด๋ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค.
@joaudette ๋ช
๋ น์ค ๋๊ตฌ dotnet
์๋ ๋ถ๊ธฐ ์ด๋ฆ(DNX)์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด NUnit์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ MsTest ์ธ๋ถ์ ์ฌ์ค์์ ํ
์คํธ ์ ํ๊ตฐ์
๋๋ค. JSON.NET ๋๋ Structuremap ํจํค์ง๋ฅผ ์ด๋์์ ์ฐพ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. DNX๋ผ๋ ๋น๊ณต์ ๋ฒ์ ์ Structuremap๊ณผ ์ฌ๊ธฐ์ Newtonsoft ๋ถ๊ธฐ๊ฐ ์์ผ๋ฉฐ nuget.org์๋ .NET Standard 1.0 ๋ฒ ํ๊ฐ ์์ต๋๋ค(.net ํ์ค์ ์ด์ ์ค๋ณต๋จ ๋ด๊ฐ ์๋ ํ).
@neoKushan ๊ฐ์ฌํฉ๋๋ค. ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ด ์์ ์ ์ต์ข
๋ฒ์ ์์ ์์ ํ ๋ณ๊ฒฝ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค ํ๋ณด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด ์ฝ๊ฐ ์ด๋ฆฌ์์ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์๋ง๋ ํ ๋ฌ ์์ ์ฐ๋ฆฌ๋ ๋ง์ ํ๋์ ํ๊ฒ ๋ ๊ฒ์
๋๋ค. ์ด์ ๋น๋ ์์คํ
์ ์ด์ ๋ฐ ์ ๊ฒ๊ณผ ์์ ํ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋น๋ก ์ฃผ๋ก ์น ๊ฐ๋ฐ์์ธ ์ฌ๋์ผ๋ก์ ์ ๋ project.json
ํจ์ฌ ์ ํธํฉ๋๋ค.
@yetanotherchris
(.net ํ์ค์ ๋ด๊ฐ ์๋ ํ ์ด์ ์ค๋ณต๋ฉ๋๋ค).
์ ๊ทธ๋ ๊ฒ ๋งํฉ๋๊น? Netstandard๋ ํ๋ก์ ํธ ๋ณ๊ฒฝ๊ณผ ํจ๊ป ์ฌ๋ผ์ง์ง ์๊ณ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ํฅํ csproj ํ์ผ์์ netstandards๋ฅผ ๋์์ผ๋ก ํ ์ ์์ต๋๋ค. Netstandard๋ ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค. ๊ทธ๋ค์ด project.json์ ๋ฒ๋ฆฌ๋ ์ฃผ๋ ์ด์ ์ค ํ๋๋ ์ ์ฒด .net ์ํ๊ณ๋ฅผ ํตํฉํ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ, ์ด๊ฒ์ด netstandard๋ ํ ์ด๋ธ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค.
๋ด ์์ ์ ์ต์ข ๋ฒ์ ์์ ์์ ํ ๋ณ๊ฒฝ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค ํ๋ณด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด ์ฝ๊ฐ ์ด๋ฆฌ์์ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์ด๋ ์ ๋ ๋์ํ์ง๋ง ์ฌ๋๋ค์ด ์๊ฐํ๋ ๋งํผ ๋ง์ด ๋ฐ๋์ง๋ ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฒ์์๋ project.json์ด ์ฌ์ ํ RTM์ ์์ ๊ฒ์ด๋ฉฐ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ทธ ์ดํ์ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ณ๊ฒฝ๋ ๊ฒ์ด๊ณ ์๋ง๋ ๊ฑฐ๊ธฐ์ ์์ ์ด ์๋ ๊ฒฝ์ฐ "์ต์ข "์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ ๋ฅผ ๋ฌผ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ถ๊ทน์ ์ผ๋ก ๋ชจ๋ ์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ๋์ง ์๋ ๋ชจ๋ ๊ฒ์ ๋จ์ง _definition_ ํ๋ก์ ํธ์ผ ๋ฟ์ ๋๋ค. ์ฒ์์ ์๊ฐํ๋ ๊ฒ๋งํผ ํฐ ๋ณํ๋ ์๋์ง๋ง ๋ถ๋ช ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฌ๋ฏธ๊ฐ ์์ ๊ฒ์ ๋๋ค.
@yetanotherchris rc2๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ด๋ฏ๋ก ํ์ฌ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํจํค์ง๋ ์ฐพ์์ผ ํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
https://www.nuget.org/packages/Newtonsoft.Json/9.0.1-beta1
https://www.nuget.org/packages/StructureMap.Dnx/0.5.1-rc2-final
NUnit์ด ๋์ค์ ์ง์๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ง๊ธ์ .NET Core ๋ฐ ASP.NET Core ํ๋ก์ ํธ์์ ์ฌ๋๋ค์ด xunit์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
https://xunit.github.io/docs/getting-started-dotnet-core.html
@yetanotherchris rc1์ beta9๋ผ๋ ๋ ์ด๋ธ์ด ์ง์ ๋์ด์ผ ํ๋ค๋ ๋ฐ ๋ชจ๋ ๋์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. rc2๋ ์ต์ด์ ์ค์ rc ํ์ง ๋ฆด๋ฆฌ์ค์
๋๋ค.
project.json ๋ฑ์ ๊ทธ ์์ฒด๋ก ํ๋ ์์ํฌ์ ์ผ๋ถ๊ฐ ์๋ ๋๊ตฌ์ด๋ฏ๋ก ํ๋ ์์ํฌ๊ฐ RTM์ธ ๊ฒฝ์ฐ์๋ ๋๊ตฌ๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ์ ์ง๋๊ณ ํ๋์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ค์ ๊ฐ์ ธ์๋ ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค. ์๋ง๋ project.json์ ์ ์งํ๊ณ ์ ํ๋ ์๋๋ฆฌ์ค์์๋ง ์๋ํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ฌ๋๋ค์ด ์ํ๋ ๊ฒ์ด๋ผ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ์์ด๋์ด๋ฅผ ์ฆ๊ฒ๊ฒ ํ ๊ฒ์ ๋๋ค.
Scott Hunter, dotnetConf 2016 1์ผ ์ฐจ ๊ธฐ์กฐ ์ฐ์ค 12m24s
Mr. Hunter๊ฐ GitHub์ ์๋์ง ์๋ ์ฌ๋์ด ์์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ์ ํ ํฌ๋ผ์์ ์ก๋ด์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ณ์ญ๋๊น? ๊ทธ ์๋ฆฌ์์ ๊ทธ๋ ์ฌ๊ธฐ์์ ํผ๋๋ฐฑ์ ๋์น๊ณ ์์ต๋๋ค.
.NET ๋ฐ Visual Studio์ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ์๋ก์ @coolcsh๊ฐ ์์งํ ์ฌ๊ฐ ์๊ฐ์ด ์๋์ง ์์ฌ
๋๋ ๊ทธ๊ฐ ์ฃผ์ด์ง ํผ๋๋ฐฑ์ ์์ง ๋ชปํ๋ค๋ฉด ๋งค์ฐ ๋์ฐํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ธ๋ถ ์ฌํญ์ด ์๋ ์๋ ์์ง๋ง ํ์คํ ์๋นํ ๋ฐ๋ฐ์ด ์์์ต๋๋ค.
๋ชจ๋์๊ฒ ๋ค์๊ณผ ๊ฐ์ ๊ธฐํ๊ฐ ์์ต๋๋ค.
https://blogs.msdn.microsoft.com/webdev/2016/06/08/notes-from-the-asp-net-community-standup-june-2-2016/
๋งํ์๋ฉด ํ ํญ์๋ฆฌ์ ๋ฌ๋ฌ๋ฅผ ๋ฃ์์ต๋๋ค. :stuck_out_tongue:
tugberkugurlu๋ "๊ฐ์๊ธฐ ์ํ ๋ฌผ์ง ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์๊ฐ ๋น๊ณต๊ฐ๋ก ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ธฐ ์์ํ์ต๋๋ค"๋ผ๋ ๋๊ธ์ ๋ฌ์์ ์ ์์ต๋๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ "์ฐ๋ฆฌ ๊ธฐ์ ๊ณ ๊ฐ๋ค์ด ํธํ์ฑ๊ณผ ์ฐ๋ฆฌ ์ ํ์ ๋ํ ํ์ฌ ํฌ์์ ๋ํด ํ๋นํ ์ฐ๋ ค๋ฅผ ์ ๊ธฐํ๋ค"๋ ๊ฒ์ ๋๋ค. '์ปค๋ฎค๋ํฐ'๊ฐ ๊ฐ์ฅ ํฐ ๋ชซ์ ํ์ง ๋ชปํ ๊ฒ์ ๋ํด ๋ถ๋ง์ค๋ฌ์ ๋ณด์ด์ง๋ง, ๋ญ, ๋ญ๋๋ญ๋ํด๋ ๊ธฐ์ ๊ณ ๊ฐ์ ํ๋ซํผ, ๋๊ตฌ ๋ฐ ์ง์์ ๋ํ ์ก์ธ์ค๋ฅผ ์ํด ๋ง์ ๋์ ์ง๋ถํฉ๋๋ค. ๊ทธ๋ค์ ์ฐ๋ ค๋ ๋ฌด์๋๊ฑฐ๋ ๋ฌด์๋์ด์๋ ์ ๋ฉ๋๋ค. ๊ฒฐ๊ตญ MS๊ฐ ๋ชฉํ๋ก ํ๋ ๊ฒ์ ์ต๋ํ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์์ ์ด ์ํ๋ ๊ฒ์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ํ๊ณ ์ ์ ๊ฐ๋ฅํ ๊ฑฐ์ ๋ชจ๋ ๋๋ฉ์ธ์์ ์ํธ ์ด์ฉ์ฑ๊ณผ ๊ณต์ ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ csproj๋ฅผ ํจ์ฌ ๋ ์ฝ๊ฒ ์์ ํ ์ ์๊ณ ํจ์ฌ ๋ ์ ๋ฅํ๊ฒ ๋ง๋ค ๊ฒ์ ์ฝ์ํฉ๋๋ค. ์ด์ ๊ทธ๋ค์ ๊ทธ๊ฒ์ ์ ๋ฌํ๊ธฐ ์ํด ์ต์ ์ ๋คํ์ต๋๋ค.
์ฌ๋ฌ ๋ฒ ๋งํ๋ฏ์ด ์ ๋ ๋๊ธฐ์ ๊ณ ๊ฐ์ธ ๋๊ธฐ์ ์ ๊ธฐ์ ๊ฐ๋ฐ์์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด "์ํ๋ฌผ์ง ๊ธฐ์ ๊ฐ๋ฐ์"๋ ์ ํํ ๋๊ตฌ์์ต๋๊น? ๊ทธ ์ ๋ณด๋ ๋ช ๋ฐฑํ ์ผ๊ธ๋น๋ฐ์ ๋๋ค. 007 ๋ ๋ฒจ ๋ฌผ๊ฑด.
์ํฐํ๋ผ์ด์ฆ ๊ณ ๊ฐ์ด ํฐ ์คํฑ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ ๋ชจ๋ ํ๋ฅญํ๊ณ ์ข์ ์ผ์ด์ง๋ง ๋ถ๋ช ํ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ๊ทธ๋ค ์ค ์ผ๋ถ์ ๋ถ๊ณผํฉ๋๋ค. ์ด๋ ๊ฒ? ์ด๋ค ๊ธฐ์ค์ผ๋ก? ์ฐ๋ฆฌ๋ ์ด๋ป๊ฒ ๊ทธ ํน๊ถ ๋ชฉ๋ก์ ๋ค์ด๊ฐ ์ ์์ต๋๊น? ํํธ๋ ๋ ๋ฒจ์ ๋ฌด์์ ๋๊น? ์ฐ๊ฐ ์ง์ถ์ก์ ์ผ๋ง์ ๋๊น? ํ๊ตฌํ๋ ๋ง์์ ๊ทธ๋ค์ด ์ค์ ๋ก ์ฐ๋ฆฌ์ ์๊ฒฌ์ ๋ฃ๊ธฐ ์ ์ MS์ ์ ํํ ์ผ๋ง๋ฅผ ์ง๋ถํด์ผ ํ๋์ง ์๊ณ ์ถ์ดํฉ๋๊น?
@shederman ์ํฐํ๋ผ์ด์ฆ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์์ ๋๊น, ์๋๋ฉด ์ํฐํ๋ผ์ด์ฆ UWP ๊ฐ๋ฐ์์ ๋๊น? ์๋๋ฉด Enterprise Unity Dev?
์์ ์ด๋ ๊ฒ๋ ์๋๋๋ค. ์์ฐ ๊ด๋ฆฌ ๋ฐ ์ํ ํตํฉ์ ์ํ ํต์ฌ ์์คํ ์ ์์ฑํฉ๋๋ค. ์ผ๋ถ ์จ๋ผ์ธ ๋ฌผ๊ฑด๋.
@shederman ์๋ง๋ ๋น์ ์ด ๋ฌป์ง ์์ ์ด์ ๊ฐ ์๋๊น?
๋ช ํํ ํด์ฃผ์ธ์?
๋น์ ์ด ์ ๋ง๋ก ์ ์ผํ ๊ธฐ์ DEVS์ MS๊ฐ ํ์ฌ ์ง์ํ๋ ์์ฅ์ 1 %๋ฅผ ์ํด ๊ทธ ์ผ์ ์ด๋ ์์ ์ ๋๋ค ๊ฑด๊ฐ์, UWP, ์์ ๋ํ ๊ด์ฌ ์ฌ์ฉ์ ๋ฐ ๊ฒ์ ๊ฐ๋ฐ์ 5 %๋ฅผ ์ ํ ๋ฆฌ์ผ์ด์ ? ๊ฐ๋ฐ์ ์ ์ฒด ์คํํธ๋ผ ์ค, MS๋ ๋ชจ๋ ๊ฒ์ํ์ง๋ง ๊ทธ๋ค์ ๋ค๋ฅผ ๋๊ณ ์๋ค?
์. ์๋.
๋ณ๊ฒฝ ์ฌํญ์ _๊ทธ_๊ทธ๋ฃน๊ณผ ๋ํํ ํ์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ง๋ฌธ์ ๋ฐ์ง ์์ ๊ฒ์ ๋๋ค. Microsoft๋ asp ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ง์
์, ๋ฐ๋ผ์ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ง์ํ๋ ค๋ฉด ํ ๊ฒ์ ๋๋ค. ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์์ 5%๊ฐ ์ ํํ ํ์ ์งํฉ๊ณผ ์ด์ผ๊ธฐํ๋ ๊ฒ์ ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์ ์ ์ฒด์ ์๊ฒฌ์ ์ธก์ ํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋๋ค .
๋ฐ๋ผ์ ๋ํ ์ํ์ ์๊ฒฌ์ ๋ค์ผ๋ ค๋ฉด ๋ชจ๋ ๊ฐ๋ฐ์ UWP/Unity/Mobile๋ก ์ ํํด์ผ ํฉ๋๋ค.
๋ง๋ ์๋ผ
์๋ง๋ ๊ทธ๋ค์ ๋ชจ๋ ๊ฐ๋ฐ์์ ์ด์ผ๊ธฐํด์ผ ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ค์ด ์ง๋ 2๋ ์ด์ ๋์ ํด์จ ์ผ์ด ์๋๊ฐ?
@shederman ๊ทธ๋์ _๋น์ ์ด ๊ฐ์ธ์ ์ผ๋ก_ ๋ฌป์ง ์์๊ธฐ ๋๋ฌธ์ ๋น์ ์ ๊ฐ๋ฐ ๋ฒ์๋ฅผ ๋ค๋ฃจ๋ ๋ค๋ฅธ ์ฌ๋์ด ๊ด์ฌํ์ง ์์์์ ์์ํ๋ ๊ฒ์ ๋๊น?
๋ํ, ๊ทธ ์ซ์๋ฅผ ๋ง๋๋ ๊ฒ์ ๊ทธ๋ง ๋์ญ์์ค. _๊ทธ๊ฑด_ ๋ง๋ ์๋ฉ๋๋ค.
@poke ๋๊ฐ ๊ด๋ จ
๋๋ ์ค์ ๋ก ์ซ์๊ฐ ๊ฝค โโ๊ด๋ํ๋ค๊ณ ์๊ฐํ์ง๋ง ๊ด์ฐฎ์ต๋๋ค.
@shederman ๋ด ์๊ฐ์ ๋น์ ์ ์ด ๋ชจ๋ ๊ฒ์ ๋๋ฌด ๋ง์ด ๋ค์ฌ๋ค๋ณด๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๋ 2๋ ๋์ asp.net ์ชฝ์ ์ด์ ์ด ๋ง์ถฐ์ ธ ์์์ง๋ง .net core๊ฐ ํผ์ง๊ธฐ ์์ํ๋ฉด์ ๋ง์ ์ฌ๋๋ค์ด "์ด๊ฑธ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น?"๋ผ๊ณ ๋ฌป๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๊ฒ์ ๋ฐฑ๋ฃธ ๊ฑฐ๋๊ฐ ์๋๋ผ ๋ง ๊ทธ๋๋ก ๋ช ๋ ์ ์๊ตฌํ๋ ์ฌ๋๋ค์ด์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด .net core์์ ๋ ๋ง์ ๊ฒ์ ์ํ๋ค๋ ๊ฒ์ ํ์ธํ๊ธฐ ์ํด ์ฃผ์ ๋ฅผ
๊ธฐ์กด ์๋ฃ๋ฅผ ํ๋ซํผ ๊ฐ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์ถ์ดํ๋ ๋๊ท๋ชจ ์กฐ์ง์ ์ค์ ์ํฐํ๋ผ์ด์ฆ ์ง์ ์์ฒญ ๋ฌธ์ ๋ ์์ต๋๋ค. ๋น์ ์ด ํ๋ ค๊ณ ํ๋ ๊ฒ์ ํ๋ก์ ํธ์ ๋ฒ์๋ฅผ ๋์ด์๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ณด๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ - ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ทธ๊ฒ์ ๋ณด๋ ๋ฐฉ์ - ๋น์ ์ ์ง๋ฌธ์ ๋ฐ์๊ณ ๋ช ๋ฌ ์ ์ ๋ฐํ๊ฐ ์ด๋ฃจ์ด์ง ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. ๋๊ตฌ์๋ ์์ํ์ง ์๊ณ ๊ฒฐ์ ์ด ๋ด๋ ค์ก๋ค๊ณ ๋งํ๋ ์ฌ๋๋ค์ ๋ชจ๋ ์ธ์นจ์ ๋ํด, Microsoft๋ ์ฌ์ ํ ์ธ๋ถ ์ฌํญ์ ์์ ์ค์ด๋ฉฐ ์์ง ์ต์ข ์กฐ๊ฐ์ด ์ ๋ฆฌ๋์ง ์์์ผ๋ฉฐ ์ง๊ธ์ด ๊ทํ์ ์๊ฒฌ์ ๋งํ ๋๋ผ๊ณ ๋ฐ๋ณตํด์ ๋งํ์ต๋๋ค. Scott Hunter๋ ์ฌ๋๋ค์ด _์ ๋ง๋ก_ project.json์ ์ต์ ์ผ๋ก ์ํ๋ค๋ฉด ์ ์งํ๋ ๊ฒ์ ๊ณ ๋ คํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ๋ด ๋ง์ ๋ฏฟ์ง ๋ชปํ๊ฒ ๋ค๋ฉด ๊ฐ์ dotnetconf ๊ธฐ์กฐ์ฐ์ค์ ์์ฒญํ์ธ์.
@neoKushan Scott์ด ์ ์งํ๋ ๊ฒ์ ๊ณ ๋ คํ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ฉด์ ํ ๊ฑธ์ ๋ฌผ๋ฌ์์ ๊ณ ๋ง๊ฒ ์๊ฐํ์ง๋ง ์ฌ๋๋ค์ด ์ด๊ฒ์ด ์ํ๋ ๊ฒ์ด๋ผ๊ณ ํํํ ์ ์๋ ๋จ์ผ ์ค์ ์ง์ค์ ์ง์ ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด project.json ๋ฌธ์ ๊ฐ ๊ณ์ ๋ํ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ๊ธฐ์ ํ ๋ก . ๊ทธ๊ฒ์ ๋ํ ๊ทธ๊ฒ์ด ์ ๊ธฐ๋์์ ๋ ๋ชจ๋ ์ฌ๋์ด ๊ฐ์ ๋๋ต์ ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. "์ด๋ด, ๊ฐ๋ฐ์๊ฐ ์ ๋ง๋ก ์ํ๋ค๋ฉด ๊ทธ๊ฒ์ ์ ์งํ๋ ๊ฒ์ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
project.json
์ข์ ๋จ๊ณ์์ต๋๋ค. ํ์ง๋ง ๋ด ์๊ฐ์๋ ์์งํ๋ค. ์ฌ๋๋ค์ด C++ ๋๋ F#์ผ๋ก ์์ฑ๋ ํ์ด๋ธ๋ฆฌ๋ ํ๋ก์ ํธ๋ฅผ ์ํ ๊ฒ์ด๋ผ๋ ์ธ์์ ํ์ํ์ง ์์ต๋๋ค. dnx ๋ฐ nuget์ ์ด์
๋ธ๋ฆฌ ๋จ์๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ด๊ธฐ ์ค๊ณ ๊ฒฐ์ ์ค ์ผ๋ถ๋ ์ ์ฒด ๋ท๋ท ์ํ๊ณ์์ ์คํ ๊ฐ๋ฅํ์ง ์์์ต๋๋ค. ๋น์ ์ด ๋ณด๊ณ ์๋ ๊ฒ์ ๋ท๋ท์ ํํฉ์ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์์ ๊ทธ๋ค์ด ์ด๋ฌํ ํ๋ ์ ํ์ ํด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค.
๋ด ์๊ฐ์ ํฌํฌ์ ์ฌ์ฐฝ์กฐ๋ ๋ท๋ท ์ํ๊ณ์ ๋์์ด ๋์ง ์์ ๋ฟ ์๋๋ผ ํด์น ๋ฟ์ ๋๋ค. Node and Go(ํนํ Go)๋ ๊ท ์งํ๊ณ ์ผ๊ด๋ ํ๋ซํผ/๋๊ตฌ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ณด์์๊ฒ ๋งค์ฐ ๋งค๋ ฅ์ ์ ๋๋ค.
์์ผ๋ก 5๋ ํ์๋ JSON ๋ YAML์ด ๋ ๊ฒ์ด๊ณ ๊ทธ ์ดํ์๋ YAML ๋ Groovy(์: gradle)๊ฐ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด XML ๋ JSON ์ธ์๊ฐ ์ด๋ฆฌ์์ ๊ฒ์ผ๋ก ์๊ฐํฉ๋๋ค. XML์ ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ์๊ณ ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ ํ์ง ์์ต๋๋ค. MSBuild๋ ๋งค์ฐ ์ฑ์ํ์ผ๋ฉฐ ๋ชจ๋์๊ฒ ๋์์ด ๋ ๋ง์ ํฌ์๋ฅผ ํ๊ณ ์์ต๋๋ค.
์ฆ, csproj ํ์ผ์ ์ฌ์ฉํ๊ณ ํธ์งํ๋ ๊ฒ๊ณผ ๋์ผํ๊ฑฐ๋ ์ต์ํ ๋ ๊ณ ํต์ค๋ฌ์ด ๋ฐฉ๋ฒ์ ์ป์ ์ ์๋๋ก MSBuild๋ก ๋ง์ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ nuget ์ข ์์ฑ์ nuget.json ํ์ผ๋ก ์ด๋ํฉ๋๋ค. ๊ตฌ์ฑ๋ณด๋ค ๊ท์น์ ์ฌ์ฉํ์ฌ "ํ๋ณตํ ๊ฒฝ๋ก"์ ์์ผ๋ฉด csproj๊ฐ ๊ฑฐ์ ๋น์ด ์๊ฒ ๋ฉ๋๋ค. ์ค๋๋ ์ web.config์ ๋น์ทํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ csproj๋ฅผ ์กฐ์ ํ๋ cli ์ต์ ์ด ์์ต๋๋ค.
์ ์๊ฒ๋ project.json์ด ๊ทธ๋ฆฌ์ธ ๊ฒ์ด์ง๋ง ๋น์ ์ด ์๊ฐํ๋ ์ด์ ๋ ์๋๋๋ค. C# ํ๋ก์ ํธ๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. F# ๋๋ฌธ์ msbuild๋ฅผ ํธ์งํ๋ ๊ฒ๋ณด๋ค ์ปดํ์ผ ์์๋ฅผ ์ํด project.json์ ํธ์งํ๋ ๊ฒ์ ์ ํธํ๊ธฐ ๋๋ฌธ์ ๋์น ๊ฒ์ ๋๋ค. ๋ค์ ๋งํ์ง๋ง xml์ด ์ ํ๊ธฐ ๋๋ฌธ์ด ์๋๋ผ fsproj ํ์ผ์ msbuild๋ก ์ธํด ๋ง์ ํฝ์ฐฝ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๊ฒฐ์ ์ ๋ํ ๋์ ๋ฌธ์ ๋ ์ฃผ๋ก csproj ํ์ผ์ด xml/json์ ๊ดํ ๊ฒ์ด ์๋๋ผ csproj ํ์ผ์ ํฌํจํ๊ธฐ๋ก ์ ํํ ๊ฒ์ ๋ํด ํจ์ฌ ๋ ๋ง์ ๋ฐฉ์์ด์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํ๋ก์ ํธ ์ ์๊ฐ ํฌํจ๋์ด ์๊ณ IDE ์ค์ ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ ๋น๋ ๋จ๊ณ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ฐธ์กฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๊ทธ๋ ๊ฒ _ํ์ง_์์_ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์ด๊ฒ์ ๊ทธ๊ฒ์ ๋์ฐํ๊ฒ ๋ง๋ค์๊ณ msbuild๊ฐ ๋๋๋ก ์๋นํ ๋ํดํ ๊ฒ์ ์ฒ๋ฆฌํด์ผ ํ ๋๋ง ๋ณต์กํด์ก์ต๋๋ค. .NET Core๋ฅผ ํ๋ฅญํ๊ฒ ๋ง๋๋ ๋ฐ ๊ด์ฌ์ด ์๊ณ ๋จ์ํ ์์ ๋ง ํ๋ ๊ฒ์ด ์๋๋ผ ๋น๋ ๋๊ตฌ์ ๋ํด ํ๋ก์ ํธ ํ์ผ์ ๋ถ๊ฐ์ง๋ก ์ ์ผ๋ก ๋ง๋๋ ๋ฐ ๊ด์ฌ์ด ์๋ค๋ฉด. ๋ด ํ๋ก์ ํธ๊ฐ ๋ฌด์์ด๋ฉฐ ๋น๋ ๋ฐฉ๋ฒ๊ณผ ๋ณ๋๋ก ๋ฌด์์ ์์กดํ๋์ง ์ง์ ํ ์ ์์ด์ผ ํฉ๋๋ค. ๋งํ ๊ฒ๋ ์์ด ์ด๊ฒ์ ์ด๊ธฐ ์ต์ ์ด ์ง๊ธ msbuild์์ ์ง์๋๋ ๊ฒฝ์ฐ์๋ ๋๊ตฌ ์ ํ์ ํ์ฉํ๊ธฐ ์์ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋์ํฉ๋๋ค. ๊ฒฐ๊ตญ csproj์ ํต์ฌ ๋ฌธ์ ๋
๊ทธ๊ฒ์ ๋ชจ๋ ๊ฒ์ํฉ๋๋ค.
๋๋ PatriotBob์ด ์ ์ํ๋ ์ค๊ฐ ์ง์ ์ ์ข์ํฉ๋๋ค ...
2016๋ 6์ 21์ผ ํ์์ผ ์คํ 1์ 28๋ถ PatriotBob [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
์ด ๊ฒฐ์ ์ ๋ํ ๋ด ๋ฌธ์ ๋ ์ฃผ๋ก csproj ํ์ผ์ด ์ ์ ๋ฐฉ์์ด์์ต๋๋ค.
xml/json ๋ฐ csproj์ ํฌํจํ๊ธฐ๋ก ์ ํํ ํญ๋ชฉ์ ๋ํ ํจ์ฌ ๋ ๋ง์ ์ ๋ณด
ํ์ผ. ์ฌ๊ธฐ์๋ ํ๋ก์ ํธ ์ ์๊ฐ ํฌํจ๋์ด ์๊ณ IDE ์ค์ ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํฌํจ๋ ๋น๋ ๋จ๊ณ, ์ฐธ์กฐ ํฌํจ...๊ทธ๋ ๊ฒ _ํ์ง_์์_ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์ด๊ฒ์ ๊ทธ๊ฒ์ ๋ง๋ค์๋ค
๋์ฐํ๊ณ msbuild ์กด์ฌ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ ๋๋ง ๋ณตํฉ์ ์ ๋๋ค.
๋๋๋ก ์๋นํ ์ ๋น๋กญ์ต๋๋ค. .NET Core๋ฅผ ์ข๊ฒ ๋ง๋๋ ๋ฐ ์์งํ ๊ด์ฌ์ด ์๋ค๋ฉด
์์ ๋ฟ๋ง ์๋๋ผ ๋๊ตฌ๋ฅผ ๋น๋ํ๋ ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ๋ถ๊ฐ์ง๋ก ์ ์ผ๋ก ๋ง๋ญ๋๋ค. ๋๋ํด์ผํ๋ค
๋ด ํ๋ก์ ํธ๊ฐ ๋ฌด์์ธ์ง, ๋ฌด์์ ์์กดํ๋์ง ์ง์ ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ. ๋งํ ๊ฒ๋ ์์ด ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ ํ์ ํ์ฉํ๊ธฐ ์์ํฉ๋๋ค.
์ด๊ธฐ ์ต์ ์ด ์ง๊ธ msbuild์์ ์ง์๋๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aspnet/Home/issues/1433#issuecomment -227511911 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe/AKh-zsedLYg_PToadpD-_ewZPci0oHGCks5qOB8rgaJpZM4IcGCt
.
์ ์ฒด XML์ด ๋์๊ณ JSON์ ํ๋ฅญํฉ๋๋ค. ๋๋ PatriotBobo์ ๋ง์ ์ข์ํฉ๋๋ค.
npm
์ package.json
์์ ์์ ํ as/w ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ด ํ๋ก์ ํธ ์ ์ธ, ๋ด ํ๋ก์ ํธ ๊ตฌ์ถ, ๋ด ํ๋ก์ ํธ ์
๊ทธ๋ ์ด๋(์: ๊ทธ๋ฆฐํคํผ), ์ฝ๊ธฐ/์ฐ๊ธฐ/ํ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ด๋ ๊ฒ ๊ฐ๋จํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ ์ ์ด ์์ต๋๋ค. ๋ด ํ๋ก์ ํธ์ ๋ํด ์ค๋ช
ํ๊ณ ๋ด ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ๊ฒ์ํ ์ ์์ต๋๋ค. _๋๋ฌด ์ฝ๊ฒ. ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ด ์ญ์ฌ๋ C++/java/python/node์ ์๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋๋ ์ง๊ธ ๋ด ๋ชจ๋ ํ๋ก์ ํธ์์ npm
๊ฒฝํ์ ๊ฐ๋งํฉ๋๋ค.
project.json
๋ ์ด๋ฌํ ๋์ผํ ํน์ฑ์ ์ ๊ณตํ๊ธฐ๋ก ์ฝ์ํ์ต๋๋ค. ๋จ์ํจ๊ณผ ๊ฐ๋ ฅํจ์ ํฌ์ํ์ง ์๊ณ ๋ชจ๋ฐฉํ ๊ฐ์น๊ฐ ์๋ ๋ชจ๋ธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ .net ํต์ฌ ํ์ด ๋ค๋ฅธ ์๋ฃจ์ ์ด ์ด๋ฌํ ํน์ฑ, ํ์ํจ ๋ฐ ๋ฅ๋ ฅ์ ์ ๊ณตํ ์ ์๋ค๊ณ ์๊ฐํ๋ค๋ฉด! ๊ทธ๋ฌ๋ ์งํํ๋ฉด์ ๋จ์ํจ์ ์๋ฆ๋ค์์ ํผ์ํ์ง ๋ง์ญ์์ค.
๋ํ, ๋๋ ๊ฑฐ๋ํ ์ค๋ ๋์ ์ด ์์ ์์ ๋ด๊ฐ ๋จ์ง ์์์ผ ๋ฟ์ด๋ผ๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์๋ง๋ ์ค์ฌ์๋ ๊ทธ๊ฒ์ ๋ซ๊ณ ๋ ํต์ ๋ ๋ฐฉ์์ผ๋ก ์๋ จ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ง์ ์ข์ ํผ๋๋ฐฑ. ์ฝ๊ฐ์ ํธ๋กค๋ง๋ ๊ฐ๋ฅํฉ๋๋ค :$ :)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๋ฒ์ฃผ ์ต์ ์ ๋ด์ค์ +1. ์ด์ ๋ํ ๋ ผ์๋ ์ด๋์์ ์ด๋ฃจ์ด์ก์ต๋๊น? ๋๋ ์๋ฌด ๊ฒ๋ ์ฐพ์ ์ ์์ผ๋ฉฐ ์ผ๋ฐฉ์ ์ธ ๊ฒฐ์ ์ ๋๋ค.
๋๋ ์ด ๊ฒฐ์ ์ ๋ํ ์ปค๋ฎค๋ํฐ ์ง์์ ๋ณด์ง ๋ชปํ๊ณ ๋ฐ๋๋ ๋ง์ด ํ์ต๋๋ค(๋ง์ง๋ง ๊ณ์ฐ์์ 85%์์ 15%). ์ด๋ค ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๋๊ฐ ๊ฒฐ์ ์ ๋ด๋ ธ๋์ง ํ ๋ก ์ ์ด๋ป๊ฒ ์งํ๋๋์?
์ด๊ฒ์ด .NET Core์์ ์์ ์ ์ํํ๋ ๋ฐฉ์์ ๋๊น? ๋น๊ณต๊ฐ ๋ ๊ฑฐ์ ๊ธฐ์ ๋ชฉ๋ก์ ์ง์ํ๊ธฐ ์ํด ๋น๊ณต๊ฐ๋ก ํ์ง์ ์ ํ์ํค์ญ๋๊น?
๋ถ๋ ์์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ project.json์์ .csproj๋ฅผ ๋ง๋๋ VS ํ์ฅ์ ๋ง๋ค์ด ๋ด ์๋ค.
๊ทธ๋ฌ๋ XML ๊ธฐ๋ฐ ํ๋ก์ ํธ ํ์ผ์ ์ ๋ชฝ์ผ๋ก ์ฐ๋ฆฌ๋ฅผ ๋๋๋ ค ๋ณด๋ด์ง ๋ง์ญ์์ค. ๊ทธ๊ฒ๋ค์ ๋์ ๋์์ ๋ ๋์ ์๊ฐ์ด์๊ณ ์ฐ๋ฆฌ๋ 10๋ ๋๊ฒ ๋์ ๋ณํฉ๊ณผ ์ด๋ ค์ด ๊ฐ๋ ์ฑ์ ๋ํ ์ธ๊ธ์ ๋ด๊ณ ์์ต๋๋ค. ์ถฉ๋ถ ํด.