(ํธ์ง: https://github.com/nunit/docs/wiki์ ๋งฅ๋ฝ์์ ์ฌ์ฉํ๋ ค๋ ๋ฐฉ์๊ณผ ๋งค์ฐ ๋ค๋ฅธ ์๋ฏธ๋ก '์ฝ๋ฉ ํ์ค'์ '๋ชจ๋ฒ ์ฌ๋ก'๋ก ๋์ฒดํ์ต๋๋ค. /์ฝ๋ฉ-ํ์ค.)
XML ๋ฌธ์๊ฐ ์ฝ๊ฐ ์ผ๊ด์ฑ์ด ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ผ๋ถ ๋ฌธ์ฅ์๋ ๋ง์นจํ๊ฐ ๋๋ฝ๋์ด ์๊ณ ์ผ๋ถ ๋จ์ผ ๋ช ์ฌ์๋ ํ์ฉ์ฌ ๋๋ ๋ ๊ฐ์ ๋ง์นจํ๊ฐ ์์ต๋๋ค. ๋ฌธ์ฅ์ ๋ง์นจํ๋ฅผ ์๋ตํ๋ ๊ฒ์ ์ถ๋ฐ์ ์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก .NET BCL์ ์ ๋ฌธ์ ์ธ ์คํ์ผ๋ ํ์ค๋ ์๋๋๋ค.
์ค๋ช ์ ๊ธธ์ด์ ๊ด๊ณ์์ด ๋ง์นจํ๋ฅผ ์๊ตฌํ๋ ๋ฐ ํฌํํ๊ณ ์ด์ํด ๋ณด์ด๋ ์๋๋ฆฌ์ค์์๋ ๋ง์นจํ๋ฅผ ์๋ตํ๋ ๋์ ๋ช ๋จ์ด๋ฅผ ๋ ์ถ๊ฐํ์ฌ ๋ฌธ์ฅ์ ๋ง๋ญ๋๋ค.
์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ์ฝ๋ฉ ํ์ค ๋ชจ๋ฒ ์ฌ๋ก ์ค ํ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ฉ์๋ฅผ ๋๋ฉดํ๊ณ ๋งค์ฐ ๊ฐ์์ ์
๋๋ค. NUnit ์ ์ฒด์ ํ์ง์ ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ๊ฒฐ์ ํ๋ https://github.com/nunit/docs/wiki/Coding-Standards ์ฝ๋ฉ ๋ชจ๋ฒ ์ฌ๋ก ๋ฌธ์์ ๋ฃ์ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ํ ์ ์๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋๊ธธ ์ ์์ต๋๋ค.
/cc @nunit/framework-team
๋ค๋ฅธ XML ๋ฌธ์ ์ฝ๋ฉ ํ์ค ๋ชจ๋ฒ ์ฌ๋ก(์ด์)์ ๋ํ ๋ฒํท ๋ชฉ๋ก:
<paramref name="parameterName"/>
, <see cref="TypeOrMember"/>
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋ฉด <see langword="null"/>
ํ์ญ์์ค.
์ด๊ฒ์ ๊ฐ์ฒด ๋ธ๋ผ์ฐ์ ์ ์ธํ
๋ฆฌ์ผ์ค์ ๋งํฌ๋ฅผ ๋ง๋ค๊ณ ์ธํ
๋ฆฌ์ผ์ค๋ฅผ ์ฑ์ํฉ๋๋ค. ์ปดํ์ผ๋ฌ๋ ์ด๋ฆ๊ณผ ์ค๋ฒ๋ก๋์ ์ ํจ์ฑ์ ํ์ธํ๋ฏ๋ก ์์ฌํ๊ณ ๋ฆฌํฉํ ๋งํ ์ ์์ต๋๋ค.
๊ฐ ์ ํ ๋ฐ ๋ฉค๋ฒ์ ๋ํด <summary>
ํ๊ทธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ ์ ํ๊ณผ ๊ตฌ์ฑ์์๊ฒ ์ค์ ๋ก ์์ฌ ์ํต์ด ๊ฐ๋ฅํ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฆ์ด ์ฌ์ฉ์๊ฐ ์์์ผ ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๊ฒ ๋๋ฉด <summary>
ํ๊ทธ๋ฅผ ์ ๊ฑฐํ์ฌ ์ค๋ณต ๋ฌธ์๋ฅผ ๋ฐฉ์งํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ด๋ จ ์ธ๋ถ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ธ์.
๊ฐ ๋งค๊ฐ๋ณ์์ ๋ํด <param>
ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ๊ทธ๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์ค๋ช
ํฉ๋๋ค(๋ฌด์์ด ์๋๋ผ). ๊ทธ๋ฌ๋ ๊ฐ ๋งค๊ฐ๋ณ์์ ์ค์ ๋ก ์ ๋ฌ ๊ฐ๋ฅํ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฆ์ด ๋ชจ๋ ๋งค๊ฐ๋ณ์์ ๋ํด ์ฌ์ฉ์๊ฐ ์์์ผ ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ๋ฎ๊ฒ ๋๋ฉด, ๊ณผ๋ํ ๋ฌธ์ํ๋ฅผ ํผํ๊ธฐ ์ํด ๋ชจ๋ <param>
ํ๊ทธ๋ฅผ ์ ๊ฑฐํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ๋ฅํ ํ ๊ฐ <param>
์ ๊ด๋ จ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ญ์์ค.
<remarks>
๋๋ <returns>
ํ๊ทธ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ด์ฉ์ด ํ์๋์ง ์์ผ๋ฏ๋ก ์๊ฐ์ ๋ญ๋นํ์ง ๋ง์ญ์์ค. ์ค์ํ ์ธ๋ถ ์ ๋ณด๋ ๋ชจ๋ <summary>
์์ด์ผ ํฉ๋๋ค. IDE๊ฐ ์๋์ผ๋ก ์ฝ์
ํ๋ฉด ์ ๊ฑฐํ๋ฉด ๋ฉ๋๋ค.
๋น ํ๊ทธ๋ฅผ ๋จ๊ฒจ๋์ง ๋ง์ญ์์ค. ๊ทธ๊ฒ๋ค์ ์ ๊ฑฐํ๊ฑฐ๋ ์ฑ์ฐ์ญ์์ค. ์ฌ๊ธฐ์๋ ์ปดํ์ผ๋ฌ์ all-or-none <param>
ํ๊ทธ ์ํ์ด ํฌํจ๋ฉ๋๋ค.
<exception>
ํ๊ทธ๋ก throw๋ ์์ธ๋ฅผ ๋ฌธ์ํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฉ์๋ ์๋ช
์์ ์ฆ์ ๋ช
ํํ์ง ์์ ์ฌํญ์ ๋ํด ์๋น์๊ฐ ๋น ๋ฅด๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
์ฌํ๊ฒ๋ intellisense๋ ๋ฉ์์ง๊ฐ ์๋ throw๋ ์์ธ ์ ํ๋ง ํ์ํ๋ฏ๋ก ์ค์ํ ์์ธ์ ๊ฒฝ์ฐ ์์ฝ์๋ ํฌํจํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
c#
/// <summary>
/// Does foo. If <see cref="OtherProperty"/> is not set, throws <see cref="InvalidOperationException"/>.
/// </summary>
/// <exception cref="InvalidOperationException">Thrown when <see cref="OtherProperty"/> is not set.</exception>
์ข์ ์๋ฆฌ์ ๋๋ค. ๋ชจ๋ ํ์ค์ ์ค์ ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์์ ๊ณผ ํจ๊ป ํ ์ ์๋ ์๋ชป๋ xmldoc์ด ๊ฝค ์์ต๋๋ค. (์๋ชป๋ ๋งค๊ฐ๋ณ์ ๋ฑ)
์์ ๋ชจ๋ ๊ฒ์ ๊ณต๊ฐ ์ ํ์ผ๋ก ์ ํํ ๊ณํ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
@ChrisMaddock
์์ ๋ชจ๋ ๊ฒ์ ๊ณต๊ฐ ์ ํ์ผ๋ก ์ ํํ ๊ณํ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
์ข์ ์ง์ . ๊ทธ๊ฒ์ด ๋๊ธฐ์ด์ ๊ฐ์ฅ ์๊ธํ ์ผ์ด์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ฌ๋ก๋ณ๋ก ๋ด๋ถ ์ ํ์ ๋ํด์๋ ์ต์ํ ๋ฐ๋ฅด๋ ๊ฒ์ ๊ณ ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. PR ๊ฒํ ์๋๋ฅผ ๋์ผ ๋ ํ์คํ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
์ ๋ ์ฐ๋ฆฌ์ ์ฝ๋ฉ ํ์ค์ ๋ ๋ง์ ๊ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ฐ๋ํฉ๋๋ค. ์ฝ๋ฉ ํ์ค์ ์ต์ํ์ด์ด์ผ ํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ธฐ๊บผ์ด ๋ถ๊ณผํ ์ ์๋ ๊ฒ๋ง ํฌํจํด์ผ ํฉ๋๋ค. ๊ธฐ๊ฐ์ ์ง์ ํ๋ ๊ฒฝ์ฐ ๋๋ฌด ์์ธํ ์ค๋ช ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ์ข ์ข ํ์๊ฒ ์ฝ๋ฉ ํ์ค์ ์์ฌ์ธ ๊ฒ์ฒ๋ผ ์๊ฐํ๋ผ๊ณ ๋งํฉ๋๋ค. ์๊ธฐ ์ฃผ๋์ ํ์์ ์ฝ๋ฉ ํ์ค์ ๋ฌผ๋ก ๋ณด์ค๊ฐ ์๋๋๋ค. ํ์ ๋ณด์ค์ด๊ณ ํ์ด ์ค์ ๋ก ๋์ํ์ง ์๋ ํ ์ฝ๋ฉ ํ์ค์ __์๋ฌด๊ฒ๋__ ์์ด์ผ ํฉ๋๋ค. ํญ๋ชฉ์ ๋ฃ์ง ๋ง๊ณ ์์ธ๋ฅผ ๋ง๋ค ์ ์๋ค๊ณ ๋งํ์ง ๋ง์ญ์์ค. ์์ธ๊ฐ ๋ฐ์ํ์ง ์์ ํญ๋ชฉ์ ์ ๋ ฅํ์ญ์์ค.
๋ฌผ๋ก ์ด ๋ชจ๋ ๊ฒ์ ํน์ ํ ๊ด์ ์์ ๋์จ ๊ฒ์ ๋๋ค. ๋ง์ง๋ง 15๋ช ์ ์ฝ์น๋ก ์ ๊ณ์์ 40๋ ๋์ ํ๊ณผ ํ๋ ฅํ์ฌ ์ฝ๋ฉ ํ์ค์ ํฌํจํ XP ์ฌ๋ก๋ฅผ ์ค์ ํ์ต๋๋ค. ๋๋ ๊ฒฐ์ฝ ๋จ์ถ๋ ์ ์๋ ์ฝ๋ฉ ํ์ค์ ๋ฐ๊ฒฌํ์ง ๋ชปํ๋ค. ๊ทธ๋ค์ ๊ฑฐ์ ํญ์ ์๋ฌด๋ ์ ๋ง๋ก ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒ๋ค์ ํฌํจํฉ๋๋ค. ์๋ฒฝํ ์ฝ๋๊ฐ ์๋ ์ต์ํ์ผ๋ก ์์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฝ๋ฉ ํ์ค์ ๋ง๋์ญ์์ค. IOW, ์ฝ๋ฉ ํ์ค์ ๋ง์นจํ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ง์นจํ๊ฐ ๋ถ์กฑํ์ฌ PR์ ๊ฑฐ๋ถํ ๊ณํ์์ ์๋ฏธํด์ผ ํ๋ฉฐ ์ด๋ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
@jnm2 ์ฌ๊ธฐ์ ๋ฃ์ด์ผ ํ๋ ์์ํฌ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ ๋น์ ์ ์๋์ ๋๊น?
๋ํ XML ์ฃผ์๊ณผ ๊ด๋ จํ์ฌ ํ์ํ ์ด์ ๋ธ๋ฆฌ์ ๋ํด ์ด์ผ๊ธฐํ์ง ์๋ ํ ๊ณต๊ฐ ์ ํ์๋ ์ ํ ํ์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ชจ๋ ์งํ๊ฐ ๊ทธ๋ ์ง๋ ์์ต๋๋ค.
๋ค, NUnit์ ๊ณต๊ฐ ์ ํ์ ๋ํ ์ฐ๋ง๋ ๋ง์นจํ๊ฐ ํฌํจ๋์ง ์์ ๋ชจ๋ PR์ ๋ํด ๋ณ๊ฒฝ์ ์์ฒญํ ๋งํผ ์ถฉ๋ถํ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ์คํ ์์ ์ ์์ฒญํ๋ ๊ฒ๋งํผ ์ ๋ฌธ์ฑ์ ์ํด ๊ฐ์ธ์ ์ผ๋ก ์ค์ํ๋ค๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ์ต์ํ์ ๊ธฐ์ค์ ๋๋ค.
์, ํ๋ ์์ํฌ๋ง ํด๋น๋ฉ๋๋ค. ํ๋ ์์ํฌ๋ ์ต์ข ์ฌ์ฉ์๊ฐ XML ๋ฌธ์๋ฅผ ๋ณผ ์ ์๋ ์ ์ผํ ์ฅ์์ ๋๋ค. ๊ทธ๋ ์ฃ ?
@jnm2 ์ข์ XML ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ด๋์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์์ ์ด ๋ง์์
@jnm2 ์๊ฒ ์ต๋๋ค. ํ๋ ์์ํฌ๋ฅผ ํ์ธํ๋ ์ค์ ๋๋ค.
๋ค์์ ์ฝ๋ฉ ํ์ค์ด ๋ฌด์์ ์๋ฏธํ๋์ง์ ๋ํ ์ ์๊ฐ์ ๋๋ค...
๋ชจ๋ ๋ฌธ์ฅ ๋์ ๋ง์นจํ๋ฅผ ํ์ํ๊ณ ์ถ๋ค๋ฉด ์ฝ๋ฉ ํ์ค์ ๋ช ์๋์ด ์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ฒญํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ๋ก๊ทธ๋๋จธ๋ ๋น์ ์ ์กฐ์ธ์ ๋ฐ์๋ค์ผ ์๋ ์๊ณ ๋ฐ์ง ์์ ์๋ ์์ง๋ง ๋๋ถ๋ถ ๋ฐ์๋ค์ ๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ 15๋ ๋์ ์ฝ์น๋ก์ ๊ฐ์ง๊ณ ์์๋ ๊ถ์์ ์์ค์ด๋ค. ์ฌ๋๋ค์ ๋ด ์๊ฒฌ์ ์กด์คํ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ ์ํ ๋๋ก ํ์ต๋๋ค. ์ฌ๋๋ค์ ๋น์ ์ด ๊ทธ๋ค์ ์ฝ๋๋ฅผ ๊ฒํ ํ ๋ ๋น์ ์๊ฒ ๊ถ์๋ฅผ ๋ถ์ฌํ๋ ์ฝ๋ฉ ํ์ค์ด ์๋ ์๋ ๋๊ฐ์ด ํ ๊ฒ์ ๋๋ค.
OTOH, ์ฝ๋ฉ ํ์ค์ ์๋ ๊ฒฝ์ฐ ๊ทํ ๋๋ ๋ค๋ฅธ ์ฌ๋์ด ๋ง์นจํ ์ถ๊ฐ๋ฅผ __์๊ตฌ__ํ ์ ์์ต๋๋ค. ์ฝ๋ฉ ํ์ค์ ์ ์์ด๋ ์ง์นจ์ด ์๋๋ผ ์๋นํ ์์์ ์ธ ์๊ตฌ ์ฌํญ์ ์งํฉ์ ๋๋ค. ์ด๊ฒ์ ์ด๋ค ์์ผ๋ก๋ ๊ฐ ์ ์์ง๋ง ๋ช ๋ช ๊ท์น๊ณผ ๊ฐ์ด ํ์คํํ๋ ค๋ ๊ฒ์ ํนํ ์ข์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๊ธฐ ์ฃผ๋์ ํ์์ ์ฝ๋ฉ ํ์ค์ ์ต์ํํด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค. ๋ถ๋ช ํ ์ด๊ฒ์ ์์์ ์ ํด์ง๋ ๊ธฐ์ ์ ํ์ค๊ณผ๋ ์์ ํ ๋ค๋ฆ ๋๋ค.
๋ด๊ฐ ์ด๋์์ ์๋์ง ๋ช ํํ ํ๊ธฐ ์ํด, ์๋ชป๋ ์ ๋ณด, ๋น์ฝํ ๋ฌธ๋ฒ ๋๋ ์ฒ ์๊ฐ ์๋ ์์ธ ๋ฉ์์ง์ ์ข์ ๊ณต๊ฐ XML ๋ฌธ์๋ ๋ฒ๊ทธ๋ ์๋ฑํ ์ค์๊ฐ ์๋ ์ข์ ๊ตฌํ๋ณด๋ค ๋ด ๊ด์ ์์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ต๋๋ค. ๋ด๊ฐ ๋ง์คํฐ์ ์คํจํ ํ ์คํธ์ ๋ฒ๊ทธ๊ฐ ์๋ ์ฝ๋๊ฐ ์๋ ๊ฒ์ ๊ด์ฐฎ์ ์ํ๋ก ์ฌ๊ธฐ์ง ์๋ ๊ฒ์ฒ๋ผ, ๋น์ฝํ XML ๋ฌธ์๋ฅผ ๊ฐ๋ ๊ฒ์ ๊ด์ฐฎ์ ์ํ๋ก ์ฌ๊ธฐ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ฉ ํ์ค์ ๋ํด ๋น์ ์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ๋ด๊ฐ ๋๋ฌด ์ข์ํด์ ๊ทธ ์ ์ฉ์ ๋ํด ๋น์ ๊ณผ ๋์ํ ์ ์๋ ๋ํ๊ฐ ์ค๊ธฐ๋ฅผ ๊ณ์ ๋ฐ๋ผ๋ ๊ฒ์ ์ ๋ง ์ข์ ์ ์ ๋๋ค! ๐ ์ด๊ฒ์ XML ๋ฌธ์(๋ฐ ์ค๋ฅ ๋ฉ์์ง)๊ฐ ๋ค๋ฅธ ๋ชจ๋ ์ฝ๋ฉ ํ์ค๊ณผ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ํด์ค๋๋ค. ๊ตฌํ๊ณผ ๊ฑฐ์ ๋ณ๊ฐ์ ์ ํ์ ๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๊ตฌํ์ ๋ํ ํ ์คํธ์ ๋ถ๋ณ์ ์ ์ฉํ๋ ๊ฒ๊ณผ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฌธ์ ์ธ ์ฌ์ฉ์ ๋๋ฉด XML ๋ฌธ์์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ๋ถ๋ณ์ ์ ์ฉํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ด ํฌํ์ผ ๋ฟ์ ๋๋ค. ๋๋ ๋น์ ๊ณผ ๋๋จธ์ง ํ์ ์์ด๋์ด์ ๋ํ ๋ฐ์์ ๊ด์ฌ์ด ์์ต๋๋ค. XML ๋ฌธ์ ํ์ง์ ๋ํ ์ผ์ข ์ ์ฅ๊ธฐ์ ์ธ ๊ธฐ์ค์ด ์ค์ ๋์ด ์์ต๋๊น? ๋ง๋๋ ์ผ๋ง๋ ๋์๊น? ์ฐ๋ฆฌ๋ ์ฅ๊ธฐ ๋ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋จธ๋ฌด๋ฅด๋ ๊ฒ์ด ๋ ๋ซ์ต๋๊น?
์ข์ XML ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ด๋์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ๊ทํ์ ๋ชจ๋ ์์ ์ด ๋ง์์ ๋ ๋ค๊ณ ๋จผ์ ๋งํ์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ํ์ ์๊ตฌ ์ฌํญ์ ์งํฉ ์ธ ์ฝ๋ฉ ํ์ค์ ๋งํ๊ณ ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ง์คํ ๊ฒ์ ๋๋ค.
ํ ๊ฐ์ง ๋ ์์ธ์ ๋๋ค. ๊ธฐ์ฌ์๋ ๋ฐ๋ผ์ผ ํ ํ์ค์ ์ฐพ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ํ๋ค, ๋๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ํ๊ณ ์๋ค๋ ์ฆ๊ฑฐ๋ฅผ ๋ณธ๋ค. ๊ทธ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ฉ ํ์ค๊ณผ ์ฃผ๋ณ ํ์ผ์ ๋ณด๊ณ ์งํ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํฉ๋๋ค. ๊ถ์ฅ ์ฌํญ์ ์ฝ๋ฉ ํ์ค์ผ๋ก ๋ง๋ค๊ณ ์ถ์ง ์๋๋ผ๋ ๊ธฐ์ฌ์์ ์ฌ๋์ ๋ฐ๋ผ ๊ถ์ฅ ์ฌํญ์ ๋ฌธ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
@jnm2
"์๋ชป๋ ์ ๋ณด, ๋น์ฝํ ๋ฌธ๋ฒ ๋๋ ๋ง์ถค๋ฒ ์ค๋ฅ๊ฐ ์๋ ํ๋ฅญํ ๊ณต๊ฐ XML ๋ฌธ์์ ์์ธ ๋ฉ์์ง๋ ๋ด ๊ด์ ์์ ๋ฒ๊ทธ๋ ๊ณผ๋ํ ์กฐ์กํจ์ด ์๋ ์ข์ ๊ตฌํ๋ณด๋ค ๋ ์ค์ํ์ง ์์ต๋๋ค. ๋ง์น ๋ด๊ฐ ํ ์คํธ์ ์คํจํ๊ณ ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒ์ด ๊ด์ฐฎ์ ์ํ๋ผ๊ณ ์๊ฐํ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ง์คํฐ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ XML ๋ฌธ์๊ฐ ์ข์ง ์์ ๊ฒ์ ๊ด์ฐฎ์ ์ํ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค."
<chiding>
๋ฏธ์ํ์ง๋ง ๊ทธ์ชฝ์ผ๋ก ์ ํํด์ผ๊ฒ ์ด. ๋น์ ๊ณผ ์๊ฒฌ์ด ๋ค๋ฅธ ์ฌ๋์ด ๋น์ ์ ํ๋ฅญํ ์์จ ๊ฐ์น๋ฅผ ๊ณต์ ํด์๋ ์ ๋๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ์ค๋ฅ์
๋๋ค. ์ฌ์ค ์ด๊ฒ์ด ์ ๊ฐ ํ์ค์ ๋ํด ๋งํ๊ณ ์ ํ๋ ์์ ์
๋๋ค. ์๋ฅผ ๋ค์ด "๋ฌธ์์๋ ์ฒ ์๊ฐ ์ฌ๋ฐ๋ฅธ ๋จ์ด๊ฐ ์์ด์ผ ํจ"์ด๋ผ๋ ํ์ค์ ์์ฑํ๋ ๊ฒฝ์ฐ ๋ช
๋ฐฑํ ๋ด์ฉ์ ๋งํ ๋ฟ๋ง ์๋๋ผ ๋๋ฃ ํ์์ ๋ชจ์ํ๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ ๋ด๊ฐ ๋ง์ ํ์ฌ์์ ๋ฐ๊ฒฌํ ๋ฐ๋ก ๊ทธ๋ฐ ์ข
๋ฅ์ ํ์ค์
๋๋ค. ๊ทธ๊ณณ์์๋ ๋ณ๋์ ์กฐ์ง์์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฐ๋ผ์ผ ํ ์ ์ฑ
๊ณผ ์ ์ฐจ๋ฅผ ๋ง๋ค์์ต๋๋ค. "C# ํ๋ก๊ทธ๋จ์ ์ ์ ํ๊ฒ ์์ฑ๋์ด์ผ ํ๊ณ ์กฐ์ง์ ์ข์ ์์น์ ๋ฐ๋ผ์ผ ํ๋ค"๋ ํ์ค์ ์์ฑํ์ง ์๋ ๊ฒ์ฒ๋ผ XML ๋ฌธ์์ ๋ํด์๋ ๋์ผํ ํ์ค์ ์ํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์๊ฒฌ ๋ถ์ผ์น๋ ๋ฌธ์๋ ๋ฌธ์์ ๊ฐ์น ๋๋ ์ผ๋ฐ์ ์ธ ์์จ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ์ฝ๋ฉ ํ์ค์ ์ฑ๊ฒฉ๊ณผ ๋ชฉ์ ์ ๊ดํ ๊ฒ์ ๋๋ค.
๋น์ ๊ณผ ๋์ํ์ง ์๋ ์ฌ๋์ด ๋น์ ๋ณด๋ค ํ๋ฅญํ ๊ธฐ์ ์ ๋ ์ค์ํ๊ฒ ์ฌ๊ธฐ์ง ์๋๋ค๊ณ ์ ์ํ๋ ๊ฒ์ ์ต์
์ ์ข
๋ฅ์ ์ธ๊ฐ์ ์ธ ์ฃผ์ฅ์
๋๋ค.
</chiding>
์ฃ์กํฉ๋๋ค. ๐
"์ฝ๋ฉ ํ์ค"(๋๋ฌธ์)์ด๋ผ๋ ์ฉ์ด๋ XP ๊ฐ๋ฐ์์ ๊ฐ์ฅ ๋ฏผ์ฒฉํ๊ณ ํ์คํ ์ฉ์ด์ ๋๋ค. ๋ด๊ฐ ๋ณด๊ณ ์๋ ์ด ์ฝ๋ฉ ํ์ค์ ๋ชฉ์ ์ผ๋ก ์ ์๋ ๊ฒ์ ์๋ฏธํ์ง๋ __์๋๋๋ค__. ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฝ๋ฉ ํ์ค์ XP๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ๋ก ์ ๊ฐ ์์ฑํ์ต๋๋ค. ์ฌ๋ฌ๋ถ์ ๊ทธ๊ฒ์ ๋ณ๊ฒฝํ ์ ์์ง๋ง ๋ค๋ฅธ ๋จ์ด๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋น์ ์ด ์ค๋ช ํ๋ ๊ฒ์ (๋ด ์๊ฐ์๋) "XML ๋ฌธ์์ ๋ชจ๋ฒ ์ฌ๋ก"์ ๋ ๊ฐ๊น์ง๋ง ์ฝ๋ฉ ํ์ค์ (๋ด ์ ์์ ๋ฐ๋ฅด๋ฉด) "์ต์ํ์ ๊ดํ"์ ๊ฐ๊น์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ง์ ์๊ฐ์ ์ต์ํ์ผ๋ก ์ค๋ช ํ๋ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ ์ค์ํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด NUnit์์ ์ํ๋๋ ์์ ์ ๋๋ถ๋ถ์ ์ผ๋ฐ ๊ธฐ์ฌ์๊ฐ ์ํํฉ๋๋ค. ์ด์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ชจ๋ ๋ฐ๋ฅด์ง ์์ ์ฌ๋๋ค์ ๋ณด๋ด๋ฉด ๋ค์ ๋์์ค์ง ์์ ์ ์์ผ๋ฉฐ ๊ธฐ์ฌ์๊ฐ ์ค์ด๋ค ๊ฒ์ ๋๋ค. OTOH, ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค์ ์์ ์ ๋ฐ์๋ค์ด๊ณ ๊ทธ๊ฒ์ ๊ฐ์ ํ๊ณ ๋ค์์ ๋ ์ํ ์ ์๋๋ก ๋ ธ๋ ฅํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ ์ ์งํ ๋ ๋์ ๊ธฐํ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ค์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. __๋ง์ฝ ๋น์ ์ ์์ด๋์ด๊ฐ ๊ทธ๋ ๊ฒ ํ๋ฅญํ๋ค๋ฉด, ๊ทธ ๋ฐฐํ์ "๋ฒ์ " ๊ถ์์ ํ์ด ์ ํ์ํ๊ฐ์? ๐ธ ๊ฐ์ธ์ ์ผ๋ก ๋น์ ์ ๊ทธ๋ ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฐ์ฅ ๋์ ๊ธฐ์ค์ ๋ ๋ช ์ ์ปค๋ฏธํฐ๊ฐ ๋์ํ์ง ์๋ ํ ์ด๋ค ๊ฒ๋ ๋ณํฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ํ์ด ์๋๋ผ ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋๋ค.
๋น์ ๊ณผ ์๊ฒฌ์ด ๋ค๋ฅธ ์ฌ๋์ด ๋น์ ์ ํ๋ฅญํ ์์จ ๊ฐ์น๋ฅผ ๊ณต์ ํด์๋ ์ ๋๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ์ค๋ฅ์ ๋๋ค.
์ฃ์กํฉ๋๋ค! ๋ด๊ฐ ์๋ํ ์๋ฏธ๋ ์ ํ ์๋๋๋ค. ๋๋ ๋น์ ์ด ๋งํ๋ ๊ฒ์ ๋์ํฉ๋๋ค.
์ฌ๊ธฐ ๋ด๊ฐ ๋ฐฐ์ฐ๋ ค๊ณ ํ๋ ๊ฒ์ด ์์ต๋๋ค. ๋ ๋์ ์๋น์ ๊ฒฝํ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ XML ๋ฌธ์ ๋ฌธ์ฅ์ ๋ ํ์๊ฐ ์๋ ์์น์ ์๊ธฐ๋ฅผ ์ํ๋ค๋ ๋ฐ ๋ชจ๋ ๋์ํ๊ฒ ๋๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ ์์น์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ๋ด๊ฐ ๋ ๋ช ํํ๊ฒ ๋ฌป๋๋ค๋ฉด ๋ด๊ฐ ๊ฐ๊ณผํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
์ด์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ชจ๋ ๋ฐ๋ฅด์ง ์์ ์ฌ๋๋ค์ ๋ณด๋ด๋ฉด ๋ค์ ๋์์ค์ง ์์ ์ ์์ผ๋ฉฐ ๊ธฐ์ฌ์๊ฐ ์ค์ด๋ค ๊ฒ์ ๋๋ค.
๋๋ PR์ ๋ํ ๋ณ๊ฒฝ์ ์์ฒญํ๋ ๊ฒ์ ๊ตฌ์ํ๊ณ ์์์ง๋ง ์ฌ๊ธฐ์ ๋น์ ์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ดํดํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ๋๋ค์ ๋ฉ๋ฆฌ ๋ณด๋ด๋ ๊ฒ์ ์ด๋ป๊ฒ ๋ณด์ ๋๊น?
์๋ง๋ ์ฐ๋ฆฌ์ ์ฝ๋ฉ ํ์ค์ด ํ์ฌ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค. ๋ฐฉ๊ธ ๋น ๋ฅด๊ฒ ํ์ด๋ณด์์ต๋๋ค. ๊ฑฐ๊ธฐ์๋ ์ ๊ฐ ์์ง ๋ชปํ๊ณ ๊ฒํ ์์ ์ํํ์ง๋ ์์์, ์ฌ์ง์ด ์ ์ฝ๋๋ก ์์ฑํ์ง๋ ์์์ ๋ถ๋ถ์ด ์์ต๋๋ค! ๐
๋ด ์๊ฐ:
๋๋ ๋ํ PR์์ ๋ช ๊ฐ์ง ๋ง์นจํ๋ฅผ ์์ ํ๊ธฐ ์ํด ์ฌ๋๋ค์ ๋ค์ ๋ณด๋ด๋ ๊ฒ์ ๊ฒฝ๊ณํฉ๋๋ค.
๊ธฐ๊ณ ์๊ฐ ๊ฐ์ด๋๋ผ์ธ์ ํตํด ๋๋ ์ฃผ๋ณ ํ์ผ์ด ์ํํ๋ ์์ ์ ๋ณด๊ณ ์คํ์ ๊ฐ์ ๊ด์ ์์ ์ด๋ฅผ ๋ณด๊ณ ์๋ค๋ฉด ์์ ํ๋ ค๋ ์ด์๊ฐ ์์ ์๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์๋ณด๊ณ ๊ทธ๊ฒ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌ๋ ค ์์ต๋๋ค.
@CharliePoole์ ๋์ํฉ๋๋ค. ์ ์์๋ก ์ข๋ค!
์ ๋ ์ฌ์ค ๊ธฐ๊ฐ์ ๋ฅผ ์ซ์ดํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ฌผ๊ฑด์ ๋ณต์กํ๊ฒ ๋ง๋ ๋ค๊ณ ์๊ฐํฉ๋๋ค. xml ์ฃผ์์ ๋ง์นจํ๋ฅผ ์ฌ์ฉํ ์ ์ด ์์ต๋๋ค. ๋ด๊ฐ ์ฐธ์ฌํ ํ๋ก์ ํธ์ ๋ํด ์๋ฌด๋ ๋ถํํ์ง ์์์ต๋๋ค.
ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, @oznetmaster.
์ฐ๋ฆฌ๋:
@jnm2 ๋ค์ ์์ํฉ๋๋ค! ๋๋ __๋ง__ ๋น์ ์ ์๋ ์ ์์์ __๋__ ๋จ์ด์ ๋์ํ์ง ์์์ต๋๋ค: "์ฝ๋ฉ ํ์ค." ๋๋ ์ฌ์ค ๋ค๋ฅธ ๋๋ถ๋ถ์ ๊ฒ์ ๋์ํฉ๋๋ค. ์ง๊ธ ์ด ๋ ผ์๋ฅผ ์ธ๋ถ ์ฌํญ์ผ๋ก ๋ณต์กํ๊ฒ ๋ง๋๋ ๊ฒ์ ํผํ๊ณ ์์ต๋๋ค.
์๋ง๋ ์ฒ์์ "๊ณ ๋ง์ต๋๋ค. ๋๋ถ๋ถ ๋์ํฉ๋๋ค. ์ฝ๋ฉ ํ์ค๋ณด๋ค "XML ๋ฌธ์ ์ฃผ์์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก"์ ๊ฐ์ ์ง์นจ ๋ฌธ์๋ก ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ ๋นจ๋ฆฌ ํด๊ฒฐํ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. .
์์ฝ: ๋ด ๋ฐฐ๊ฒฝ, ์ต์ํ ๋ด๊ฐ ๊ฐ์ฅ ์๋์ค๋ฝ๊ฒ ์๊ฐํ๋ ๋ถ๋ถ์ XP ์ฌ์ฉ์์ ๋๋ค. XP์์ "Coding Standard"๋ ํน์ ํ ์๋ฏธ๋ฅผ ๊ฐ์ง์ง๋ง ๊ทํ์๊ฒ ์๋ฏธํ๋ ๋ฐ๊ฐ ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ๋ ๋ฐ ๋ชจ๋ ์๊ฐ์ ๋ณด๋ด์ง ์๊ธฐ ์ํด ํ ๋ฒ์ ํด๊ฒฐํ๋ ๋ค์ ์ค์ํ์ง ์์ ๊ฒ๋ค์ ๋ชจ์์ ๋๋ค. ์ค๊ดํธ ๋ฐฐ์น, ๋ฉค๋ฒ ํ๋์ ์ ๋์ฌ ์ฌ์ฉ ์ฌ๋ถ ๋ฑ
๋ด๊ฐ ์กด๊ฒฝํ๋ ๋๋ถ๋ถ์ ์ ๋ฌธ๊ฐ๋ค์ ์ฝ๋ฉ ํ์ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฃ์ง __ํ์ง ์์ต๋๋ค__ ๋ผ๊ณ ๋งํฉ๋๋ค. ํ์ด ์์ฒด ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ์ ์ํฌ ์ ์์ต๋๋ค. ๋ง์ ๊ฒฝ์ฐ์ "์ต์์"(๋๋ ์์ฃผ ์ข์) ๊ดํ์ด ๋ช ๊ฐ์ง ์์ผ๋ฉฐ ์ค์ ๋ก ๊ทธ ์ค ํ๋๋ฅผ ์์ ํ ์ ํํ ํ์๋ ์์ต๋๋ค. "์ ์ฑ ๊ณผ ์ ์ฐจ์ ๋ํ ์ ๋ขฐ"๋ผ๊ณ ํฉ๋๋ค.
์ด๊ฒ์ ๋ด ๋ฐฐ๊ฒฝ์ผ ๋ฟ์ด๊ณ ์๋ง๋ ๋น์ ์ ๋ฐฐ๊ฒฝ์ ์๋ ๊ฒ์ ๋๋ค. ๊ณผ๊ฑฐ์๋ ์ด ํ๋ก์ ํธ์ ์ ๊ฐ์ธ์ ์ธ ์ ๋ ์ ์ ์ฉํด์ผ ํ์ต๋๋ค. ๋จธ์ง ์์ ๋ ์ด์ ํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๋ฒ๋์ค ๋ชจ๋ธ์ ์ค์ ํ๋ ค๊ณ ํ๋ ์ด์ ์ ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ผ์ ์ด์ํ๋์ง์ ๋ํด ์๊ฐํ๋ ๊ฒ์ด ๋์๊ฒ ๋ ๋ง์ ์ ์ฑ ๊ณผ ์ ์ฐจ๋ฅผ ์ํ๋ค๋ ์๋ฏธ๋ __์๋๋๋ค__. ์ฌ๋ฌ ์๊ฒฌ์ด ์์ ๋ ์ง๋ฌธ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ฒ์ ๋๋ค.
ํ์ง๋ง ๋ด๊ฐ ๋งํ๋ฏ์ด, ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๋ค๊ณ ์๊ฐํ์ง ์๊ณ ๋จ์ง ๋ค๋ฅธ ๊ฒ์ ์ง์คํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋ฉ ํ์ค(Coding Standard)์ด๋ผ๊ณ ํ๋ฉด ์ ๋์ ์ผ๋ก ๋ฐ๋ผ์ผ ํ๋ ๊ฒ, ์ฆ ํ๋จ์ด ์๋ค๋ ๋ง์ ๋ฃ์ต๋๋ค. ๋๋ ์ฌ๋๋ค์ด ํ๋จ๋ ฅ์ ์ฌ์ฉํ๊ธฐ๋ฅผ __์__ํ๊ธฐ ๋๋ฌธ์ ์ต์ํํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก ๋๋ ๊ถ์ฅ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์ด๋ฅผ ๋ฐ๋ผ ํ๋จํฉ๋๋ค. ๊ฒฐ๊ตญ, ์ฝ๋์ ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ํ ์ ํ๋ ์ฌ๋๋ค์ ๊ทธ๋ค์ด ์๊ฐํ๋ ๋๋ก ์ผ์ ํจ์ผ๋ก์จ "์น๋ฆฌ"ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์คํ ์์ค์์๋ ๊ทธ๋์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก xml ์ฃผ์์ ์์๋ ๋จ์ผ "๋ฌธ์ฅ"์ ๋๋ค.
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ "๋ฌธ์ฅ"์ para ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
@jnm2 ๋ ผ๋ฆฌ์ ์ผ๋ก ํด์ผ ํ ์ผ์ XML ๋ฌธ์์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ๋ํด ์์ฑํ๋ ๊ฒ์ ๋๋ค. ๋๋ ๋น์ ์ด ์ด๋ฏธ ์์ ๋๊ธ์์ ์์ํ๊ธฐ ๋๋ฌธ์ ๋น์ ์๊ฒ ๋งํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฐ๋ฆฌ๋ ๋ค์ํ ์์ ์ ๋ํด ํ ๋ก ํ๊ณ ์ฝ๋ฉ ๋ฐ ๋์์ธ์ ์ข์ ์์น์ ๋ฐ๋ฅด๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ ๊ฒ์ฒ๋ผ ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ฅผ ๋ฌด์ธ๊ฐ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
xml ๋ฌธ์์ ๋ํ "๋ชจ๋ฒ ์ฌ๋ก"๋ฅผ ์์ฑํ๋ ค๋ ์๋์กฐ์ฐจ ๋ฏธ๋๋ฌ์ด ๊ฒฝ์ฌ๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฆ์ "์ด๋ค ์์ด์ ๋ํด ๋ง์ถค๋ฒ์ ๊ฒ์ฌํฉ๋๊น?"์ ๊ฐ์ ์ง๋ฌธ์ด ์ ๊ธฐ๋ฉ๋๊น? ์ซ์์ ๋ชฉ๋ก ๊ตฌ๋ถ ๊ธฐํธ์ ์ด๋ค ๋ฌธํ๊ถ์ ์ฌ์ฉํฉ๋๊น? ๋ง์นจํ ๋ค์ ํ ์นธ ๋๋ ๋ ์นธ(๋ง์นจํ๋ฅผ ํ์ฉ/์๊ตฌํ๋ ๊ฒฝ์ฐ).
๋๋ ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฐ๋ฆฌ์ ๊ด์ฌ์ ์ง์คํด์ผ ํ ๊ณณ์์ ์ฝ๊ฐ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๋ค๊ณ ์๊ฐํฉ๋๋ค!
๋ฌธ์ ํ์ด์ง์ ๋ํ ์ฝ๋ฉ ํ์ค ๋๋ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์์ต๋๊น?
@CharliePoole ์ข์, ์ฐ๋ฆฌ๋ ์ง๊ธ ๊ฐ์ ํ์ด์ง์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@oznetmaster ์ ์ด๋ ํ์ฌ๋ก์๋ ์ด๋ฌํ ์ง๋ฌธ์ด XML ๋ฌธ์์ ๋ฒ์๋ฅผ
๋๋ ๊ทธ๋ค์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ด์ ๋ฅผ ์์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ค์ ๋ฌธ์ฅ์ ๊ตฌ๋์ ๋งํผ ๊ด๋ จ์ด ์์ต๋๋ค.
"์์"์ ๋ฌธ์์ ์์ ๋๋ ์์์ผ๋ก ํ๊ธฐํด์ผ ํฉ๋๊น? ์ซ์์ ์๋ฆฟ์ ๊ตฌ๋ถ ๊ธฐํธ๋ ์ผํ ๋๋ ๋ง์นจํ์ ๋๊น? ์์์ ๊ตฌ๋ถ ๊ธฐํธ์ ๋์ผํฉ๋๋ค. ๋ชฉ๋ก "a, b, c, d"๋ ๋ ์ผ์์ "a; b; c; d"๋ก ์์ฑ๋ฉ๋๋ค.
NUnit ์ฌ์ฉ์๊ฐ NUnit์ ๊ฐ์ฅ ์์ฃผ "๋ณด๋" ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ํ๋ ์์ํฌ์ ๊ณต๊ฐ ์ธก๋ฉด์ ๋ํ xml ๋ฌธ์๊ฐ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค๋ ์ ์ ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ์ผ๊ด์ฑ์ ์ผ๋ถ์ ๋๋ค.
@oznetmaster ๋๋ ๋น์ ์ ์ง๋ฌธ์ ๋ํ ๋๋ต์ ๋๊ตฐ๊ฐ๊ฐ ๊ด์ฌ์ ๊ฐ์ง ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๊ฑฐ๊ธฐ์์ ๊ฐ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
'์์'๊ณผ '์์'์ด ์ต์ข
์ฌ์ฉ์ ๊ฒฝํ์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฏธ์น๋์ง ์ ์ ์์ง๋ง ๋๊ตฐ๊ฐ๊ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ ํ์ ํ์คํ ๋ํ๋ฅผ ๋๋ ์ ์์ต๋๋ค. ์ง๊ธ '์์' ๋ '์์'์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐ๋๋ฉด ์ด์ ๋ํด ๋
ผ์ํ๊ณ ์ฌ๋๋ค์ ์๊ฐ์ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ๋ฅํ ๋ชจ๋ ๋ํ ์์ด ๋ ํ์์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ํ๋์ง ์ฌ๋ถ์ ๋ํด ๋ํ๋ฅผ ๋๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@jnm2 ์๋นํ ๊ทผ์์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ ํ์๋ฅผ ์ํ "๋ชจ๋ฒ ์ฌ๋ก"?
๋ค์ ๋ฌป์ต๋๋ค. ๋ฌธ์ ํ์ด์ง์ ํด๋นํ๋ "๋ชจ๋ฒ ์ฌ๋ก"๊ฐ ์์ต๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ์ผ๊ด์ฑ์ด ์ฌ๊ธฐ์ ์ถ๊ตฌ๋๋ ๊ฒ์ด๋ผ๋ฉด ํ์คํ ๊ทธ๊ฒ์ด ํจ์ฌ ๋ ๋์ ์ฐ์ ์์๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋๋ ๋ชจ๋ xml ์ฃผ์์ด ์๋ฌธ์๋ก ๋ ํ ํ์ฌ์์ ์ผํ์ต๋๋ค. ์ค์ ์์ ๋ถ๋ถ์ ๋๋ฌธ์๊ฐ ์์ต๋๋ค. ์์๊ณผ ๋ ๋ฌธ์ ๋ฅผ ๊ฒํ ํด์ผ ํ์ง ์์๊น์?
Microsoft๋ https://docs.microsoft.com/en-us/dotnet/csharp/codedoc์ ๊ถ์ฅํฉ๋๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ํน๋ณํ:
Documenting code is recommended for many reasons. What follows are some best practices, general use case scenarios, and things that you should know when using XML documentation tags in your C# code.
- For the sake of consistency, all publicly visible types and their members should be documented. If you must do it, do it all.
- Private members can also be documented using XML comments. However, this exposes the inner (potentially confidential) workings of your library.
- At a bare minimum, types and their members should have a <summary> tag because its content is needed for IntelliSense.
- Documentation text should be written using complete sentences ending with full stops.
- Partial classes are fully supported, and documentation information will be concatenated into a single entry for that type.
- The compiler verifies the syntax of the <exception>, <include>, <param>, <see>, <seealso> and <typeparam> tags.
- The compiler validates the parameters that contain file paths and references to other parts of the code.
-
NUnit XML ๋ฌธ์์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ก ์ด๋ฅผ ๊ถ์ฅํ๊ณ ์ด ๋ฌธ์ ์ ๋ ์ด์ ์๊ฐ์ ํ ์ ํ์ง ์๋๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
@nunit/framework-team ์ข์ต๋๋ค. ์ ๊ฐ ๋
ผ์ํ๊ณ ์ถ์ 7๊ฐ์ง ์ง์นจ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://gist.github.com/jnm2/3f230c9f6343d60bb542938dc35e7a96
Q1: ๋ค์ ์ค NUnit Framework ์ ํ์ ์ํฅ์ ๋ฏธ์น๋ ๋ชจ๋ฒ ์ฌ๋ก๋ก ๋ณด๊ณ ์ถ์ ๊ฒ์ ๋ฌด์์ ๋๊น?
Q2: ๋ชจ๋ฒ ์ฌ๋ก ๋ฌธ์๋ฅผ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ ์ธ์๋ PR์ด ์ด๋ฌํ ์ง์นจ์ ๋ฐ๋ฅด์ง ์๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ฉด ๋ณ๊ฒฝ์ ์์ฒญํ์๊ฒ ์ต๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๋์ค์ ๊ณต๊ฐ XML ๋ฌธ์๋ฅผ ๊ฐ์ ํ๊ณ ์ถ์ต๋๊น?
์์ ์ ํ์ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก๋ PR์ด๋ PR์ ์์ฉ์ ์ํฅ์ ์ฃผ์ด์๋ ์ ๋ฉ๋๋ค!
์์์ ์ธ๊ธํ๋ฏ์ด ์์ ๋งํฌ์์ Microsoft๊ฐ ๋ฌธ์ํํ ๊ฒ์ฒ๋ผ ๋๋ฆฌ ๋ฐฐํฌ๋๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ "๋ชจ๋ฒ ์ฌ๋ก"๋ฅผ ์ฑํํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
@jnm2
์๊ฐ ๋จ๋ฝ: ์ด ๋ฒ์๊ฐ ๋ฌด์์ธ์ง ๋งํ์ญ์์ค. ์ปดํ์ผ๋ฌ ์ค๋ฅ๋ฅผ ํผํ๊ธฐ ์ํด ๋ชจ๋ ๊ณต์ฉ ๋ฉ์๋์ xml ๋ฌธ์๊ฐ ํ์ํ ํ๋ ์์ํฌ ๋ฐ engine.api ์ด์ ๋ธ๋ฆฌ์ ์ ์ฉํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ง๋ฌธ์ ๋ํด...
์ฐ์ต 1: ๋ชจ๋ ๋ฌธ์ฅ์ ๋ง์นจํ(๋ง์นจํ ์๋)๊ฐ ํ์ํฉ๋๋ค. ๋ฌธ์ฅ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
์ค์ต 2: ๋๋ ์ด๊ฒ์ ์๊ปด์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด string์ด๋ int์ ๋ํ ref๋ ํ์ํ์ง ์์ต๋๋ค.
์ฐ์ต 3: public์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ ์ธํ๊ณ add:๋ฅผ ์ ๊ฑฐํด๋ ๊ด์ฐฎ๋ค๊ณ ๋งํ ๊ณณ.
์ฐ์ต 4: ๋ช ๋ฐฑํ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ . ํนํ ์์ฑ์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
์ฐ์ต 5: ์
์ฐ์ต 6: ์
์ฐ์ต 7: ์๋ผ์ญ์์ค. ์ผ๋ถ ๋๋ ๋๋ถ๋ถ์ ๋ฉ์๋ ํธ์ถ์์ ๋ฐ์ํ ์ ์๋ ์์ธ๋ฅผ ๋์ดํ์ง ๋ง์ญ์์ค. (1) ์ ๋ณด๋ฅผ ๋ ๋ฒ ๋์ดํ๊ณ (2) ๋ชจ๋๊ฐ ์ด๋ฏธ ์๊ณ ์๋ ๊ธฐ๋ณธ ์ ๊ณต .NET ์์ธ์ ๋ํด cref๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์๋ ์์ ๊ฐ ๋ง์์ ๋ค์ง ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ ์์ ์ ๋ฌผ๊ฑด์ ์ข์ํ ๊ฒ์ ๋๋ค.
๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋ํด...
๋ณ๊ฒฝ์ ์์ฒญํ์๊ฒ ์ต๋๊น? ์, ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ ์ด์จ๋ ๊ทธ๋ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฐ๋ฆฌ์ ํ๋จ์ ๋ฐ๋ผ ๋ฌผ๊ฑด์ ๊ฒํ ํด์ผ ํฉ๋๋ค. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ๋์ํ์ง ์๋๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํด๊ฒฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ณผ ๋ ์ด๋ค ๊ฒ์ด ๋ช ํํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ ๋ณด์ผ์ง ๋ฏธ๋ฆฌ ๋งํ ์๋ ์์ผ๋ฏ๋ก ๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋ฏธ๋ฃจ๋๋ก ํฉ์๋ค.
๋๋ ๋ช ํ์ฑ์ ์ํด ํ์ํ ์ต์ํ์ ๊ฒ ์ด์์ ์ผ์น์ ์ผ๊ด์ฑ์ ์ฐ๋ฆฌ์๊ฒ ํน๋ณํ ๊ฐ์น๊ฐ ์๋ค๋ ๊ฒ์ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฌ์ฉ์๋ ํ๋ จ๋ ํ๋ก๊ทธ๋๋จธ์ด๋ฉฐ ์ํฉ์ ํ์ ํ ์ ์์ต๋๋ค.
@oznetmaster ๋ง์ดํฌ๋ก์ํํธ ๊ฐ์ด๋๋ผ์ธ์๋ 7๊ฐ์ง ํฌ์ธํธ๊ฐ ์์ต๋๋ค. ๋ด ๋๊ธ...
2, 3, 4. ์ง์นจ์ผ๋ก ์ดํดํ์ญ์์ค.
5, 6, 7. ์ค๋ช ์ ์ง์นจ์ด ์๋๋ผ ์ปดํ์ผ๋ฌ์ ๋ํ ์ค๋ช ์ ๋๋ค.
2, 3, 4๋ฅผ ์ทจํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ ์๊ฒ ์ ํฉํ ๊ฐ์ด๋๊ฐ ๋ฉ๋๋ค.
์์งํ ๊ทธ๋ฐ ๊ฐ์ด๋๋ผ์ธ์ด ํ์ํ๋ค๊ณ ๋๋ผ์ง๋ ์์ง๋ง @jnm2 ๊ฐ ์์ ์ ํ๊ณ ์๊ณ ๊ธฐ๊บผ์ด ์์ ํ ์ํฅ์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฐ ๋ถ๋ด ์์ด ์ํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฝ๋ ๊ฒํ ์ ๊ด๋ จํ์ฌ ๋๊ตฌ๋ ์ธ์ ์ด๋ค ์ด์ ๋ก๋ ์์ ๋กญ๊ฒ ๊ด์ฐฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํํ๊ธฐ ์ํด ์ผ๋ถ ๋ฌธ์์ ๊ถํ์ด ํ์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ท์น์ ๋ง๋ค๊ณ ์ํํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋ฏธ๋์ ์๋ฆผ์ด ํ์ํ๋ค๊ณ ์๊ฐ๋๋ ์ฌํญ๋ง ๊ธฐ๋กํ๋ฉด ๋ฉ๋๋ค.
@CharliePoole ์ ์ ์๊ฒ
์ด๊ฒ์ ๊ณต๊ฐ ์ ํ์ผ๋ก๋ง ์ ํํ์ฌ ๋์๊ฒ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค.
์ผ๊ด์ฑ์ด ์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ๋งค์ฐ ์ค๋๋ ์ฝ๋๋ฒ ์ด์ค์ด๋ฉฐ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋ฐ ๋ ๋์ ์๊ฐ์ ํ ์ ํ ์ ์๋ ์๊ฐ์ด ์ ํ๋์ด ์์ต๋๋ค. ์ฆ, ์คํด์ ์์ง๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ฐพ์์ผ ํ๋ฉฐ ๋๊ตฌ ์ฌ์ฉ ํ๊ฒฝ์ ๊ฐ์ ํ๊ธฐ ์ํด ๊ฐ๋ฅํ ํ <see cref="xxx"/>
์ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ญ์ Colour
์๋๋ผ Color
์์ด ๋ถ๋ช
ํฉ๋๋ค ๐
@ChrisMaddock Microsoft ๋๋ @ jnm2 ์ค ์ด๋ ๊ฒ์ด ์ ๋ณด์ ๋๊น? @CharliePoole ์ด Microsoft ๋ชฉ๋ก์์ ํ์ํ ์ธ ๊ฐ์ง๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@oznetmaster - ์ฃ์กํฉ๋๋ค. ๋ ๊ฐ์ง ์ต์ ์ ๋ชจ๋ ๊ณ ๋ คํ๊ณ ์๋์ง ๋ชฐ๋์ต๋๋ค.
์ ๋ ์ ์๋ @jnm2 ์ ๋ ๊ณ ๋๋ก ์ง์ ๋ ์ต์ ์ ๋ํด ์ด์๊ฐ ์์ต๋๋ค. Microsoft ์ถ์ถ์ ๊ทธ ํ์ ์งํฉ์ธ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๊ฒฉ์ ๋ณ๋ก ๊ด์ฌ์ด ์๋ ๋ถ๋ถ์ ๋๋ค. ๊ทธ๋ฌ๋ @jnm2 ๊ฐ ํ์ฌ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ด ํ์ค์ผ๋ก ๋์ด์ฌ๋ฆฌ๊ณ ์ ํ๋ค๋ฉด ์์ฌํ ์ฌ์ง ์์ด ๊ฐ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ด ๋์ ๋น์ ๋ฌธ ์คํ ์์ค ํ๋ก์ ํธ์ ์ผ๋ถ์ด๋ฉฐ ํญ์ ํ์ด ์์ ์ ๊ด์ฌ์ด ์๋ ๊ฒ์ ์ํด ์ด๋ ์ ๋ ์ถ์ง๋ ๊ฒ์ ๋๋ค.
์ ๋ '์ง์นจ' ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ PR์์ ๊ธฐ๊บผ์ด ๋ฐ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ์ฌ์ํ ๋ฌธ์ฒด ๋ณ๊ฒฝ์ ์ํด ์บ์ฃผ์ผ ๊ธฐ๊ณ ์๋ฅผ ๋๋ ค๋ณด๋ด๋ ์์ด๋์ด์ ๊ทธ๋ค์ง ๊ด์ฌ์ด ์์ต๋๋ค.
๋ ์ญ์ ์ด๋ ์ชฝ๊ณผ๋ ํจ๊ป ์ด ์ ์์๊ณ , ํญ์ ์ฝ๊ฐ์ ์ค์ฉ์ฃผ์๋ก ๋จ๋ จ๋์์ต๋๋ค.
WRT ์ฝ๋ ๊ฒํ , ์ด๊ฒ์ ๋ฌธ์์ ๋ํ ์ฐธ์กฐ๊ฐ ์๋๋ผ ์ฌ๋๋ค์ด ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ๊ทผ๊ฑฐ์ ํจ๊ป ์ ์๋๊ฑฐ๋ ๊ถ์ฅ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๊ณ ์ถ์ ์์ญ์ ๋๋ค. ์ฝ๋ฉ ํ์ค์ ๊ฒฝ์ฐ ๋ฌธ์๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ "๊ทธ๋ฅ ๋ฐ์ค๋ง ์ถ๊ฐํ์ธ์."๋ผ๊ณ ๋งํฉ๋๋ค. ์ฌ๊ธฐ์ OTOH๋ "์ด๋ ๊ฒ ํ๋ฉด ์ ์ ๋ค์๊ฒ ๋์์ด ๋ ํ ๋ฐ..."๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
์ผ๋ถ ์ผ๋ฐ ๊ธฐ๊ณ ์๋ ์ด๋ฌํ ๋ด์ฉ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ ํ ํ์์ ๊ฐ๋ ์ ๊ฐ์ง ์๋ จ๋ ๊ฐ๋ฐ์์ผ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๊ฐ์ฅ ์ข์ํ๋ "์์"์ ์ด๋ฅด๊ธฐ๊น์ง ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ์ ๋ ๊ทธ๊ฒ์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
ํผ๋๋ฐฑ์ ์ด ํ์ด์ง์ ํตํฉํ์ต๋๋ค: https://github.com/nunit/docs/wiki/Best-practices-for-XML-documentation.
@์ฐฐ๋ฆฌํ
๋ชจ๋๊ฐ ์ด๋ฏธ ์๊ณ ์๋ ๊ธฐ๋ณธ ์ ๊ณต .NET ์์ธ์ ๋ํด cref๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ ์์ ์ ๋ฌผ๊ฑด์ ์ข์ํ ๊ฒ์ ๋๋ค.
Intellisense ๋๋ ๋ฌธ์๊ฐ ํ์๋ ๋๋ง๋ค ๋๊ธธ์ ๋๋ ์ฐจ์ด๋ฅผ ๋ง๋ญ๋๋ค. ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ์ง ์์ผ๋ฉฐ ์์ XML๋ ํ์๋ณด๋ค ์ฝ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋๋ ๊ฐ๋ฅํ๋ฉด ์ ์ด๋ ๊ทธ๊ฒ์ ๋๋ด์ํค์ง ์์ ๊ฒ์ ๋๋ค.
๋ ์ด์์ ์๊ฒฌ์ด ์์์ผ๋ฏ๋ก ์ผ๋จ ์ด ์์ ์ด ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ผ๊ด์ฑ์ด ์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ๋งค์ฐ ์ค๋๋ ์ฝ๋๋ฒ ์ด์ค์ด๋ฉฐ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋ฐ ๋ ๋์ ์๊ฐ์ ํ ์ ํ ์ ์๋ ์๊ฐ์ด ์ ํ๋์ด ์์ต๋๋ค. ์ฆ, ์คํด์ ์์ง๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ฐพ์์ผ ํ๋ฉฐ ๋๊ตฌ ์ฌ์ฉ ํ๊ฒฝ์ ๊ฐ์ ํ๊ธฐ ์ํด ๊ฐ๋ฅํ ํ
<see cref="xxx"/>
์ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.์ญ์
Colour
์๋๋ผColor
์์ด ๋ถ๋ช ํฉ๋๋ค ๐