๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฑ…/CleanCode

โœจ Clean Code 3์žฅ: ํ•จ์ˆ˜

๐Ÿ—ฃ ์„œ๋ก 

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

๐Ÿ“Œ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ

ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ทœ์น™์€ ์ฒซ์งธ๋„ ์ž‘๊ฒŒ, ๋‘˜์งธ๋„ ์ž‘์•„์•ผ ํ•œ๋‹ค. ์ผ„ํŠธ ๋ฐฑ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋ชจ๋“  ํ•จ์ˆ˜๊ฐ€ 2~4์ค„ ์ •๋„๋ผ๊ณ  ํ•œ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ์ด์— ๋Œ€ํ•œ ๊ทผ๊ฑฐ๋ฅผ ๋ช…ํ™•ํžˆ ์ œ์‹œํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํฌ๋ฉด ๊ทธ ๋งŒํผ ๋งŽ์€ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹๊นŒ?

๋ธ”๋ก๊ณผ ๋“ค์—ฌ์“ฐ๊ธฐ

์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ์ƒ๊ธธ๋งŒํผ ํ•จ์ˆ˜๋Š” ์ปค์ง€๋ฉด ์•ˆ๋œ๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ค€์€ 1๋‹จ์ด๋‚˜ 2๋‹จ์„ ๋„˜์–ด์„œ๋ฉด ์•ˆ๋œ๋‹ค๊ณ  ์ฑ…์—์„œ ์†Œ๊ฐœํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ทน๋‹จ์ ์œผ๋กœ 1๋‹จ์„ ์œ ์ง€ํ•˜๋Š” ์—ฐ์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค.

๐Ÿ“Œ ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด๋ผ

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

  1. ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํŒ๋‹จํ•œ๋‹ค.
  2. ์“ฐ๋ ˆ๊ธฐ๋ฅผ ์ค๋Š”๋‹ค.
  3. ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํœด์ง€ํ†ต์— ๋„ฃ๋Š”๋‹ค.

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

๐Ÿ“Œ ๋‚ด๋ ค๊ฐ€๊ธฐ ๊ทœ์น™(์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ๊ธฐ)

๋‹น์—ฐํžˆ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ์ฝํ˜€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฑ…์—์„œ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ์œผ๋ฉด ํ•จ์ˆ˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•œ ๋ฒˆ์— ํ•œ ๋‹จ๊ณ„์”ฉ ๋‚ฎ์•„์ง€๋Š” ๊ฒƒ์„ ๋‚ด๋ ค๊ฐ€๊ธฐ ๊ทœ์น™์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. TO ๋ฌธ๋‹จ์„ ์ฝ๋“ฏ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์ฝํ˜€์•ผ ํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ TO๋Š” ์˜์–ด๋กœ ~ํ•˜๋ ค๋ฉด์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋‹ค์‹œ ๋งํ•ด TO ๋ฌธ๋‹จ์€ ํ˜„์žฌ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์„ค๋ช…ํ•˜๋Š”๋ฐ ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด์„œ ์ดํ•ด๋ฅผ ํ•ด๋ณด์ž.

  • TO ๋ฌด์—‡์„ ํ•˜๋ ค๋ฉด, A๋ฅผ ํ•˜๊ณ , B๋ฅผ ํ•˜๊ณ , C๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
    • TO A๋ฅผ ํ•˜๋ ค๋ฉด, ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.
    • TO B๋ฅผ ํ•˜๋ ค๋ฉด, ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.
    • ...

์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์œ„์—์„œ ์•„๋ž˜๋กœ TO ๋ฌธ๋‹จ์„ ์ฝ์–ด๋‚ด๋ ค ๊ฐ€๋“ฏ์ด ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด, ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“Œ Switch ๋ฌธ

switch ๋ฌธ์€ N๊ฐ€์ง€ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ํž˜๋“ค๋‹ค. ๋˜๋„๋ก switch ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค. switch ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ N๊ฐ€์ง€ ํ–‰์œ„๋ฅผ ํ•œ๋‹ค๋ฉด ๋ฌด์—‡์ด ๋ฌธ์ œ์ผ๊นŒ? ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” SRP๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉฐ, ์„ธ ๋ฒˆ์งธ๋Š” OCP๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฑ…์—์„œ๋Š” ๋‹คํ˜•์  ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„๋งŒ switch ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ฐธ์•„์ค€๋‹ค๊ณ  ํ•œ๋‹ค. ์ฐธ์•„์ค€๋‹ค๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ€๊ธ‰์ ์ด๋ฉด ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ๋Š” ์˜๋ฏธ์ด์ง€ ์•Š์„๊นŒ?

๐Ÿ“Œ ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

์šฐ๋ฆฌ๋Š” ๋„ค์ด๋ฐ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๊ฒƒ์€ ํ•จ์ˆ˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํด๋ž˜์Šค๋‚˜ ๋ณ€์ˆ˜๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ํ•จ์ˆ˜๋Š” ์ข‹์€ ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์•ž์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ ํ•œ ๊ฐ€์ง€ ์ผ์„ ํ•˜๋Š” ์ž‘์€ ํ•จ์ˆ˜์— ์ข‹์€ ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ๋งŽ์€ ์ผ์„ ํ•˜๋Š” ํ•จ์ˆ˜์— ์ด๋ฆ„์„ ์ง“๋Š” ๊ฒƒ์ด ์‰ฌ์šธ๊นŒ? ์•„๋‹ˆ๋‹ค. ์ฆ‰ ์ด๋ฆ„๋ณด๋‹ค๋„ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ž‘๊ณ  ๋‹จ์ˆœํ•ด์•ผ ์ด๋ฆ„ ์ง“๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค. ์ด๋ฆ„์€ ๊ธธ์–ด๋„ ์ข‹๋‹ค. ์งง๊ณ  ์ž˜ ํ‘œํ˜„ํ–ˆ๋‹ค๋ฉด ๋ฒ ์ŠคํŠธ์ง€๋งŒ, ๊ธธ์–ด๋„ ์ •๋ง ์ž˜ ํ‘œํ˜„ํ–ˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ๋ฒ ์ŠคํŠธ์ด์ง€ ์•Š์„๊นŒ? ๊ฒฐ๋ก ์€ ํ•จ์ˆ˜ ์ด๋ฆ„๋งŒ ๋ด๋„ ์ง์ž‘ํ•˜๋Š” ๋Œ€๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค.

