#region์œผ๋กœ Code folding ํ•˜๊ธฐ

์ตœ๊ทผ์— ํ˜‘์—…์„ ํ•˜๋‹ค๊ฐ€ code folding์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œํ•œ๋ฒˆ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”.
์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์€ ์–ด๋– ์‹ ์ง€์š”?

์œ„์˜ ๋ธ”๋กœ๊ทธ ๋‚ด์šฉ์„ ๋ณด๋ฉด #region์œผ๋กœ ๋ฌถ๊ณ  folding ํ•˜๋Š” ๊ฒƒ์€ ํ•ด์•…์ด๋‹ค! ๋ผ๊ณ  ์ฃผ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜‘์—… ์‹œ, ์ฝ”๋“œ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ํž˜๋“ค๊ณ  ๋Œ€๋ถ€๋ถ„ ์•ˆ์ข‹์€ ์ฝ”๋“œ๊ฐ€ ์ ํ˜€์žˆ๋‹ค! ๋ผ๋Š” ์ฃผ์žฅ์ž…๋‹ˆ๋‹ค.

๋˜ ๋Œ“๊ธ€๋“ค์„ ์ญ‰ ๋ณด๋ฉด ๋ฐ˜๋ฐ˜, ๋ฐ˜๋Œ€, ์ฐฌ์„ฑ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜๊ฒฌ์ด ๊ฐˆ๋ฆฌ๋„ค์š”.

์ €๋Š” code๊ฐ€ folding ๋˜์–ด ์žˆ๋Š”๊ฑฐ ์ž์ฒด๋ฅผ ๋ณ„๋กœ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ฆ‰๊ฐ์ ์œผ๋กœ ์ฝ์„ ์ˆ˜๊ฐ€ ์—†๊ฑฐ๋“ ์š”. ๋ฌผ๋ก  docs comment๋‚˜ ์ข€ ๊ธด comment ๋ผ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ฝ”๋“œ ์ž์ฒด๊ฐ€ folding ๋˜์–ด ์žˆ๋‹ค๋ฉด ์‹ ๊ฒฝ์ด ๊ต‰์žฅํžˆ ๊ฑฐ์Šฌ๋ฆฌ๋„ค์š”.
ํด๋ฆญ์„ ํ•œ๋ฒˆ ๋”ํ•˜๊ฑฐ๋‚˜ ๋‹จ์ถ•ํ‚ค๋ฅผ ํ•œ๋ฒˆ ๋”๋ˆŒ๋Ÿฌ์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋Ÿฌ์›€๋„ ์žˆ์œผ๋‹ˆ๊นŒ์š”.

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์ƒ๊ฐ์„ ์–ด๋– ์‹ ๊ฐ€์š”?

7๊ฐœ์˜ ์ข‹์•„์š”

์ €๋Š” ์ •๋ง ๋ง ๊ทธ๋Œ€๋กœ region์„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ๋•Œ๋ž‘, ์ฝ”๋“œ๊ฐ€ ๊ธด๋ฐ ๋” ์ด์ƒ ๋“ค์—ฌ๋‹ค ๋ณผ ์ผ์ด ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์ ‘์–ด ๋†“๋Š” ์šฉ๋„๋กœ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์œ ์šฉํ•ด์„œ ๊ตณ์ด ํ•ด์•…์œผ๋กœ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•˜๋Š”์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋„ค์š”.

6๊ฐœ์˜ ์ข‹์•„์š”

ใ…Žใ…Ž ํฌ์ŠคํŒ… ๋‚ด์šฉ์„ ๋ณด์‹œ๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ ์˜๊ฒฌ์ด ๋ถ„๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
์ €๋„ ํ•ด์•…๊นŒ์ง€๋Š” ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ฑฐ๋“ ์š”. ์•ฝ๊ฐ„ ๊ฑฐ์Šฌ๋ฆด๋ฟโ€ฆ
folding์— ๋Œ€ํ•ด์„  ๋ณ„๋กœ ์ƒ๊ฐ์ด ์—†์—ˆ๋Š”๋ฐ ํฌ์ŠคํŒ… ๋‚ด์šฉ์„ ๋ณด๋‹ˆ ํ•œ๊ตญ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์˜ ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•ด์กŒ์Šต๋‹ˆ๋‹ค ใ…‹ใ…‹

5๊ฐœ์˜ ์ข‹์•„์š”

