Study/CleanCode

[Study][CleanCode - 4] 17. ๋ƒ„์ƒˆ์™€ ํœด๋ฆฌ์Šคํ‹ฑ

youn12 2022. 8. 15. 17:46
๐Ÿ“‹ ๋ชฉ์ฐจ.

17. ๋ƒ„์ƒˆ์™€ ํœด๋ฆฌ์Šคํ‹ฑ
    .์ฃผ์„
    .ํ™˜๊ฒฝ
    .ํ•จ์ˆ˜
    .์ผ๋ฐ˜
    .์ž๋ฐ”

    .์ด๋ฆ„
    .ํ…Œ์ŠคํŠธ
    .๊ฒฐ๋ก 

โœ”๏ธ ๋‚ด์šฉ.

 

17. ๋ƒ„์ƒˆ์™€ ํœด๋ฆฌ์Šคํ‹ฑ

 

 ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ๋Š” 'Refactoring'์—์„œ ๋‹ค์–‘ํ•œ ์ฝ”๋“œ ๋ƒ„์ƒˆ๋ฅผ ๊ฑฐ๋ก ํ•œ๋‹ค. ์ด ์žฅ์˜ ๋ชฉ๋ก์—์„œ๋Š” ๋งˆํ‹ด์ด ๋งก์€ ๋ƒ„์ƒˆ์— ์ €์ž๊ฐ€ ๋งก์€ ๋ƒ„์ƒˆ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๊ต์™€ ํœด๋ฆฌ์Šคํ‹ฑ๋„ ํฌํ•จํ•œ๋‹ค.
 ์•„๋ž˜ ๋ชฉ๋ก๋“ค์€ '์™œ?'๋ผ๊ณ  ์ž๋ฌธํ•œ ๋‹ค์Œ ๋‹ต์„ ๊ธฐ๋กํ•˜์˜€๋‹ค.

.์ฃผ์„

 

- C1: ๋ถ€์ ์ ˆํ•œ ์ •๋ณด

 

 ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— (VCS, ๋ฒ„๊ทธ ์ถ”์  ์‹œ์Šคํ…œ ๋“ฑ) ์ €์žฅํ•  ์ •๋ณด๋Š” ์ฃผ์„์œผ๋กœ ์ ์ ˆํ•˜์ง€ ๋ชปํ•˜๋‹ค. ๋ณ€๊ฒฝ ์ด๋ ฅ, ๋‚ ์งœ ๋“ฑ์€ ์†Œ์Šค ์ฝ”๋“œ๋งŒ ๋ฒˆ์žกํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์„ฑ์ž, ์ตœ์ข… ์ˆ˜์ •์ผ, SPR(Software Problem Report) ๋ฒˆํ˜ธ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”ํƒ€ ์ •๋ณด๋งŒ ์ฃผ์„์œผ๋กœ ๋„ฃ๋Š”๋‹ค. ์ฃผ์„์€ ์ฝ”๋“œ์™€ ์„ค๊ณ„์— ๊ธฐ์ˆ ์ ์ธ ์„ค๋ช…์„ ๋ถ€์—ฐํ•˜๋Š” ์ˆ˜๋‹จ์ด๋‹ค.

 


 

- C2: ์“ธ๋ชจ์—†๋Š” ์ฃผ์„

 

 ์˜ค๋ž˜ ๋œ ์ฃผ์„, ์—‰๋šฑํ•œ ์ฃผ์„, ์ž˜๋ชป๋œ ์ฃผ์„์€ ๋” ์ด์ƒ ์“ธ๋ชจ์—†๋‹ค. ์“ธ๋ชจ ์—†์–ด์งˆ ์ฃผ์„์€ ์•„์˜ˆ ๋‹ฌ์ง€ ์•Š๋Š” ํŽธ์ด ๊ฐ€์žฅ ์ข‹๋‹ค.

 


 

- C3: ์ค‘๋ณต๋œ ์ฃผ์„

 

 ์ฝ”๋“œ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•œ๋ฐ ๊ตฌ๊ตฌ์ ˆ์ ˆ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์ด ์ค‘๋ณต๋œ ์ฃผ์„์ด๋‹ค. ์ฃผ์„์€ ์ฝ”๋“œ๋งŒ์œผ๋กœ ๋‹คํ•˜์ง€ ๋ชปํ•˜๋Š” ์„ค๋ช…์„ ๋ถ€์—ฐํ•œ๋‹ค.

 


 

 - C4: ์„ฑ์˜ ์—†๋Š” ์ฃผ์„

 

 ์ž‘์„ฑํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ฃผ์„์€ ์ž˜ ์ž‘์„ฑํ•  ๊ฐ€์น˜๋„ ์žˆ๋‹ค. ์ฃผ์„์„ ๋‹ฌ ์ฐธ์ด๋ผ๋ฉด ์ตœ๋Œ€ํ•œ ์‹œ๊ฐ„์„ ๋“ค์—ฌ ์ •์„ฑ๊ป ๊ฐ„๊ฒฐ ๋ช…๋ฃŒํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์ž.

 

 


 

 - C5: ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ

 

 ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ฆ‰๊ฐ ์ง€์›Œ๋ฒ„๋ ค๋ผ. ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Git, SVN ๋“ฑ) ์ด ๊ธฐ์–ตํ•˜๋‹ˆ๊นŒ. ๋ˆ„๊ตฐ๊ฐ€ ์ •๋ง ํ•„์š”ํ•˜๋‹ค๋ฉด ์ด์ „ ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๋ฉด ๋˜๋‹ˆ๊นŒ. ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ฒ„๋ ค ๋‘์ง€ ๋งˆ๋ผ

 

 


 

.ํ™˜๊ฒฝ

 

 - E1: ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค.

 

  ๋นŒ๋“œ๋Š” ๊ฐ„๋‹จํžˆ ํ•œ ๋‹จ๊ณ„๋กœ ๋๋‚˜์•ผ ํ•œ๋‹ค. ์˜จ๊ฐ– jar, xml ํŒŒ์ผ ๋“ฑ ์‹œ์Šคํ…œ์— ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ฐพ๋Š๋ผ ์—ฌ๊ธฐ์ €๊ธฐ ๋’ค์ ์ผ ํ•„์š”๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. ํ•œ ๋ช…๋ น์œผ๋กœ ์ „์ฒด๋ฅผ ์ฒดํฌ์•„์›ƒํ•ด์„œ ํ•œ ๋ช…๋ น์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 


 

 - E2 : ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค.

 

 ๋ชจ๋“  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•œ ๋ช…๋ น์œผ๋กœ ๋Œ๋ ค์•ผ ํ•œ๋‹ค. IDE์—์„œ ๋ฒ„ํŠผ ํ•˜๋‚˜๋กœ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ฆฐ๋‹ค๋ฉด ๊ฐ€์žฅ ์ด์ƒ์ ์ด๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๋Š” ๋Šฅ๋ ฅ์€ ์•„์ฃผ ๊ทผ๋ณธ์ ์ด๊ณ  ์•„์ฃผ ์ค‘์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ ๋ฐฉ๋ฒ•์ด ๋น ๋ฅด๊ณ , ์‰ฝ๊ณ , ๋ช…๋ฐฑํ•ด์•ผ ํ•œ๋‹ค.


 

.ํ•จ์ˆ˜

 

 - F1: ๋„ˆ๋ฌด ๋งŽ์€ ์ธ์ˆ˜

 

