์ผ๋ง์ ์ ๋๊ฐ 'private๋ณ์๋ ์์ _๋ถ์ด๊ณ ์ด๋ฐ ๋ช ๋ช ๊ท์น๊ฐ์๊ฒ ์๋๊ฑธ ์๋ฌด๋ ์์๋ ค์คฌ๋ค'๋ผ๋ ๊ธ๋ณด๊ณ
'์ผ๋ฐ์ ์ธ ์ฝ๋ฉ์คํ์ผ'์ด ์ด๋ค๊ฑด์ง ๊ถ๊ธํ ์ฌ๋๋ค์ ์ํด ๊ฐ๋จํ ์ ๋ ๊ธ์
๋ก์ผ ์๋ NASA์๋ ์ ๋ช ํ '10๋ ์ฝ๋ฉ ๊ท์น'(The Power of 10)์ด๋ผ๋ ๊ฒ ์์.
'goto๋ฌธ ์ ๋ ์ฐ์ง ๋ง๋ผ', '๋ฃจํ์ ๋์ ๋ช ํํ ํด๋ผ', '์ด๊ธฐํ ํ์๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํ์ง ๋ง๋ผ' ๋ฑ๋ฑ ์์ฒญ ๊น๊นํจ.
์ ๊น๊นํ๋? ์ฐ์ฃผ์์๋ ๋ธ๋ฃจ์คํฌ๋ฆฐ ๋จ๋ฉด ์ฌ๋ถํ ํ๋ฌ ๊ฐ ์ฐ์ฃผ๋นํ์ฌ๊ฐ ์์ผ๋๊น. ์ฝ๋ ์ค ์๋ชป ์ง ๋ฒ๊ทธ ํ๋๊ฐ ์์กฐ ์์ง๋ฆฌ ํญ์ฃฝ๋์ด๋ก ์ด์ด์ง.
> ์ฌ๊ท ํธ์ถ ๊ธ์ง. ์ ๋ ์ ๋จ.
> ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ ์ฆ๋ช ๊ฐ๋ฅํ ์ํ(์ต๋ ๋ฐ๋ณต ํ์)์ด ์์ด์ผ ํ๋ค.
> ์ด๊ธฐํ ์ดํ์๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๊ธ์ง.
> ํจ์ ํ๋๋น ์ต๋ ์ฝ 60์ค.
> ํจ์๋ง๋ค ์ต์ 2๊ฐ์ assertion(๊ฒ์ฆ ๊ตฌ๋ฌธ) ํ์.
> ๋ชจ๋ ๋ฐํ๊ฐ์ ๋ฐ๋์ ๊ฒ์ฌํด์ผ ํ๋ค.
> ์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ๋ 0๊ฐ์ฌ์ผ ํ๋ค.
> ์ ์ ๋ถ์์ ๋งค์ผ ์ํํ๋ฉฐ, ๊ฑฐ๊ธฐ์๋ ๊ฒฝ๊ณ 0๊ฐ์ฌ์ผ ํ๋ค.
> ํจ์ ํฌ์ธํฐ ์ฌ์ฉ ๊ธ์ง.
> ํฌ์ธํฐ ์ญ์ฐธ์กฐ๋ ์๊ฒฉํ ์ ํ๋๋ค.
์ฐ๋ฆฌ๊ฐ NASA์ฒ๋ผ ํ์ฑ์ ๋ก๋ด์ ๋ณด๋ด๋ ๊ฑด ์๋์ง๋ง
๋ด ์ฝ๋๊ฐ ํฐ์ง์ง ์์ ์ด์ ์ฝ๋์ธ์ง, ์ ์ฌ์ ์ธ ํญํ์ ์๊ณ ์๋์ง ์ค์๊ฐ์ผ๋ก ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ด ์์
๋ณดํต '์ ์ ๋ถ์'์ด๋ผ๊ณ ๋ถ๋ฆฌ๋๋ฐ ๊ฐ๋จํ๊ฒ ๋ณด๋ ๋ฐฉ๋ฒ์
๊ฐค๋ผ๋ค ์ ๋ํฐ ๋ง์ด ์ฐ๋๊น ์ ๋ํฐ์ Visual Studio๋ก C# ์ฝ๋ ๋ณด๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ฒ ์.
๋ค๋ฅธํด๋ค๋ ์ ์ ๋ถ์ ํด์ 100%์์ผ๋๊น ์ ๋ฏธ๋์ด๋ ์ฑ์ฐํํ ๋ฌผ์ด๋ณด์
๋ณดํต ์ ์ ๋ถ์ํ๋ฉด ํด์ ๊ฐ๋ค๊ฐ ๋ง์ด ์ฐ๊ธด ํ๋๋ฐ
์ค๋ ํ ๊ฑด ๊ฐ๋จํ๊ฒ ์๋๋ ๋์ค๋ ๊ฒฝ๊ณ ๋ฅผ ์ต๊ณ ์์ค์ผ๋ก ์ฌ๋ฆฌ๋๊ฑฐ์
1. .editorconfig ํ์ผ ๋ง๋ค๊ธฐ
์ ๋ํฐ ํ๋ก์ ํธ์ ์ต์๋จ (Assets ํด๋๋ ๋๋ํ ์๋ ์์น)์ .editorconfig๋ผ๋ ์ด๋ฆ์ผ๋ก ๋น ํ ์คํธ ํ์ผ์ ํ๋ ๋ง๋ฆ.
2. ๋ถ์ ๋ฃฐ ๋ชฝ๋ ์ผ๊ธฐ
.editorconfig ํ์ผ์ ์ด๊ณ ์๋ ๋ด์ฉ์ ๋ณต๋ถํด์ ์ ์ฅํจ.
root = true
[*.cs]
# ๋ชจ๋ ๋ฌธ๋ฒ
dotnet_analyzer_diagnostic.category-Style.severity = warning
# ์ฑ๋ฅ ์ต์ ํ
dotnet_analyzer_diagnostic.category-Performance.severity = warning
# ์ ์ฌ์ ๋ฒ๊ทธ ๋ฐ ์ค๊ณ ์ค๋ฅ ๊ท์น
dotnet_analyzer_diagnostic.category-Design.severity = warning
dotnet_analyzer_diagnostic.category-Reliability.severity = warning
3. Visual Studio์์ ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ
์ด์ VS์์ C# ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฉด, ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ถ์๊ธฐ๊ฐ ๋์๊ฐ๊ธฐ ์์ํจ.
๋ฌผ๊ฒฐ์ ๊ฒฝ๊ณ : ๊ตฌํ ๋ฌธ๋ฒ์, ์ฑ๋ฅ ํฅ์๊ฐ๋ฅ ์ฝ๋์ ์ด๋ก์/๋ ธ๋์ ๋ฐ์ค์ด ๊ทธ์ด์ง
์ ๊ตฌ ์์ด์ฝ & ์๋ ์์ : ๋ฐ์ค ์น ๊ณณ์ ์ปค์ ๋๊ณ Ctrl + . ๋๋ฅด๋ฉด, "์ด ์ฝ๋๋ ์ด๋ ๊ฒ ๋ฐ๊พธ๋ ๊ฒ ๋ ์ด์จ" ํ๋ฉด์ ์์์ ์ต์ ๋ฌธ๋ฒ์ผ๋ก ๊ณ ์ณ์ค.
์ค๋ฅ ๋ชฉ๋ก(Error List) ์ฐฝ: ํ๋ฉด ํ๋จ ํญ์ ์ด์ด๋ณด๋ฉด ๋ด ํ๋ก์ ํธ ์ ์ฒด์์ ๋ฐ๊ฒฌ๋ ๋๋ฌ์ด ์ฝ๋ ๋ฆฌ์คํธ์ ์๋ฐํ ๋ฃฐ์ ์ญ ๋ฝ์์ค.
์ด๋ ๊ฒ ์ธํ ํด๋๋ฉด ๋ฌด๊ฑฐ์ด ์ธ๋ถ ํด์ ๋ฐ๋ก ์ ๊น์๋, ์ฝ๋ ์น ๋๋ง๋ค ๋ด ์ฝ๋๊ฐ ์ผ๋ง๋ ์ด์์ง(ํน์ ๋๋ฌ์ด์ง) ์ค์๊ฐ์ผ๋ก ์ง์ ๋นํ๋ฉด์ ํ๋ฆฌํฐ๋ฅผ ์ฌ๋ฆด ์ ์์.
๊ทผ๋ฐ ๋ญ ์ง์ ๋นํ ๋ถ๋ถ๋ค์ด ๋ณดํต์ ๋ง ์์ฒญ ์๋ชป๋๊ฑด ์๋
์๋ฅผ๋ค์ด ์ด๊ฑด ๊ทธ๋ฅ ์ค์ผ์ ์๋ค๋๊ฑฐ
์ฑ๋ฅ๋ฟ๋ง์๋๋ผ ๊ฐ๋ ์ฑ์ ๋ํด์๋ ์ง์ ์ด ๋ค์ด์ด
๊ทผ๋ฐ ์ง๊ธ ๋ณด๋๊น IDE0055๊ฐ ๋ง์ด๋จ๋๋ฐ ์ด๊ฑด ์์๊ด๋ จ ๊ฒฝ๊ณ ๋ผ ๋ํํ ํ์ ์๋ค ํ๋๊ฑด ๋นผ์ฃผ๋ฉด๋จ
์๊น .editorconfigํ์ผ ๋ฐ์๋ค๊ฐ
dotnet_diagnostic.IDE0055.severity = none
์ด๋ผ๋ ๋ผ์ธ ์ถ๊ฐํด์ฃผ๋ฉด๋จ
IDE0055๋์ ๋๊ฐํ์์๋๊ฑฐ ๋ฃ์ผ๋ฉด ์ ๊ฑฐ๊ฐ๋ฅ
๊ทธ๋ฌ๋ฉด ์ด๋ฐ์์ผ๋ก ํด๋น ์ฝ๋๋ฒํธ์ ๊ฒฝ๊ณ ๋ ์ ๋ถ ์ฌ๋ผ์ง
VSCode๋ ์ด๋ฐ๋๋์ผ๋ก ๋น๊ต์ ์ง๊ด์ ์ผ๋ก ๋์ค๋๋ฐ Visual Studio๋ ๋ณด๊ธฐ์ ์ชผ๋ ์์ฝ๊ธด ํ๋ค
๋ค๋ค ์พ์ ํ๊ฒ ์ด์ ์ฝ๋ ์ง๊ธธ ๋ฐ๋!
์ด๊ฑฐ ์ ํฌ๊ธฐ ๋ฒ์ ผ๋ ์๋๋ผ '์์ธ์ฒ๋ฆฌ ๋ฐ์๋ ์๋ค'๊ฐ์
๋ ์ ๊ฑฐ ๋ค๊บผ๋ฒ๋ฆผ ๊ฐํ ์ธ๊ฐ์ ์ฝ๋์ ๋ ธ๋๊ฒฝ๊ณ ๋ฅผ ๋์ฐ๋ค๋
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ฌ๋ฏธ๋ก ๋ณด๋ผ๋๋ฐ ๊ฐ๋ฟ๋ฌ๋ ธ
์น ... . ์น . .. .
@ใ ใ (182.226) ์๋์ผ๊ณ ์ ์ฉํ๋๋ฒ๊น์ง ์์ธํ ์ ๊ธธ๋ ์ฌ๋ฏธ๋ก ํ๋๊ฑฐ๊ฐ์ง ์์๋ณด์ด๋๋ฐ.. ๊ฑ ์๊ฒจ์
์ดํด ์ด๋ฐ ์ธ๋ฒ ๋๋๋ ๋จนํ๋งํ ๋ ผ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์ค๋๊ฑฐ ์์ฒด๊ฐ ์๋ง์ถ์ด๋ผ๋๊ฑฐ ๊ฒ์ ์์ง์ด ๋ณดํธํ๋๊ณ ๋ฉ๋์ง๋ ์ฝ๋๊ฐ ๊ธฐ๋ณธ์ผ๋ก ์๋ฆฌ์ก์ ์ง๊ธ ์ด๋์ ๊ตด๋ฌ๋จน๋ค์ค๋ C ์คํ์ผ์ ๋ฌด์จ ๊ธฐ์ ์ด๋์๊ณ ๋ด ๋๋์ง
๋๋ ์ด ์๊ธฐ ํ ๊นํ๋ค๊ฐ ๊ดํ ์ผ์นจ ๋๋๊ฑฐ๊ฐ์์ ์ํ๋๋ฐ ์์ํ๋ ธ ใ
์ด ๊ธ์ ์ด๋๊ฐ ์๊พธ ์ ๋ค ๋ฐ์๋ฒํผ ๋๋ฅด๋๊ฑฐ๋ใ ใ ๊ธ์ด์ด๊ฐ ๋ญ ๊ฐ์ํ๊ฒ๋ ์๋๊ณ ๊ถ๊ธํด ํ๋์ ์๊ธธ๋ ์ผ๋ค๋๋ฐ
@ใ ใ (59.13) ์๋ก ์ ์ผ๋ก ๋ฌธ์ ์ํฐ์ง๋ ์ฝ๋๊ฐ ์ข์๊ฒ๋ ๋ง๋๋ฐ ๊ฑ ์ด๋ด์์๋ค ๊ธ๋ณด๊ณ ๊ฐ๋ฐ์ํ๋์ ๋ค์ ์๊ทธ๋ฌ๋์ถ๋ค
๋ ์ฝ๋๊ฐ ์๋ชป๋๋ค๊ณ ํ๋๊ฒ๋ ์๋๊ณ ์ด๋ฐ๊ฒ๋ ์๋ค์ธ๋ฐ ในใ ์ ๋ฐ์ํ๋๊ฑฐ์
ํ์กํ ์ฑ๊ฒฉ ์๊ธฐํ๋๋ฐ ๊ฐ์๊ธฐ ๋ผ์ด๋ค์ด์ ์ด๋ณ ํ ํ๋ ๋๋
๊ทผ๋ฐ ๊ฒฐ๋ก ์ ์ผ๋ก ๊ธ์ด์ด๊ฐ ์๊ฐํ editorconfig๋ ํ์ ์์ ํนํ ์ ์ฉํ๋๋ฐโฆ