์ €๋Š” IT๋Š” 100% / ๋ฌด์กฐ๊ฑด ์ด๋ผ๋Š” ๊ฒƒ์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ, ๊ทธ๋ƒฅ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ด์ฃผ๋Š” ๋งŒํผ ๊ทธ๋ƒฅ ์“ธ ๊บผ ์“ฐ๊ณ  ๊ทธ๋Ÿฌ๋ฉด ๋˜๋Š” ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ €๋„ region์€ ์ ์ ˆํ•˜๊ฒŒ ์“ฐ๋Š” ํŽธ์ž…๋‹ˆ๋‹ค.

4๊ฐœ์˜ ์ข‹์•„์š”

ํ˜‘์—…์„ ํ•ด๋ณธ ์ ์ด ์—†์–ด์„œ region์„ ์ด์šฉํ•œ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ๋„์›€์ด ๋˜๋Š๋ƒ ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ํ™•์‹ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๊ฒฐ๊ตญ ์ด ์—ญ์‹œ ๊ฐœ์ธ์˜ ์ฃผ๊ด€ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ ๋‚˜๋ฆ„ ์•„๋‹๊นŒ ์‹ถ๋„ค์š”.

๋‹จ์ˆœํžˆ ํŽผ์น˜๋Š” ๊ฒŒ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋Š” ๊ฒƒ์ด ์ ‘์ง€ ๋ง์•„์•ผ ํ•  ์‚ฌ์œ ๊ฐ€ ๋  ์ˆ˜ ์—†๊ณ , ์ ‘์œผ๋ฉด ์ฝ”๋“œ ๋ผ์ธ์ด ์ค„์–ด๋“ ๋‹ค๋Š” ๊ฒƒ๋„ ์ ‘์–ด์•ผ ํ•  ์‚ฌ์œ ๊ฐ€ ๋  ์ˆ˜๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์•„์š”.

์ฝ”๋“œ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๋ณ„, ํ˜น์€ ์œ ํ˜•๋ณ„(ํ”„๋กœํผํ‹ฐ์ธ์ง€, ํ•„๋“œ์ธ์ง€, ๋ฉ”์„œ๋“œ์ธ์ง€ ๋“ฑ)๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„์ง€์–ด ์ ‘๊ณ  ์ฝ”๋ฉ˜ํŠธ๋กœ ํ™•์‹คํ•˜๊ฒŒ ๋ช…์‹œํ•œ๋‹ค๋ฉด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๊ณ , ์ค‘๊ตฌ๋‚œ๋ฐฉ์œผ๋กœ ์ ‘๊ณ  ์ฝ”๋ฉ˜ํŠธ๋„ ๋Œ€์ถฉ ์ ์–ด์„œ ์ฝ๋Š” ์‚ฌ๋žŒ์ด region์„ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฅ˜ํ•œ ๊ฑด์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ž˜๋ชป ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๊ฒ ์ง€์œ . ํŒ€์ด๋ผ๋ฉด ์ปจ๋ฒค์…˜๋„ ๊ณ ๋ ค ์‚ฌํ•ญ์ด๊ตฌ์š”.

์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ MVVM ํŒจํ„ด ํ•˜์— ์žˆ๋Š” ๋ทฐ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ํ”„๋กœํผํ‹ฐ์™€ ์ƒ์„ฑ์ž, ์ปค๋งจ๋“œ ๊ฐ™์ด ์ •ํ˜•ํ™” ๋œ ๊ฒƒ๋“ค์€ ์œ ํ˜•๋ณ„๋กœ ๋ฌถ์–ด ์ ‘์–ด๋‘๋Š” ํŽธ์ด๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฝ์šฐ ์ƒ์„ธ ๋‹จ์œ„๋ณ„๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฌถ์–ด์„œ ์ ‘์–ด๋‘๋Š” ํŽธ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์งง์œผ๋ฉด ๊ตณ์ด ์ ‘์„ ํ•„์š”๊ฐ€ ์—†๊ณ , ์ ‘์–ด์•ผ ํ•  ์ •๋„๋กœ ์ฝ”๋“œ๊ฐ€ ๊ธธ๋‹ค๋ฉด ๊ฐ์ฒด ์„ค๊ณ„๋ฅผ ์ž˜๋ชปํ•œ ๊ฒƒ์ด๋‹ค ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ„๋“ค๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”.

๊ฒฐ๊ตญ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ฐ€๋…์„ฑ์— ํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์„ ์—์„œ, ๋˜ ์ปจ๋ฒค์…˜์ด ์žˆ์œผ๋ฉด ์ปจ๋ฒค์…˜ ํ•˜์—์„œ ์ทจํ–ฅ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ๋ด…๋‹ˆ๋‹ค.