ํ•จ์ˆ˜์—์„œ ์ธ์ˆ˜ ๊ฐœ์ˆ˜๋Š” ์ž‘์„์ˆ˜๋ก ์ข‹๋‹ค.

 

 


 

 - F2: ์ถœ๋ ฅ ์ธ์ˆ˜ 

 

 ์ถœ๋ ฅ ์ธ์ˆ˜๋Š” ์ง๊ด€์„ ์ •๋ฉด์œผ๋กœ ์œ„๋ฐฐํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋…์ž๋Š” ์ธ์ˆ˜๋ฅผ(์ถœ๋ ฅ X) ์ž…๋ ฅ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค. ํ•จ์ˆ˜์—์„œ ๋ญ”๊ฐ€์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

 


 

 - F3: ํ”Œ๋ž˜๊ทธ ์ธ์ˆ˜

 

boolean ์ธ์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๋ช…๋ฐฑํ•œ ์ฆ๊ฑฐ์ด๋‹ค. ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

 


 

 - F4: ์ฃฝ์€ ํ•จ์ˆ˜

 

 ์•„๋ฌด๋„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋Š” ์‚ญ์ œํ•œ๋‹ค. ์ฃฝ์€ ์ฝ”๋“œ๋Š” ๋‚ญ๋น„๋‹ค.


 

.์ผ๋ฐ˜

 

 - G1: ํ•œ ์†Œ์Šค ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 ์˜ค๋Š˜๋‚  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์€ ํ•œ ์†Œ์Šค ํŒŒ์ผ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์ง€์›ํ•œ๋‹ค. ์˜ˆ๋กœ XML, HTML, YAML, Javascript ๋“ฑ ์„ ํฌํ•จํ•œ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์†Œ์Šค ํŒŒ์ผ ํ•˜๋‚˜์— ์–ธ์–ด ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ์ข‹๋‹ค. ํ˜„์‹ค์ ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ์–ธ์–ด๊ฐ€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๋Œ€ํ•œ ์ค„์ด๋„๋ก ํ•˜์ž.

 


 

 - G2: ๋‹น์—ฐํ•œ ๋™์ž‘์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 ์ตœ์†Œ ๋†€๋žŒ์˜ ์›์น™ (The Principle of Least Surprise)์— ์˜๊ฑฐํ•ด ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ์—ฌ๊ธธ ๋งŒํ•œ ๋™์ž‘๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค. ๋‹น์—ฐํ•œ ๋™์ž‘์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ฝ”๋“œ์— ์‹ ๋ขฐ์„ฑ์„ ์žƒ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค.

 


 

 - G3: ๊ฒฝ๊ณ„๋ฅผ ์˜ฌ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 ์ฝ”๋“œ๋Š” ์˜ฌ๋ฐ”๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค. ์Šค์Šค๋กœ์˜ ์ง๊ด€์— ์˜์กดํ•˜์ง€ ๋งˆ๋ผ. ๋ชจ๋“  ๊ฒฝ๊ณ„ ์กฐ๊ฑด์„ ์ฐพ๊ณ , ํ…Œ์ŠคํŠธํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ฑฐ์ณ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

 

 


 