๐Ÿ“Œ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋Š” ๋ช‡๊ฐœ๊ฐ€ ์ ๋‹นํ• ๊นŒ?

๊ฒฐ๋ก ๋ถ€ํ„ฐ ์–˜๊ธฐํ•˜์ž๋ฉด 0๊ฐœ์ด๋‹ค. ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ์ˆซ์ž์ด๋‹ค. ์ ์„์ˆ˜๋ก ์ข‹๋‹ค. 4๊ฐœ ์ด์ƒ์€ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์‚ฌ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์ธ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉด ๊ทธ ๋งŒํผ ์ดํ•ดํ•˜๊ธฐ๋„ ์–ด๋ ต๊ณ , ๋ชจ๋“  ์กฐํ•ฉ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด์•ผํ•˜๊ธฐ์— ๋ถ€๋‹ด์Šค๋Ÿฌ์›Œ์ง„๋‹ค.

๋‹จํ•ญ ํ˜•์‹์€ ์ธ์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ธ์ˆ˜์—๊ฒŒ ์งˆ๋ฌธ์„ ๋˜์ง€๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

String color = "red";
isRed(color);

ํ”Œ๋ž˜๊ทธ ์ธ์ˆ˜๋Š” ์ฑ…์—์„œ๋Š” ๋”์ฐํ•˜๋‹ค๋Š” ํ‘œํ˜„์„ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•จ์ˆ˜์— ๋ถ€์šธ ๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๊ฒƒ์€ ๋Œ€๋†“๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์™œ๋ƒํ•˜๋ฉด true๋ผ๋ฉด A๋ฅผ ํ•˜๊ณ , false๋ผ๋ฉด B๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ถ€์šธ ๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๊ฒƒ์„ ๋ฌด์กฐ๊ฑด ํ”ผํ•˜์ž.

์ดํ•ญ ํ•จ์ˆ˜๋Š” ์ธ์ˆ˜์˜ ํƒ€์ž…์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์‹ค์ˆ˜ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋Œ€๋กœ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

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

public Circle makeCircle(double x, double y, double radius) {
	...
}

public Circle makeCircle(Point center, double radius) {
	...
}

๋•Œ๋กœ๋Š” ์ธ์ˆ˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€๋ณ€์ ์ธ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๊ฒƒ์„ N๊ฐœ ์ธ์ˆ˜๋ฅผ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ณด๋‹ค, ์‚ฌ์‹ค์ƒ List ํ˜• ์ธ์ˆ˜ ํ•˜๋‚˜๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค. String.format ๋ฉ”์„œ๋“œ๋ฅผ ๋ณด๋ฉด ์‚ฌ์‹ค์ƒ ์ดํ•ญ ํ•จ์ˆ˜๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

public String format(String format, Object... args)

ํ•จ์ˆ˜์˜ ์˜๋„๋‚˜ ์ธ์ˆ˜์˜ ์ˆœ์„œ์™€ ์˜๋„๋ฅผ ์ œ๋Œ€๋กœ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ์ข‹์€ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ํ•„์š”ํ•˜๋‹ค. ๋‹จํ•ญ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์™€ ์ธ์ˆ˜๊ฐ€ ๋™์‚ฌ/๋ช…์‚ฌ ์Œ์„ ์ด๋ค„์•ผ ํ•œ๋‹ค. writeField(name)์€ ์˜๋„๊ฐ€ ๋ถ„๋ช…ํžˆ ๋“ค์–ด๋‚˜๊ณ , assertExpectedEqualsActual(expected, actual)์€ ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ ์ธํ•ด ์ธ์ˆ˜ ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

๐Ÿ“Œ ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ์ผ์œผํ‚ค์ง€ ๋งˆ๋ผ

๋ถ€์ˆ˜ ํšจ๊ณผ๋Š” ํ•จ์ˆ˜์—์„œ ํ•œ ๊ฐ€์ง€๋ฅผ ํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ•˜๊ณ  ๊ฑฐ์ง“๋ง ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋ถ€์ˆ˜ ํšจ๊ณผ๋กœ ์ˆจ๊ฒจ์ง„ ๊ฒฝ์šฐ ํ˜ผ๋ž€์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ ๋ฐ˜๋ณตํ•˜์ง€ ๋งˆ๋ผ

์ค‘๋ณต์€ ๋ฌธ์ œ๋‹ค. ์ฝ”๋“œ ๊ธธ์ด ๋ฟ ์•„๋‹ˆ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ณ€ํ•˜๋ฉด ์ค‘๋ณต๋œ ๋ถ€๋ถ„ ๋ชจ๋‘ ์†๋ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ์— ํ•œ๊ณณ์ด๋ผ๋„ ๋น ๋œจ๋ฆฌ๋ฉด ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์•„์ง„๋‹ค.

๐Ÿ“Œ ์–ด๋–ป๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์งค๊นŒ?

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