6๊ฐœ์˜ ์ข‹์•„์š”

์•ˆ๊ทธ๋ž˜๋„ ์ตœ๊ทผ์—๋Š” region ๋ธ”๋ก์„ ํ™œ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š”, ํŒŒ์ผ์„ ์ตœ๋Œ€ํ•œ ์ชผ๊ฐœ๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ๋„ํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์›๋ž˜๋Š” region์„ ๋งŽ์ด ์“ฐ๋Š” ์Šคํƒ€์ผ์ด์—ˆ๋Š”๋ฐ์š”. ์ตœ๊ทผ ๋“ค์–ด์„œ ์ œ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๋ณด๋ฉด, region์œผ๋กœ ๋ฌถ์„ ์ƒ๊ฐํ•˜๊ณ 
๊ทธ ์•ˆ์—๋‹ค๊ฐ€ ๋Œ€์ถฉ ๋•Œ๋ ค๋ฐ•๋Š”(?) ์ œ ๋ชจ์Šต์ด ๋ณด์ด๋”๊ตฐ์š”โ€ฆ
๊ทธ๋Ÿด ๋ฐ”์—๋Š” ์†Œ์Šค ํŒŒ์ผ์„ ์ชผ๊ฐœ์„œ, ์šฉ๋„๋‚˜ ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒŒ ๋” ๋‚ซ๊ฒ ๋‹คโ€ฆ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ๋˜ ์ฐธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์ € ๋งํฌ์˜ ๊ธ€์“ด์ด์ฒ˜๋Ÿผ ๋ญ๊ฐ€ ์ตœ์•…์˜ ์ฝ”๋”ฉ ์Šคํƒ€์ผ์ด๋‹ค ์ด๋Ÿฐ๊ฑด ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์š”โ€ฆ
์ž๊ธฐ ๋ˆˆ์— ํŽธํ•œ ๊ทธ๋Ÿฐ ์Šคํƒ€์ผ์ด ์žˆ๋Š”๊ฑฐ๊ฒ ์ฃ ^^;
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ„๋‹จํ•œ if ๋ฌธ์„ ์“ฐ๋”๋ผ๋„
if(obj == null) { return; }
์ €๋Š” ์ด๋Ÿฐ ์‹์œผ๋กœ ์ค‘๊ด„ํ˜ธ๋ฅผ ๋‹ค ๋ถ™์ด๋Š” ํŽธ์ธ๋ฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ ๋ˆˆ์—๋Š” ๋˜๊ฒŒ ๊ฑฐ์Šฌ๋ฆฌ๋Š” ์Šคํƒ€์ผ์ด ๋  ์ˆ˜๊ฐ€ ์žˆ๋“ฏ์ด์š”โ€ฆ^^;;

4๊ฐœ์˜ ์ข‹์•„์š”

์˜๊ฒฌ ์ฃผ์‹ ๋ถ„๋“ค์— ๋”ฐ๋ฅด๋ฉด, #region๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.
์žฌ๋ฐŒ๋Š” ์ฃผ์ œ์ธ๊ฑด ํ™•์‹คํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด #region์™€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ์ž์„ธํ•˜๊ฒŒ ๋น„๊ต ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”.

๊ฐ„๋‹จํ•˜๊ฒŒ ๋น„๊ต ํ•ด๋ณผ๊นŒ์š”?
์ผ๋‹จ ๋ธ”๋กœ๊ทธ์— ๋”ฐ๋ฅด๋ฉด

image

์ด๋Ÿฐ ํ˜•์‹์˜ ์ฝ”๋“œ๋Š” ๊ต‰์žฅํžˆ ์ข‹์ง€ ์•Š๋‹ค๋Š” ์˜๊ฒฌ์ด๊ณ 
ํ™•์‹คํžˆ ์ด๋Ÿฐ #region code folding์ด๋ผ๋ฉด SRP๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

์–ด์ฐŒ๋ณด๋ฉด ์ด๋Ÿฐ ํ˜•ํƒœ๊ฐ€ ๋” ์ข‹์„ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค๊ธฐ๋„ ํ•˜๋„ค์š”.

ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ portion์œผ๋กœ ๋‚˜๋‰œ๋‹ค๋ฉด #region์€ ์˜คํžˆ๋ ค ๋” ์ข‹์€ ๊ฐ€๋…์„ฑ์„ ๊ฐ–์ถœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