- G4: ์•ˆ์ „ ์ ˆ์ฐจ ๋ฌด์‹œ

 

 ์•ˆ์ „ ์ ˆ์ฐจ๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ์œ„ํ—˜ํ•˜๋‹ค. ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ผ๋‹จ ์ œ์ณ๋‘๊ณ  ๋‚˜์ค‘์œผ๋กœ ๋ฏธ๋ฃจ๋Š” ํƒœ๋„๋Š” ์‹ ์šฉ์นด๋“œ๊ฐ€ ๊ณต์งœ ๋ˆ์ด๋ผ๋Š” ์ƒ๊ฐ๋งŒํผ ์œ„ํ—˜ํ•˜๋‹ค.

 


 

 - G5: ์ค‘๋ณต

 

 ์ด ์ฑ…์— ๋‚˜์˜ค๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ทœ์น™ ์ค‘ ํ•˜๋‚˜์ด๋ฏ€๋กœ ์‹ฌ๊ฐํ•˜๊ฒŒ ์ˆ™๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค. DRY(Don't Repeat Yourself) ์›์น™

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

 

 - ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๋‚˜์˜ค๋Š” ์ค‘๋ณต์€ ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋กœ ๊ต์ฒดํ•œ๋‹ค.

 - ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์—์„œ ์ผ๋ จ์˜ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋˜‘๊ฐ™์€ ์กฐ๊ฑด์„ ํ™•์ธํ•˜๋Š” ์ค‘๋ณต์€ ๋‹คํ˜•์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

 - ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์œ ์‚ฌํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ค‘๋ณต์ผ ๊ฒฝ์šฐ, Template Method ํŒจํ„ด์ด๋‚˜ Strategy ํŒจํ„ด์œผ๋กœ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค.

 

 ์ตœ๊ทผ 15๋…„ ๊ฐ„ ๋‚˜์˜จ ๋””์ž์ธ ํŒจํ„ด์˜ ๋Œ€๋‹ค์ˆ˜๋Š” ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ์ž˜ ์•Œ๋ ค์ง„ ๋ฐฉ๋ฒ•์— ๋ถˆ๊ณผํ•˜๋‹ค. BCNF(Boyce-Code Nomal Form) ์—ญ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ์ „๋žต์ด๋‹ค.

 

 ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑด. ์–ด๋””์„œ๋“  ์ค‘๋ณต์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์—†์• ๋ผ

 


 

 - G6: ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•˜๋‹ค.

 

 ์ถ”์ƒํ™”๋Š” ์ € ์ฐจ์› ์ƒ์„ธ ๊ฐœ๋…์—์„œ ๊ณ ์ฐจ์› ์ผ๋ฐ˜ ๊ฐœ๋…์„ ๋ถ„๋ฆฌํ•œ๋‹ค. ์ถ”์ƒํ™”๋กœ ๊ฐœ๋…์„ ๋ถ„๋ฆฌํ•  ๋•Œ๋Š” ์ฒ ์ €ํ•ด์•ผ ํ•œ๋‹ค. ๋ชจ๋“  ์ €์ฐจ์› ๊ฐœ๋…์€ ํŒŒ์ƒ ํด๋ž˜์Šค์— ๋„ฃ๊ณ , ๋ชจ๋“  ๊ณ ์ฐจ์› ๊ฐœ๋…์€ ๊ธฐ์ดˆ ํด๋ž˜์Šค์— ๋„ฃ๋Š”๋‹ค.

 ์˜ˆ๋กœ ์„ธ๋ถ€ ๊ตฌํ˜„๊ณผ ๊ด€๋ จํ•œ ์ƒ์ˆ˜, ๋ณ€์ˆ˜, ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์— ๋„ฃ์–ด์•ผ ํ•œ๋‹ค. ๊ธฐ์ดˆ ํด๋ž˜์Šค๋Š” ๊ตฌํ˜„ ์ •๋ณด์— ๋ฌด์ง€ํ•ด์•ผ ๋งˆ๋•…ํ•˜๋‹ค.

 ์†Œ์Šค ํŒŒ์ผ, ์ปดํฌ๋„ŒํŠธ, ๋ชจ๋“ˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์šฐ์ˆ˜ํ•œ ์„ค๊ณ„์ž๋Š” ๊ฐœ๋…์„ ๋‹ค์–‘ํ•œ ์ฐจ์›์œผ๋กœ ๋ถ„๋ฆฌํ•ด ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ๋Š”๋‹ค. 

 

์ถ”์ƒํ™”๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฐ€์žฅ ์–ด๋ ค์šด ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

 


 

 

 - G7: ๊ธฐ์ดˆ ํด๋ž˜์Šค๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค์— ์˜์กดํ•œ๋‹ค.

 

๊ฐœ๋…์„ ๊ธฐ์ดˆ ํด๋ž˜์Šค์™€ ํŒŒ์ƒ ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆ„๋Š” ๊ฐ€์žฅ ํ”ํ•œ ์ด์œ ๋Š” ๊ณ ์ฐจ์› ๊ธฐ์ดˆ ํด๋ž˜์Šค ๊ฐœ๋…์„ ์ € ์ฐจ์› ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐœ๋…์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•ด ๋…๋ฆฝ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ธฐ์ดˆ ํด๋ž˜์Šค๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ์ดˆ ํด๋ž˜์Šค๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ์•„์˜ˆ ๋ชฐ๋ผ์•ผ ๋งˆ๋•…ํ•˜๋‹ค.

 ๋ฌผ๋กœ ์˜ˆ์™ธ๊ฐ€ ์žˆ๋‹ค. ๊ฐ„ํ˜น ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐœ์ˆ˜๊ฐ€ ํ™•์‹คํžˆ ๊ณ ์ •๋˜์—ˆ๋‹ค๋ฉด ๊ธฐ์ดˆ ํด๋ž˜์Šค์— ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ์„ ํƒํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. 

 


 

 - G8: ๊ณผ๋„ํ•œ ์ •๋ณด

 

 ์ž˜ ์ •์˜๋œ ๋ชจ๋“ˆ์€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์•„์ฃผ ์ž‘๋‹ค. ์ž˜ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ๋‹ค. 

ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ ์ธํ„ฐํŽ˜์ด์Šค์— ๋…ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ค„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ˆ˜๋Š” ์ ์„์ˆ˜๋ก ์ข‹๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์•„๋Š” ๋ณ€์ˆ˜ ์ˆ˜๋„ ์ž‘์„์ˆ˜๋ก ์ข‹๋‹ค. ํด๋ž˜์Šค์— ๋“ค์–ด์žˆ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ˆ˜๋„ ์ž‘์„์ˆ˜๋ก ์ข‹๋‹ค.

 ์ž๋ฃŒ๋ฅผ ์ˆจ๊ฒจ๋ผ. ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋ฅผ ์ˆจ๊ฒจ๋ผ. ์ƒ์ˆ˜์™€ ์ž„์‹œ ๋ณ€์ˆ˜๋ฅผ ์ˆจ๊ฒจ๋ผ. ๋ฉ”์„œ๋“œ๋‚˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋„˜์ณ๋‚˜๋Š” ํด๋ž˜์Šค๋Š” ํ”ผํ•˜๋ผ. ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ํ•„์š”ํ•˜๋‹ค๋Š” ์ด์œ ๋กœ protected ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋งˆ๊ตฌ ์ƒ์„ฑํ•˜์ง€ ๋งˆ๋ผ. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งค์šฐ ์ž‘๊ฒŒ ๊ทธ๋ฆฌ๊ณ  ๋งค์šฐ ๊น๊นํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ผ. ์ •๋ณด๋ฅผ ์ œํ•œํ•ด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถฐ๋ผ

 


 

 - G9: ์ฃฝ์€ ์ฝ”๋“œ

 

 ์ฃฝ์€ ์ฝ”๋“œ๋ž€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๋ถˆ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด, ์•„๋ฌด๋„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜ ๋“ฑ์ด ์žˆ๋‹ค. ์ฃฝ์€ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์‹œ์Šคํ…œ์—์„œ ์ œ๊ฑฐํ•˜๋ผ.


 

 - G10: ์ˆ˜์ง ๋ถ„๋ฆฌ

 

 ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ๋˜๋Š” ์œ„์น˜์— ๊ฐ€๊น๊ฒŒ ์ •์˜ํ•œ๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ง์ „์— ์„ ์–ธํ•˜๋ฉฐ ์ˆ˜์ง์œผ๋กœ ๊ฐ€๊นŒ์šด ๊ณณ์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค. ์„ ์–ธํ•œ ์œ„์น˜๋กœ๋ถ€ํ„ฐ ๋ช‡๋ฐฑ ์ค„ ์•„๋ž˜์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

  ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋Š” ์ฒ˜์Œ์œผ๋กœ ํ˜ธ์ถœํ•œ ์งํ›„์— ์ •์˜ํ•œ๋‹ค. ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋Š” ์ „์ฒด ํด๋ž˜์Šค ๋ฒ”์œ„์— ์†ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ •์˜ํ•˜๋Š” ์œ„์น˜์™€ ํ˜ธ์ถœํ•˜๋Š” ์œ„์น˜๋ฅผ ๊ฐ€๊น๊ฒŒ ์œ ์ง€ํ•œ๋‹ค. ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋Š” ์ฒ˜์Œ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์œ„์น˜๋ฅผ ์ฐพ์€ ํ›„ ์กฐ๊ธˆ๋งŒ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด ์‰ฝ๊ฒŒ ๋ˆˆ์— ๋„์–ด์•ผ ํ•œ๋‹ค.

 


 

 - G11: ์ผ๊ด€์„ฑ ๋ถ€์กฑ

 

 ์–ด๋–ค ๊ฐœ๋…์„ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด ์œ ์‚ฌํ•œ ๊ฐœ๋…๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์ตœ์†Œ ๋†€๋žŒ์˜ ์›์น™(The Principle of Least Surprice'์—๋„ ๋ถ€ํ•ฉํ•œ๋‹ค. ํ‘œ๊ธฐ๋ฒ•์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ ํƒํ•˜๋ฉฐ, ์„ ํƒํ•œ ํ‘œ๊ธฐ๋ฒ•์€ ์‹ ์ค‘ํ•˜๊ฒŒ ๋”ฐ๋ฅธ๋‹ค.

 ์ผ๊ด€์„ฑ์€ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ๋Œ€๋‹จํžˆ ์‰ฌ์›Œ์ง€๊ฒŒ ํ•œ๋‹ค.

 


 

 - G12: ์žก๋™์‚ฌ๋‹ˆ

 

 ๋น„์–ด ์žˆ๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€? ํ•„์š” ์—†๋Š” ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ์ฃผ์„์€ ์ œ๊ฑฐํ•˜๋ผ. ์†Œ์Šค ํŒŒ์ผ์€ ์–ธ์ œ๋‚˜ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ผ. ์žก๋™์‚ฌ๋‹ˆ๋ฅผ ์—…์• ๋ผ!.

 


 

 - G13: ์ธ์œ„์  ๊ฒฐํ•ฉ

 

์„œ๋กœ ๋ฌด๊ด€ํ•œ ๊ฐœ๋…์„ ์ธ์œ„์ ์œผ๋กœ ๊ฒฐํ•ฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋กœ ์ผ๋ฐ˜์ ์ธ enum์€ ํŠน์ • ํด๋ž˜์Šค์— ์†ํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค.  ํ•จ์ˆ˜, ์ƒ์ˆ˜, ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ๋Š” ์‹œ๊ฐ„์„ ๋“ค์—ฌ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๋ฅผ ๊ณ ๋ฏผํ•œ๋‹ค ๊ทธ์ € ๋‹น์žฅ ํŽธํ•œ ๊ณณ์— ์„ ์–ธํ•˜๊ณ  ๋‚ด๋ฒ„๋ ค ๋‘๋ฉด ์•ˆ ๋œ๋‹ค.

 


 

 - G14: ๊ธฐ๋Šฅ ์š•์‹ฌ

 

 ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ์ž๊ธฐ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์•ผ์ง€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์„œ๋Š” ์•ˆ ๋œ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์ฐธ์กฐ์ž์™€ ๋ณ€๊ฒฝ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๊ทธ ๊ฐ์ฒด ๋‚ด์šฉ์„ ์กฐ์ž‘ํ•œ๋‹ค๋ฉด ๋ฉ”์„œ๋“œ๊ฐ€ ๊ทธ ๊ฐ์ฒด ํด๋ž˜์Šค์˜ ๋ฒ”์œ„๋ฅผ ์š•์‹ฌ๋‚ด๋Š” ํƒ“์ด๋‹ค. ๋ณธ์ธ์˜ ํด๋ž˜์Šค๋งŒ ์‹ ๊ฒฝ ์“ฐ๊ณ  ์กฐ์ž‘ํ•˜์ž.

 


 

 - G15: ์„ ํƒ์ž ์ธ์ˆ˜

 

 ํ•จ์ˆ˜์˜ false ์ธ์ˆ˜๋งŒํผ ๋ฐ‰์‚ด์Šค๋Ÿฌ์šด ์ฝ”๋“œ๋„ ์—†๋‹ค. boolean ๋ฟ๋งŒ ์•„๋‹ˆ๋‹ค. enum, int ๋“ฑ ํ•จ์ˆ˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋ ค๋Š” ์ธ์ˆ˜๋Š” ํ•˜๋‚˜ ๊ฐ™์ด ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ˆ˜๋ฅผ ๋„˜๊ฒจ ๋™์ž‘์„ ์„ ํƒํ•˜๋Š” ๋Œ€์‹  ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ํŽธ์ด ์ข‹๋‹ค.

 


 

 - G16: ๋ชจํ˜ธํ•œ ์˜๋„

 

์ฝ”๋“œ์— ์˜๋„๋ฅผ ์ตœ๋Œ€ํ•œ ๋ถ„๋ช…ํžˆ ๋ฐํžŒ๋‹ค. ํ‘œ๊ธฐ๋ฒ•, ๋งค์ง ๋ฒˆํ˜ธ ๋“ฑ์€ ์ €์ž์˜ ์˜๋„๋ฅผ ํ๋ฆฐ๋‹ค. ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ํ•˜๋„๋ก ์ตœ๋Œ€ํ•œ ์‹œ๊ฐ„์„ ํˆฌ์žํ•œ๋‹ค.

 


 

 - G17: ์ž˜๋ชป ์ง€์šด ์ฑ…์ž„

 

  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‚ด๋ฆฌ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒฐ์ • ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ฝ”๋“œ์˜ ๋ฐฐ์น˜์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ์–ด๋–ค ํด๋ž˜์Šค์— ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š”๊ฐ€? 

์—ฌ๊ธฐ์„œ๋„ '์ตœ์†Œ ๋†€๋žŒ์˜ ์›์น™'์„ ์ ์šฉํ•œ๋‹ค. ์ฝ”๋“œ๋Š” ๋…์ž๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธฐ๋Œ€ํ•  ์œ„์น˜์— ๋ฐฐ์น˜ํ•œ๋‹ค.

 


 

 - G18: ๋ถ€์ ์ ˆํ•œ static ํ•จ์ˆ˜

 

 Math.max(double a, double b)๋Š” ์ข‹์€ static ๋ฉ”์„œ๋“œ๋‹ค. ํŠน์ • ์ธ์Šคํ„ด์Šค์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์žฌ์ •์˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ์ ๋‹ค. ํŠน์ • ์ธ์Šคํ„ด์Šค์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์ผ ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค ํ•จ์ˆ˜๋กœ ์ •์˜ํ•œ๋‹ค. ์กฐ๊ธˆ์ด๋ผ๋„ ์˜์‹ฌ์Šค๋Ÿฝ๋‹ค๋ฉด. ๋ฐ˜๋“œ์‹œ static ํ•จ์ˆ˜๋กœ ์ •์˜ํ•ด์•ผ๊ฒ ๋‹ค๋ฉด ์žฌ์ •์˜ํ•  ๊ฐ€๋Šฅ์„ฑ์€ ์—†๋Š”์ง€ ๊ผผ๊ผผํžˆ ๋”ฐ์ ธ๋ณธ๋‹ค.

 


 

 - G19: ์„œ์ˆ ์  ๋ณ€์ˆ˜

 

 ํ”„๋กœ๊ทธ๋žจ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ณ„์‚ฐ์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ์ค‘๊ฐ„ ๊ฐ’์œผ๋กœ ์„œ์ˆ ์ ์ธ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

Matcher match = headerPattern,matcher(line);
if(match.find()){
    String key = match.group(1);
    String value = match.group(2);
    headers.put(key.toLowerCase(), value);
}

 ์„œ์ˆ ์ ์ธ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ ๋•์— ์ฒซ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ทธ๋ฃน์ด ํ‚ค(Key)์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ทธ๋ฃน์ด ๊ฐ’(value)์ด๋ผ๋Š” ์‚ฌ์‹ค์ด ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚œ๋‹ค.

 

 ์„œ์ˆ ์ ์ธ ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ๋งŽ์ด ์จ๋„ ๊ดœ์ฐฎ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์„์ˆ˜๋ก ๋” ์ข‹๋‹ค. ๊ณ„์‚ฐ์„ ๋ช‡ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ์ค‘๊ฐ„๊ฐ’์— ์ข‹์€ ๋ณ€์ˆ˜ ์ด๋ฆ„๋งŒ ๋ถ™์—ฌ๋„ ํ•ด๋…ํ•˜๊ธฐ ์–ด๋ ต๋˜ ๋ชจ๋“ˆ์ด ์ˆœ์‹๊ฐ„์— ์ฝ๊ธฐ ์‰ฌ์šด ๋ชจ๋“ˆ๋กœ ํƒˆ๋ฐ”๊ฟˆํ•œ๋‹ค.

 


 

 

 - G20: ์ด๋ฆ„๊ณผ ๊ธฐ๋Šฅ์ด ์ผ์น˜ํ•˜๋Š” ํ•จ์ˆ˜

 

Date newDate = date.add(5) // (X) date ์— ๋ฌด์—‡์„ ๋”ํ•˜๋Š” ๊ฑด๊ฐ€? (์ผ? ์›”?)

Date newDate = date.addDay(5) // (O) ๋ฌด์—‡์„ ๋”ํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ•œ๋‹ค.

 

 ์ด๋ฆ„๋งŒ์œผ๋กœ ๋ถ„๋ช…ํ•˜์ง€ ์•Š์•„์„œ ๊ตฌํ˜„์„ ์‚ดํ”ผ๊ฑฐ๋‚˜ ๋ฌธ์„œ๋ฅผ ๋’ค์ ์—ฌ์•ผ ํ•œ๋‹ค๋ฉด ๋” ์ข‹์€ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ๋” ์ข‹์€ ์ด๋ฆ„์„ ๋ถ™์ด๊ธฐ ์‰ฝ๋„๋ก ๊ธฐ๋Šฅ์„ ์ •๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.


 

 - G21: ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ดํ•ดํ•˜๋ผ.

 

 ์–ด์ฐŒ์–ด์ฐŒํ•˜์—ฌ ๋Œ์•„๊ฐ€๋Š” ์ฝ”๋“œ๋ฅผ ๋‘๊ณ  ๊ตฌํ˜„์ด ๋๋‚ฌ๋‹ค๊ณ  ์„ ์–ธํ•˜๊ธฐ ์ „์— ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ์‹์„ ํ™•์‹คํžˆ ์ดํ•ดํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ผ.

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋ชจ๋‘ ํ†ต๊ณผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ์œผ๋กœ ๋ถ€์กฑํ•˜๋‹ค. ์ž‘์„ฑ์ž๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์˜ฌ๋ฐ”๋ฅด๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 


 

 - G22: ๋…ผ๋ฆฌ์  ์˜์กด์„ฑ์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚ด๋ผ

 

 ํ•œ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜์กดํ•œ๋‹ค๋ฉด ๋ฌผ๋ฆฌ์ ์ธ ์˜์กด์„ฑ๋„ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋…ผ๋ฆฌ์ ์ธ ์˜์กด์„ฑ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค. ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ์ด ์ƒ๋Œ€ ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๋ฅผ ๊ฐ€์ •ํ•˜๋ฉด (์ฆ‰, ๋…ผ๋ฆฌ์ ์œผ๋กœ ์˜์กดํ•˜๋ฉด)  ์•ˆ ๋œ๋‹ค. ์˜์กดํ•˜๋Š” ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค.

 


 

 - G23: If/Else ํ˜น์€ Switch/Case ๋ฌธ๋ณด๋‹ค ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋ผ

 

 3์žฅ์—์„œ๋Š” ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ํ™•๋ฅ ์ด ๋†’์€ ์ฝ”๋“œ์—์„œ๋Š” switch ๋ฌธ์ด ๋” ์ ํ•ฉํ•˜๋‹ค ์ฃผ์žฅํ–ˆ๋‹ค.

์ด์œ ๋กœ๋Š” ์ฒซ์งธ, ๋‹น์žฅ์˜ ์†์‰ฌ์šด ์„ ํƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ switch๋ฅผ ์„ ํƒํ•˜๊ธฐ ์ „์— ๋‹คํ˜•์„ฑ์„ ๋จผ์ € ๊ณ ๋ คํ•˜๋ผ

 ๋‘˜์งธ, ์œ ํ˜•๋ณด๋‹ค ํ•จ์ˆ˜๊ฐ€ ๋” ์‰ฝ๊ฒŒ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ทนํžˆ ๋“œ๋ฌผ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“  switch๋ฌธ์„ ์˜์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

 

 ์ €์ž๋Š” 'switch๋ฌธ ํ•˜๋‚˜' ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค. ์ฆ‰, ์„ ํƒ ์œ ํ˜• ํ•˜๋‚˜์—๋Š” switch๋ฌธ์„ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ™์€ ์„ ํƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ๋Š” ๋‹คํ˜•์„ฑ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด switch ๋ฌธ์„ ๋Œ€์‹ ํ•œ๋‹ค.

 


 

 - G24: ํ‘œ์ค€ ํ‘œ๊ธฐ๋ฒ•์„ ๋”ฐ๋ฅด๋ผ

 

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


 

 - G25: ๋งค์ง ์ˆซ์ž๋Š” ๋ช…๋ช…๋œ ์ƒ์ˆ˜๋กœ ๊ต์ฒดํ•˜๋ผ

 

  ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ์—์„œ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ. ์˜ˆ๋กœ 86,00์ด๋ผ๋Š” ์ˆซ์ž๋Š” SECOND_PER_DAY๋ผ๋Š” ์ƒ์ˆ˜ ๋’ค๋กœ ์ˆจ๊ธด๋‹ค.

'๋งค์ง ์ˆซ์ž'๋ผ๋Š” ์šฉ์–ด๋Š” ๋‹จ์ง€ ์ˆซ์ž๋งŒ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•˜์ง€ ์•Š๋Š” ํ† ํฐ์„ ๋ชจ๋‘ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ์—์„œ๋Š” 7777 ๋งŒ์ด ์•„๋‹ˆ๋ผ John Doe ๋˜ํ•œ ๋งค์ง ์ˆซ์ž์ด๋‹ค.

 

assertEquals(7777, Employee.find("John Doe").employeeNumber());

 

 - G26: ์ •ํ™•ํ•˜๋ผ

 

 - ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ค‘ ์ฒซ ๋ฒˆ์งธ ๊ฒฐ๊ณผ๋งŒ ์œ ์ผํ•œ ๊ฒฐ๊ณผ๋กœ ๊ฐ„์ฃผํ•˜๋Š” ํ–‰๋™์€ ์ˆœ์ง„ํ•˜๋‹ค.

 - ๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ํ†ตํ™”๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ–‰๋™์€ ๊ฑฐ์˜ ๋ฒ”์ฃ„์— ๊ฐ€๊น๋‹ค.

 - ๊ฐฑ์‹ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋ฐ•ํ•˜๋‹ค๊ณ  ์ž ๊ธˆ๊ณผ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋Š” ํ–‰๋™์€ ๊ฒŒ์œผ๋ฆ„์ด๋‹ค.

 - List๋กœ ์„ ์–ธํ•  ๋ณ€์ˆ˜๋ฅผ ArrayList๋กœ ์„ ์–ธํ•˜๋Š” ํ–‰๋™์€ ์ง€๋‚˜์นœ ์ œ์•ฝ์ด๋‹ค.

 - ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ protected๋กœ ์„ ์–ธํ•œ ์ฝ”๋“œ๋Š” ๋ฌด์ ˆ์ œํ•˜๋‹ค.

 

 ์ฝ”๋“œ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ๋Š” ์ •ํ™•ํžˆ ๊ฒฐ์ •ํ•œ๋‹ค. ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ์ด์œ ์™€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋ฐฉ๋ฒ•์„ ๋ถ„๋ช…ํžˆ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 

 - ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ Null์„ ๋ฐ˜ํ™˜ํ• ์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ Null์„ ์ ๊ฒ€ํ•œ๋‹ค.

 - ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜๋ฟ์ด๋ผ๊ณ  ์ง์ž‘ํ•œ๋‹ค๋ฉด ํ•˜๋‚˜์ธ์ง€ ํ™•์‹คํžˆ ํ™•์ธํ•œ๋‹ค.

 - ํ†ตํ™”๋ฅผ ๋‹ค๋ค„์•ผ ํ•œ๋‹ด๋…€ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ˜์˜ฌ๋ฆผ์„ ์˜ฌ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 - ๋ณ‘ํ–‰(Concurrent) ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๋™์‹œ์— ๊ฐฑ์‹ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ ์ ˆํ•œ ์ž ๊ธˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•œ๋‹ค.

 

 ์ฝ”๋“œ์—์„œ ๋ชจํ˜ธ์„ฑ๊ณผ ๋ถ€์ •ํ™•์€ ์˜๊ฒฌ์ฐจ๋‚˜ ๊ฒŒ์œผ๋ฆ„์˜ ๊ฒฐ๊ณผ์ด๋‹ค. ์–ด๋Š ์ชฝ์ด๋“  ์ œ๊ฑฐํ•ด์•ผ ๋งˆ๋•…ํ•˜๋‹ค.


 

 - G27: ๊ด€๋ก€๋ณด๋‹ค ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

 

 ์„ค๊ณ„ ๊ฒฐ์ •์„ ๊ฐ•์ œํ•  ๋•Œ๋Š” ๊ทœ์น™๋ณด๋‹ค ๊ด€๋ก€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ช…๋ช… ๊ด€๋ก€๋„ ์ข‹์ง€๋งŒ ๊ตฌ์กฐ ์ž์ฒด๋กœ ๊ฐ•์ œํ•˜๋ฉด ๋” ์ข‹๋‹ค.

์˜ˆ๋กœ Enum๋ณ€์ˆ˜๊ฐ€ ์ž˜ ๊ตฌ์„ฑ๋œ switch/case ๋ฌธ๋ณด๋‹ค ์ถ”์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๊ธฐ์ดˆ ํด๋ž˜์Šค๊ฐ€ ๋” ์ข‹๋‹ค. switch/case ๋ฌธ์„ ๋งค๋ฒˆ ๋˜‘๊ฐ™์ด ๊ตฌํ˜„ํ•˜๊ฒŒ ๊ฐ•์ œํ•˜๊ธฐ๋Š” ์–ด๋ ต์ง€๋งŒ, ํŒŒ์ƒ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 


 

 - G28: ์กฐ๊ฑด์„ ์บก์Šํ™”ํ•˜๋ผ

 

 ๋ถ€์šธ ๋…ผ๋ฆฌ๋Š” ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค ์กฐ๊ฑด์˜ ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํžˆ๋Š” ํ•จ์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋ผ.

 


 

 - G29: ๋ถ€์ • ์กฐ๊ฑด์€ ํ”ผํ•˜๋ผ

 

 ๋ถ€์ • ์กฐ๊ฑด์€ ๊ธ์ • ์กฐ๊ฑด๋ณด๋‹ค ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ๊ธ์ • ์กฐ๊ฑด์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

 


 

 - G30:  ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด์•ผ ํ•œ๋‹ค.

 

 ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ํ•œ ๊ฐ€์ง€ ์ž„๋ฌด๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.

 


 

 - G31: ์ˆจ๊ฒจ์ง„ ์‹œ๊ฐ์ ์ธ ๊ฒฐํ•ฉ

 

 ๋•Œ๋กœ๋Š” ์‹œ๊ฐ„์ ์ธ ๊ฒฐํ•ฉ์ด ํ•„์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ ์ธ ๊ฒฐํ•ฉ์„ ์ˆจ๊ฒจ์„œ๋Š” ์•ˆ ๋œ๋‹ค. ํ•จ์ˆ˜ ์ธ์ˆ˜๋ฅผ ์ ์ ˆํžˆ ๋ฐฐ์น˜ํ•ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋ช…๋ฐฑํžˆ ๋“œ๋Ÿฌ๋‚ธ๋‹ค.

 

์•„๋ž˜ ์ฝ”๋“œ๋Š” ์ฃผ์„๊ณผ ๊ฐ™์ด 1,2,3 ์ˆœ์„œ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ 2 ๋ฒˆ์งธ๊ฐ€ ๋จผ์ € ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

public class MoogDiver {
    Gradient gradient;
    List<Spline> splines;
    
    public void dive(String reason){
        saturateGradient(); //1
        reticulateSplines(); //2 
        diveForMoog(reason) //3
    }
}

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋ฉด ์ผ์ข…์˜ ์—ฐ๊ฒฐ ์†Œ์ž๋ฅผ ์ƒ์„ฑํ•ด ์‹œ๊ฐ์ ์ธ ๊ฒฐํ•ฉ์„ ๋…ธ์ถœํ•œ๋‹ค.

๊ฐ ํ•จ์ˆ˜๊ฐ€ ๋‚ด๋†“์€ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ ํ•จ์ˆ˜์— ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ํ˜ธ์ถœํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

public void dive(String reason){
    Gradient gradient = saturateGradient();
    List<Spline> splines = reticulateSplines(gradient);
    diveForMoog(splines, reason)
}

 

 ํ•จ์ˆ˜๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜๋„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•œ ๊ตฌ๋ฌธ์ ์ธ ๋ณต์žก์„ฑ์ด ์›๋ž˜ ์žˆ๋˜ ์‹œ๊ฐ„์ ์ธ ๋ณต์žก์„ฑ์„ ๋“œ๋Ÿฌ๋‚ธ ์…ˆ์ด๋‹ค.

 


  

  - G32: ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ผ

 

 ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์žก์„ ๋•Œ๋Š” ์ด์œ ๋ฅผ ๊ณ ๋ฏผํ•˜๋ผ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์œ ๋ฅผ ์ฝ”๋“œ ๊ตฌ์กฐ๋กœ ๋ช…๋ฐฑํžˆ ํ‘œํ˜„ํ•˜๋ผ. ๊ตฌ์กฐ์— ์ผ๊ด€์„ฑ์ด ์—†์–ด ๋ณด์ธ๋‹ค๋ฉด ๋‚จ๋“ค์ด ๋ง˜๋Œ€๋กœ ๋ฐ”๊ฟ”๋„ ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 


 

 - G33: ๊ฒฝ๊ณ„ ์กฐ๊ฑด์„ ์บก์Šํ™”ํ•˜๋ผ

 

 ๊ฒฝ๊ณ„ ์กฐ๊ฑด์€ ํ•œ ๊ณณ์—์„œ ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

 

// X
foo(level + 1);

// O
int nextlevel = level + 1;
foo(nextlevel);

 

 - G34: ํ•จ์ˆ˜๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ํ•œ ๋‹จ๊ณ„๋งŒ ๋‚ด๋ ค๊ฐ€์•ผ ํ•œ๋‹ค.

 

 ํ•จ์ˆ˜ ๋‚ด ๋ชจ๋“  ๋ฌธ์žฅ์€ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ถ”์ƒํ™” ์ˆ˜์ค€์€ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์˜๋ฏธํ•˜๋Š” ์ž‘์—…๋ณด๋‹ค ํ•œ ๋‹จ๊ณ„๋งŒ ๋‚ฎ์•„์•ผ ํ•œ๋‹ค.

์ถ”์ƒํ™” ์ˆ˜์ค€ ๋ถ„๋ฆฌ๋Š” ๋ฆฌํŽ™ํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ์ œ๋Œ€๋กœ ํ•˜๊ธฐ์— ๊ฐ€์žฅ ์–ด๋ ค์šด ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

 ํ•จ์ˆ˜์—์„œ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ๋ถ„๋ฆฌํ•˜๋ฉด ์•ž์„œ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š์•˜๋˜ ์ƒˆ๋กœ์šด ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋“œ๋Ÿฌ๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋นˆ๋ฒˆํ•˜๋‹ค. 

 


 

 - G35: ์„ค์ • ์ •๋ณด๋Š” ์ตœ์ƒ์œ„ ๋‹จ๊ณ„์— ๋‘ฌ๋ผ

 

 ์ถ”์ƒํ™” ์ตœ์ƒ์œ„ ๋‹จ๊ณ„์— ๋‘ฌ์•ผ ํ•  ๊ธฐ๋ณธ๊ฐ’ ์ƒ์ˆ˜๋‚˜ ์„ค์ • ๊ด€๋ จ ์ƒ์ˆ˜๋ฅผ ์ € ์ฐจ์› ํ•จ์ˆ˜์— ์ˆจ๊ฒจ์„œ๋Š” ์•ˆ ๋œ๋‹ค. ๋Œ€์‹  ๊ณ ์ฐจ์› ํ•จ์ˆ˜์—์„œ ์ € ์ฐจ์› ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ธ์ˆ˜๋กœ ๋„˜๊ธด๋‹ค.

 ์„ค์ • ๊ด€๋ จ ์ƒ์ˆ˜๋Š” ์ตœ์ƒ์œ„ ๋‹จ๊ณ„์— ๋‘”๋‹ค. ๊ทธ๋ž˜์•ผ ๋ณ€๊ฒฝํ•˜๊ธฐ๋„ ์‰ฝ๋‹ค. ์„ค์ • ๊ด€๋ จ ๋ณ€์ˆ˜๋Š” ๋‚˜๋จธ์ง€ ์ฝ”๋“œ์— ์ธ์ˆ˜๋กœ ๋„˜๊ธด๋‹ค. ์ €์ฐจ์› ํ•จ์ˆ˜์— ์ƒ์ˆ˜ ๊ฐ’์„ ์ •์˜ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

 

 


 - G36: ์ถ”์ด์  ํƒ์ƒ‰์„ ํ”ผํ•˜๋ผ.

 

 ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ๋ชจ๋“ˆ์€ ์ฃผ๋ณ€ ๋ชจ๋“ˆ์„ ๋ชจ๋ฅผ์ˆ˜๋ก ์ข‹๋‹ค. ์˜ˆ๋กœ A๊ฐ€ B๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  B๊ฐ€ C๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ A๊ฐ€ C๋ฅผ ์•Œ์•„์•ผ ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

์ด๋ฅผ ๋””๋ฏธํ„ฐ ๋ฒ•์น™์ด๋ผ ํ•œ๋‹ค. ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ '๋ถ€๋„๋Ÿผ ํƒ€๋Š” ์ฝ”๋“œ ์ž‘์„ฑ(Writing Shy Code')์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ํ•ต์‹ฌ์€ ์ž์‹ ์ด ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ๋งŒ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์ด ๋‚ด๊ฒŒ ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‘ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค. ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ๋Š๋ผ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„๋ฅผ ๋”ฐ๋ผ ์‹œ์Šคํ…œ์„ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค.

 


 

.์ž๋ฐ”

 

 - J1: ๊ธด import ๋ชฉ๋ก์„ ํ”ผํ•˜๊ณ  ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

 

 ํŒจํ‚ค์ง€์—์„œ ํด๋ž˜์Šค๋ฅผ ๋‘˜ ์ด์ƒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํŒจํ‚ค์ง€ ์ „์ฒด๋ฅผ ๊ฐ€์ ธ์˜ค๋ผ.

 

๋ช…์‹œ์ ์ธ import ๋ฌธ์€ ๊ฐ•ํ•œ ์˜์กด์„ฑ์„ ์ƒ์„ฑํ•˜์ง€๋งŒ ์™€์ผ๋“œ์นด๋“œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ import ํ•˜๋ฉด ๊ทธ ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ด์•ผ ํ•˜์ง€๋งŒ ์™€์ผ๋“œ์นด๋“œ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์ง€์ •ํ•˜๋ฉด ํด๋ž˜์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•  ํ•„์š”๋Š” ์—†๋‹ค. import ๋ฌธ์€ ํŒจํ‚ค์ง€๋ฅผ ๋‹จ์ˆœํžˆ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•˜๋ฏ€๋กœ ์ง„์ •ํ•œ ์˜์กด์„ฑ์ด ์ƒ๊ธฐ์ง€ ์•Š๋Š๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“ˆ ๊ฐ„ ๊ฒฐํ•ฉ์„ฑ์ด ๋‚ฎ์•„์ง„๋‹ค. ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋ผ๋„ ์™€์ผ๋“œ์นด๋“œ import ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค.

 


 

 - J2: ์ƒ์ˆ˜๋Š” ์ƒ์†ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 ์ƒ์ˆ˜๋ฅผ ์ƒ์† ๊ณ„์ธต ๋งจ ์œ„์— ์ˆจ๊ฒจ๋†“๋Š” ๊ฒƒ์€ ๋”์ฐํ•œ ๊ด€ํ–‰์ด๋‹ค. ์–ธ์–ด์˜ ๋ฒ”์œ„ ๊ทœ์น™์„ ์†์ด๋Š” ํ–‰์œ„๋‹ค. ๋Œ€์‹  static import๋ฅผ ์‚ฌ์šฉํ•ด๋ผ


 - J3: ์ƒ์ˆ˜ ๋Œ€ Enum

 

  int ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ ์—ฐํ•˜๊ณ  ์„œ์ˆ ์ ์ธ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ธ Enum์„ ํ™œ์šฉํ•ด๋ผ.

 


 

.์ด๋ฆ„

 

 - N1: ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

 

 ์†Œํ”„ํŠธ ์›จ์–ด์˜ ๊ฐ€๋…์„ฑ์˜ 90%๋Š” ์ด๋ฆ„์ด ๊ฒฐ์ •ํ•œ๋‹ค. ์ด๋ฆ„์€ ์„ฑ๊ธ‰ํ•˜๊ฒŒ ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ ๋ฅธ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ง„ํ™”ํ•˜๋ฉด ์˜๋ฏธ๋„ ๋ณ€ํ•˜๋ฏ€๋กœ ์„ ํƒํ•œ ์ด๋ฆ„์ด ์ ํ•ฉํ•œ์ง€ ์ž์ฃผ ๋˜๋Œ์•„๋ณธ๋‹ค.

 


 

 - N2: ์ ์ ˆํ•œ ์ถ”์ƒํ™” ์ˆ˜์ค€์—์„œ ์ด๋ฆ„์„ ์„ ํƒํ•˜๋ผ

 

 ๊ตฌํ˜„์„ ๋“œ๋Ÿฌ๋‚ด๋Š” ์ด๋ฆ„์€ ํ”ผํ•ด๋ผ. ์ž‘์—… ๋Œ€์ƒ ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜๊ฐ€ ์œ„์น˜ํ•˜๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ๋ฐ˜์˜ํ•˜๋Š” ์ด๋ฆ„์„ ์„ ํƒํ•ด๋ผ.

 


 

 -  N3: ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ‘œ์ค€ ๋ช…๋ช…๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ผ

 

 ๊ธฐ์กด ๋ช…๋ช…๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์€ ์ดํ•ดํ•˜๊ธฐ ๋” ์‰ฝ๋‹ค. ์˜ˆ๋กœ Decorator ํŒจํ„ด์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด ํด๋ž˜์Šค ์ด๋ฆ„์— Decorator๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํŒจํ„ด์€ ํ•œ ๊ฐ€์ง€ ํ‘œ์ค€์— ๋ถˆ๊ณ ํ•˜๋‹ค. ์˜ˆ๋กœ ์ž๋ฐ”์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋Š” toString์ด๋ผ๋Š” ์ด๋ฆ„์„ ๋งŽ์ด ์“ด๋‹ค. ์ด๋Ÿฐ ์ด๋ฆ„์€ ๊ด€๋ก€๋ฅผ ๋”ฐ๋ฅด๋Š” ํŽธ์ด ์ข‹๋‹ค.

 ํ”ํžˆ ํŒ€๋งˆ๋‹ค ํŠน์ • ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ํ‘œ์ค€์„ ๋‚˜๋ฆ„๋Œ€๋กœ ๊ณ ์•ˆํ•œ๋‹ค. ์—๋ฆญ ์—๋ฐ˜์Šค๋Š” ์ด๋ฅผ ํ”„๋กœ์ ํŠธ์˜ ์œ ๋น„์ฟผํ„ฐ์Šค ์–ธ์–ด๋ผ ๋ถ€๋ฅธ๋‹ค. ์ฝ”๋“œ๋Š” ์ด ์–ธ์–ด์— ์†ํ•˜๋Š” ์šฉ์–ด๋ฅผ ์—ด์‹ฌํžˆ ์จ์•ผ ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์œ ํšจํ•œ ์˜๋ฏธ๊ฐ€ ๋‹ด๊ธด ์ด๋ฆ„์„ ๋งŽ์ด ์‚ฌ์šฉํ• ์ˆ˜๋ก ๋…์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

 


 

 - N4: ๋ช…ํ™•ํ•œ ์ด๋ฆ„

 

 ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์˜ ๋ชฉ์ ์„ ๋ช…ํ™•ํžˆ ๋ฐํžˆ๋Š” ์ด๋ฆ„์„ ์„ ํƒํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ•˜๋Š” ์ผ์„ ๋ถ„๋ช…ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 


 

 - N5: ๊ธด ๋ฒ”์œ„๋Š” ๊ธด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

 

 ์ด๋ฆ„ ๊ธธ์ด๋Š” ๋ฒ”์œ„ ๊ธธ์ด์— ๋น„๋ก€ํ•ด์•ผ ํ•œ๋‹ค. ๋ฒ”์œ„๊ฐ€ ์ž‘์œผ๋ฉด ์•„์ฃผ ์งง์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒ”์œ„๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ๊ธด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฒ”์œ„๊ฐ€ 5์ค„ ์•ˆํŒŽ์ด๋ผ๋ฉด i๋‚˜ j ๊ฐ™์€ ๋ณ€์ˆ˜ ์ด๋ฆ„๋„ ๊ดœ์ฐฎ๋‹ค. ์งง์€ ๋ฒ”์œ„์—์„œ ๊ธด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด ์ด๋ฆ„์ด ์งง์€ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋Š” ๋ฒ”์œ„๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์˜๋ฏธ๋ฅผ ์žƒ๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด๋ฆ„ ๋ฒ”์œ„๊ฐ€ ๊ธธ์ˆ˜๋ก ์ด๋ฆ„์„ ์ •ํ™•ํ•˜๊ณ  ๊ธธ๊ฒŒ ์ง“๋Š”๋‹ค.

 


 

 - N6: ์ธ์ฝ”๋”ฉ์„ ํ”ผํ•˜๋ผ

 

 ์ด๋ฆ„์— ์œ ํ˜• ์ •๋ณด๋‚˜ ๋ฒ”์œ„ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. m_, s_์™€ ๊ฐ™์€ ์ ‘๋‘์–ด๋Š” ๋ถˆํ•„์š”ํ•˜๋‹ค.  ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ•์˜ ์˜ค์—ผ์—์„œ ์ด๋ฆ„์„ ๋ณดํ˜ธํ•˜๋ผ.

 


 

 - N7: ์ด๋ฆ„์œผ๋กœ ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ์„ค๋ช…ํ•˜๋ผ

 

 ํ•จ์ˆ˜, ๋ณ€์ˆ˜, ํด๋ž˜์Šค๊ฐ€ ํ•˜๋Š” ์ผ์„ ๋ชจ๋‘ ๊ธฐ์ˆ ํ•˜๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฆ„์— ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ์ˆจ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. 

 


  . ํ…Œ์ŠคํŠธ

 

 - T1: ๋ถˆ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ

 

 ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ž ์žฌ์ ์œผ๋กœ ๊นจ์งˆ ๋งŒํ•œ ๋ถ€๋ถ„์„ ๋ชจ๋‘ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ํ™•์ธํ•˜์ง€ ์•Š๋Š” ์กฐ๊ฑด์ด๋‚˜ ๊ฒ€์ฆํ•˜์ง€ ์•Š๋Š” ๊ณ„์‚ฐ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ํ…Œ์ŠคํŠธ๋Š” ๋ถˆ์™„์ „ํ•˜๋‹ค.

 


 

 - T2: ์ปค๋ฒ„๋ฆฌ์ง€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

 

์ปค๋ฒ„๋ฆฌ์ง€ ๋„๊ตฌ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋น ๋œจ๋ฆฌ๋Š” ๊ณต๋ฐฑ์„ ์•Œ๋ ค์ค€๋‹ค. 

 


 - T3: ์‚ฌ์†Œํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€ ๋งˆ๋ผ

 

 ์‚ฌ์†Œํ•œ ํ…Œ์ŠคํŠธ๋Š” ์งœ๊ธฐ ์‰ฝ๋‹ค. ์‚ฌ์†Œํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ์  ๊ฐ€์น˜๋Š” ๊ตฌํ˜„์— ๋“œ๋Š” ๋น„์šฉ์„ ๋„˜์–ด์„ ๋‹ค.

 


 

 - T4: ๋ฌด์‹œํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋ชจํ˜ธํ•จ์„ ๋œปํ•œ๋‹ค.

 

 ๋ถˆ๋ฌธ ๋ช…ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋Œ์•„๊ฐ€๋Š” ๋ฐฉ์‹์„ ํ™œ์šฉํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— @Ignore๋ฅผ ๋ถ™์—ฌ ํ‘œํ˜„ํ•œ๋‹ค. ์„ ํƒ ๊ธฐ์ค€์€ ๋ชจํ˜ธํ•จ์ด ์กด์žฌํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ปดํŒŒ์ผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•œ์ง€์— ๋‹ฌ๋ ค์žˆ๋‹ค.

 


 

 - T5: ๊ฒฝ๊ณ„ ์กฐ๊ฑด์„ ํ…Œ์ŠคํŠธํ•˜๋ผ

 

 ๊ฒฝ๊ณ„ ์กฐ๊ฑด์€ ๊ฐ๋ณ„ํžˆ ์‹ ๊ฒฝ ์จ์„œ ํ…Œ์ŠคํŠธํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ค‘์•™ ์กฐ๊ฑด์€ ์˜ฌ๋ฐ”๋กœ ์งœ ๋†“๊ณ  ๊ฒฝ๊ณ„ ์กฐ๊ฑด์—์„œ ์‹ค์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ”ํ•˜๋‹ค.

 


 

 - T6: ๋ฒ„๊ทธ ์ฃผ๋ณ€์€ ์ฒ ์ €ํžˆ ํ…Œ์ŠคํŠธํ•˜๋ผ

 

 ๋ฒ„๊ทธ๋Š” ์„œ๋กœ ๋ชจ์ด๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. ํ•œ ํ•จ์ˆ˜์—์„œ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋ฅผ ์ฒ ์ €ํžˆ ํ…Œ์ŠคํŠธํ•˜๋Š” ํŽธํžˆ ์ข‹๋‹ค. ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋„ ๋ฐœ๊ฒฌ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

 


 

 - T7: ์‹คํŒจ ํŒจํ„ด์„ ์‚ดํŽด๋ผ

 

 ๋•Œ๋กœ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์‹คํŒจํ•˜๋Š” ํŒจํ„ด์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ๊ผผ๊ผผํžˆ ์งœ๋ผ๋Š” ์ด์œ ๋„ ์—ฌ๊ธฐ ์žˆ๋‹ค. ํ•ฉ๋ฆฌ์ ์ธ ์ˆœ์„œ๋กœ ์ •๋ ฌ๋œ ๊ผผ๊ผผํ•จ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์‹คํŒจ ํŒจํ„ด์„ ๋“œ๋Ÿฌ๋‚ธ๋‹ค.

 


 

 - T8:  ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ํŒจํ„ด์„ ์‚ดํŽด๋ผ

 

 ํ†ต๊ณผํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์‹คํŒจ ์›์ธ์ด ๋“œ๋Ÿฌ๋‚œ๋‹ค.

 


 

 - T9: ํ…Œ์ŠคํŠธ๋Š” ๋นจ๋ผ์•ผ ํ•œ๋‹ค.

 

 ๋Š๋ฆฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์‹คํ–‰ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 


 .๊ฒฐ๋ก 

 

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


 

๐Ÿ“ ๋Š๋‚€์ .

 - ๋งˆ์ง€๋ง‰ ์žฅ์ด์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ์ „๋ฐ˜์ ์œผ๋กœ ์ค‘์š”ํ•œ ๋‚ด์šฉ์˜ ํ•ต์‹ฌ๋“ค์„ ๊ฐ„๋žตํžˆ ์„ค๋ช…์„ ํ•ด์ฃผ์–ด ์ •๋ฆฌ๊ฐ€ ๋˜๋Š” ์žฅ์ด์˜€๋‹ค.
 - ๋ชฉ๋ก์„ ์ฝํžŒ๋‹ค ํ•˜์—ฌ ์žฅ์ธ์ด ๋˜์ง€ ๋ชปํ•œ๋‹ค ํ•˜์˜€์ง€๋งŒ. ์•„์ง ๋ชฉ๋ก๋„ ์ œ๋Œ€๋กœ ์ ์šฉ์„ ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์—†์–ด. ์žฅ์ธ์„ ๋…ผํ•˜๊ธฐ ์ „์— ๋จผ์ € ๊ฒฝํ—˜์„ ํ•ด๋ณด์•ผ๊ฒ ๋‹ค...