3์ฅ ํจ์ ~ 54p
๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
์๊ฒ ๋ง๋ค์ด๋ผ
ํ ๊ฐ์ง๋ง ํด๋ผ!
ํจ์ ๋น ์ถ์ํ ์์ค์ ํ๋๋ก!
Switch๋ฌธ
์์ ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ!
ํจ์ ์ธ์
function makeCircle(x, y, radius) ==> function makeCircle(center, radius)
๐์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์
์ธ์๋ ์ด๋ ต๋ค. ํจ์๋ฅผ ์ดํดํ๋ ค ์ธ์๋ฅผ ๋ณด๋ฉด ์ธ์๋ฅผ ๊ฑด๋ค์ค ํจ์๋ฅผ ๋ ์ดํดํ๊ณ ๊ธฐ์ตํด์ผํ๋ค. ๋๋ ์ด๊ฒ ์ด์ฉ ์ ์๋ ์ผ์ด๋ผ ์๊ฐํ๋๋ฐ ์ฑ ์์ ์ด๋ฌํ ์ฝ๋๋ฅผ ๊ตฌํํ์ง ์๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ์์ง ์ด๋ค์์ผ๋ก ๊ตฌํํ๋ฉด ์ด๋ฅผ ํด๊ฒฐ ํ ์ ์์์ง ๊ฐ์ด ์ค์ง ์์ง๋ง ๊ณ์ ๊ณต๋ถํ๋ค๋ณด๋ฉด ์ธ์ ๊ฐ ์ดํดํ๊ฒ ๋ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
์ฑ ์ด ์ ์ ์ด๋ ค์์ง๋ค.. ๊ธ์ด์ด๊ฐ ์ฃผ์ฅํ๋ ๋ด์ฉ ์์ฒด๋ ์ฝ๊ฒ ๋ฉ๋ํ ์ ์์ง๋ง ์์๋ก ๋๋ ์ฝ๋๋ค์ ๋ณด๋ฉด ์ ์ฝํ์ง ์๋๋ค. ๋ํ ์์ด์ค๋ ฅ์ด ๋ถ์กฑํด์ ๊ธ์ด์ด๊ฐ ์ด๋ฆ์ ์๋ฏธ๋ฅผ ์ฝ๊ฒ ํํํ ๊ฒ๋ ํ๋ํ๋ ์ฌ์ ์์ ์ฐพ์ ์๋ฏธ๋ฅผ ์ดํดํด์ผํ๋ค. ์์ง ๊ฐ๊ธธ์ด ๋ฉ์ง๋ง ํ์คํ ๋ฐฐ์ฐ๋์ ์ ์๋ ๊ฒ ๊ฐ๋ค.
๐ ๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
๊ธ์ด์ด๋ p.24์์ '์๋ก ํก์ฌํ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ง๋ผ' ๋งํ์ง๋ง p.50์์ '์ด๋ฆ์ ๋ถ์ผ ๋๋ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค'๋ผ๊ณ ํ๋ค. ์์๋ก ์ ์ด๋์ ํจ์๋ช ๋ค๋ ์ ๋ง ์๋ก ํก์ฌํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๋ค.. ์ ์ดํด๊ฐ ๊ฐ์ง ์๋๋ค.
ํ๋๊ทธ ์ธ์๋? ==> A flag argument is a kind of function argument that tells the function to carry out a different operation depending on its value.
์ฆ, ์ธ์์ ๊ฐ์ ๋ฐ๋ผ์ ํจ์๊ฐ ๋ค๋ฅธ ์ฐ์ฐ(๊ธฐ๋ฅ)์ ํ๊ฒ ๋ง๋๋ ๊ฒ์ด ํ๋๊ทธ ์ธ์์
๋๋ค.
(https://martinfowler.com/bliki/FlagArgument.html)
โ ์๊ฐ 3์ค ์์ฝ