์—ฌ๊ธฐ์„œ inner_logic์ด SRP๋ฅผ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฐ€์ •์„ ํ•œ๋‹ค๋ฉด ๊ฐ€๋…์„ฑ ์ธก๋ฉด์—์„œ ํ›จ์”ฌ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค๋งŒ inner_logic์ด ์ •๋ง๋กœ function ๋‹จ์œ„๋กœ ์ชผ๊ฐค์ˆ˜ ์—†๋Š” atom ํ˜•ํƒœ์ธ๊ฐ€?์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๋ฏผ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™๋„ค์š”.

5๊ฐœ์˜ ์ข‹์•„์š”

์Œโ€ฆ ์ €๋Š” region์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ทธ๋‹ฅ ์„ ํ˜ธํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค :joy:

region ์“ฐ๊ธฐ๋ณด๋‹ค ํŒŒ์ผ์„ ๋‚˜๋ˆ„๋˜๊ฐ€ ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„๋Š”๊ฒŒ ์ข‹์•„๋ณด์ด๊ธด ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด

#region ์œˆ๋„์šฐ ๋‹ค์‹œ ์‹œ์ž‘ ํ•จ์ˆ˜
private void Func1();
private void Func2();
#endregion

#region ํŒŒ์ผ ๊ฒ€์ฆ
private bool Func3();
private bool Func4();
#endregion

์ด๋ŸฐํŽธ์ด๋ผ๋ฉด ๊ฐœ์ธ์ ์œผ๋ก  ํŒŒ์ผ์„ ๋‚˜๋ˆ„๋Š”๊ฒŒ ์ข‹์•„๋ณด์ž…๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์ด ๋”์šฑ ๋” SRP์— ๋งž๋Š” ์ฝ”๋“œ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์ €๋Ÿฐ ์ฝ”๋“œ๋ฅผ ๊ณ„์† ๋‘๋ฉด ๊นจ์ง„ ์ฐฝ๋ฌธ ๋ฒ•์น™์— ์˜ํ•ด ํด๋ž˜์Šค๋Š” ์ ์  ๋” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ฒŒ ๋น„๋Œ€ํ•ด ์งˆ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์ด ํด๋ž˜์Šค์˜ ์ด๋ฆ„์ด ์—„์ฒญ ์ผ๋ฐ˜์ ์ด๋ฉด ๋”์šฑ ๋” ๊ทธ๋Ÿฌํ•  ํ™•๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ region์„ ์‚ฌ์šฉํ•˜๊ธฐ์— ๊ดœ์ฐฎ๊ฒ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์€

MVVM ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•„์—ฐ์ ์œผ๋กœ view์™€ viewmodel์„ ์ด์–ด์ฃผ๋Š” ๋ ˆ์ด์–ด ๊ฒธ์˜ property๋“ค์ด ๋งŽ์•„์ง€๋Š”๋ฐ
์‚ฌ์‹ค ์ด property๋“ค์€ ๋กœ์ง์ด ์•„๋‹ˆ๋ผ ์ฝ์ง€ ์•Š๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž ๊ทธ๋ž˜์„œ ์ด๋Ÿด ๋• region์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์•„๋ณด์ด๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. :grinning:

7๊ฐœ์˜ ์ข‹์•„์š”

#region์˜ ๊ธฐ๋Šฅ์ ์ธ ์ธก๋ฉด์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋งˆ์น˜ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์“ธ ์ผ์ด ์—†๋Š” ๋ฌผ๊ฑด์„ ์ƒ์ž์— ๋‹ด์•„ ์ฐฝ๊ณ ์— ๋„ฃ์–ด ๋‘๋Š” ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ๋Š” #region์„ ์ง€์–‘ํ•˜๋Š” ํŽธ์ธ๋ฐ์š”, ์ด์œ ๋Š” ๊ฐ€์‹œ์„ฑ์ด ์ข‹์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฐ์ถฐ์ ธ ์žˆ์œผ๋ฉด ํ•„์š”ํ•  ๋•Œ ์ฐพ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํž˜๋“ค์ง€ ์•Š๋‚˜์š”?

์ฐจ๋ผ๋ฆฌ ์›Œํฌํ”Œ๋กœ์šฐ ์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ํŒŒ์ผ์˜ ์ƒ๋‹จ์—, ์„ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ํŒŒ์ผ์˜ ํ•˜๋‹จ์— ๋ฐฐ์น˜ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” partial๋กœ ์ด ๋‘ ๊ตฌ์กฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜

์•„๋‹ˆ๋ฉด ์ข€ ๋” ๊ตฌ์กฐํ™” ํ•ด์„œ ์ชผ๊ฐœ๊ฑฐ๋‚˜ โ€“ ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๊นŠ์€ ๊ตฌ์กฐํ™”๋Š” ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ํ•ด์นœ๋‹ค๋Š” ์ฃผ์˜์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค โ€“ ํ•˜๋Š”๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ž…๋‹ˆ๋‹ค.

6๊ฐœ์˜ ์ข‹์•„์š”

๋Œ€์ฒด๋กœ region ์‚ฌ์šฉ์— ๋ถ€์ •์ ์ธ ๊ธ€๋“ค์ด ๋งŽ๊ตฐ์š”.

๊ทผ๋ฐ resharper ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–˜๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ต๋‹ˆ๋‹คโ€ฆ

resharper ์˜ FileStructure ๋ฅผ ์ด์šฉํ•˜๋ฉด region ์œผ๋กœ ๋ฌถ์€ ๊ฒƒ๋“ค์ด ๊ทธ๋ฃน์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์†Œ์Šค์ฝ”๋“œ์—์„œ ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์–ด๋„ โ€˜์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์š”๊ฒƒ๋“ค ๋ฌถ์Œโ€™ ์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€์š”.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒŒ ์‹ค์ œ๋กœ ๊ฝค ํŽธ๋ฆฌํ•˜๊ธฐ๋„ ํ•˜๊ตฌ์šœ. ใ…‡ใ……ใ…‡/

resharper ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ~
region ์€ ์ ์ ˆํ•˜๊ฒŒ ์ž˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ €๋Š” ์ƒ๊ฐํ•ด์„œ ์ถ”์ฒœ!

7๊ฐœ์˜ ์ข‹์•„์š”

code snippet ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„๋“ค์€ ๋ณด๊ณ  ๋‚œ ๋’ค ์ €๋Š” region์„ ๊ทธ๋ฆฌ ์ข‹์•„ํ•˜์ง€ ์•Š๊ฒŒ ๋์–ด์š”โ€ฆ

@@๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ๋ฐ? ๋ผ๊ณ  ํ–ˆ์„ ๋•Œ โ€œ์–ด ๊ทธ %% ํŒŒ์ผ์— $$ region ๋ณต์‚ฌํ•ด์„œ ์“ฐ๋ฉด ๋ผโ€ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋„ ์žˆ์—ˆ๊ฑฐ๋“ ์š”.
์‚ฌ์‹ค ํŽธํ•˜๊ธฐ์•ผ ํŽธํ•˜๊ฒ ์ง€๋งŒ ์ €๋Š” ๋‹ค๋ฅธ ์˜๋ฏธ๋กœ ์ƒ์‚ฐ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๊ฒƒ(๊ฐ€๋…์„ฑ์ด๋ผ๋˜๊ฐ€ ํ•œ ํด๋ž˜์Šค ๋‚ด ์—ญํ•  ๋ถ„ํ•  ๋“ฑ) ๊ฐ™์•„์„œ ๋” ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์•„์š”.

stylecop๊ณผ ๊ฐ™์€ ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SA1201๊ณผ ๊ฐ™์ด ํด๋ž˜์Šค ๋‚ด ์•„์ดํ…œ ์ˆœ์„œ๋ฅผ ๊ฐ•์ œํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์— ์ ์‘ํ•˜๊ณ ๋‚˜์„œ region์ด ๊ฐ€๋“ํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ฒŒ๋˜๋ฉด ํด๋ž˜์Šค ๋ทฐ์–ด? ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์—†๋Š” ํ•œ ํ•จ์ˆ˜๋ฉฐ ์ด๋ฒคํŠธ ๋“ฑ์„ ๋ฐ”๋กœ ๋ชป ์ฐพ์•„๊ฐ€๊ฒ ๋”๊ตฐ์š”.

๋งŒ์•ฝ ํ•œ ํด๋ž˜์Šค ๋‚ด ํ•จ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ณ  ์ด๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  ์‹ถ๋‹ค - ๊ทธ๋Ÿฌ๋ฉด region์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ณด๊ธฐ์ข‹์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ „ ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค๋ฉด ์•„๋งˆ๋„ partial ํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ๊ณ  Some.Behavior.cs์™€ ๊ฐ™์ด ํŒŒ์ผ์„ ๋‚˜๋ˆŒ ๊ฒƒ ๊ฐ™์•„์š”.

5๊ฐœ์˜ ์ข‹์•„์š”