clean code 5

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 6์žฅ. ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ

6์žฅ. ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ๐Ÿงฉ ์ž๋ฃŒ๋ฅผ ๊ฐ์ถฐ์•ผ ํ•˜๋Š” ์ด์œ ๋ณ€์ˆ˜๋ฅผ private์œผ๋กœ ๊ฐ์ถ”๋Š” ์ด์œ ๋Š” ๋‹จ์ˆœํ•˜๋‹ค.๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ€ ๋ณ€์ˆ˜์— ์ง์ ‘ ์˜์กดํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๋Š” ๊ฒƒ.๊ทธ๋ž˜์•ผ ๋‚˜์ค‘์— ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊พธ๋”๋ผ๋„ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.๊ทธ๋Ÿฐ๋ฐ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด get, set ํ•จ์ˆ˜๋งŒ ๋œ์ปฅ ๋งŒ๋“ค์–ด์„œ ๊ฒฐ๊ตญ ๋ณ€์ˆ˜์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.์ด๊ฑด ์‚ฌ์‹ค์ƒ ์บก์Аํ™”๋ฅผ ๊นจ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„์—†๋‹ค.๋‹จ์ˆœํžˆ ์กฐํšŒ/์„ค์ • ํ•จ์ˆ˜๋ฅผ ๋ถ™์ธ๋‹ค๊ณ  ํด๋ž˜์Šค๊ฐ€ ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค.์ง„์งœ ์บก์Аํ™”๋Š” “๊ตฌํ˜„์ด ์–ด๋–ป๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€ ์™ธ๋ถ€์—์„œ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ”์ด๋‹ค.๐Ÿงญ ์ž๋ฃŒ ์ถ”์ƒํ™”๋ž€?์˜ˆ์‹œ 1: ๋‚˜์œ ์ถ”์ƒํ™”public class Point { public double x; public double y;}→ ๋‚ด๋ถ€ ๊ตฌํ˜„์ด ๊ทธ๋Œ€๋กœ ๋“œ๋Ÿฌ๋‚œ ๋‹จ์ˆœํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์ผ ๋ฟ์ด๋‹ค. ์˜ˆ์‹œ 2: ์ข‹..

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 5์žฅ. ํ˜•์‹ ๋งž์ถ”๊ธฐ

5์žฅ. ํ˜•์‹ ๋งž์ถ”๊ธฐ๐Ÿงพ ํ˜•์‹์€ ์˜์‚ฌ์†Œํ†ต์ด๋‹คํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด์„  ์ฝ”๋“œ์˜ ๋‚ด์šฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜•์‹๋„ ์ค‘์š”ํ•˜๋‹ค.ํ˜•์‹์„ ์ž˜ ๋งž์ถ”๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๋น ๋ฅด๊ฒŒ ์ฝํžˆ๊ณ , ์ดํ•ด๋„๋„ ๋†’์•„์ง„๋‹ค.์‹ค์ œ๋กœ ์ €์ž๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•œ๋‹ค:“ํ˜•์‹์„ ๋งž์ถ”์ง€ ์•Š์œผ๋ฉด, ๋งˆ์น˜ ์ˆ  ์ทจํ•œ ๋ฑƒ์‚ฌ๋žŒ์ด ์ง  ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.”์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋Š” ๊น”๋”ํ•˜๊ณ , ์งˆ์„œ ์žˆ๊ณ , ์ „๋ฌธ์ ์œผ๋กœ ๋ณด์ธ๋‹ค.์ด์ œ๋ถ€ํ„ฐ๋Š” ์‹ ๋ขฐ๊ฐ์„ ์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด, ํ˜•์‹์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ๊ณต๋ถ€ํ•ด๋ณด์ž.๐Ÿ“ฐ ์‹ ๋ฌธ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋ผ์ข‹์€ ์‹ ๋ฌธ ๊ธฐ์‚ฌ๋Š” ํ•ญ์ƒ ์ œ๋ชฉ → ์š”์•ฝ → ์„ธ๋ถ€์‚ฌํ•ญ ์ˆœ์œผ๋กœ ํ๋ฅธ๋‹ค.์ฝ”๋“œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.ํŒŒ์ผ ์ƒ๋‹จ์—๋Š” ๊ณ ์ˆ˜์ค€ ํ•จ์ˆ˜์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐˆ์ˆ˜๋ก ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์ฝ๋Š” ์‚ฌ๋žŒ์€ ์œ„์—์„œ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋‚ด๋ ค์˜ค๋ฉฐ ๋งฅ๋ฝ์„ ํŒŒ์•…ํ•˜๊ฒŒ ๋œ๋‹ค์ด๋Ÿฐ ํ๋ฆ„์ด ์žกํžŒ ์ฝ”๋“œ๋Š” ์ฝ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ "์ด๊ฑด ์ž˜ ์งœ์—ฌ ์žˆ๊ฒ ๊ตฌ๋‚˜"๋ผ๋Š” ์ธ์ƒ์„ ์ค€๋‹ค.๐Ÿ“ ์„ธ๋กœ..

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 4์žฅ. ์ฃผ์„

4์žฅ. ์ฃผ์„๐Ÿงพ ์ฃผ์„์€ ‘ํ•„์š”์•…’์ด๋‹ค์ฃผ์„์€ ์ข‹์€ ์ฝ”๋“œ์˜ ๋Œ€์ฒด์žฌ๊ฐ€ ์•„๋‹ˆ๋‹ค.์ฃผ์„์ด ๋งŽ๋‹ค๋Š” ๊ฑด, ์–ด์ฉŒ๋ฉด ์ฝ”๋“œ๋งŒ์œผ๋กœ๋Š” ์˜๋„๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‹ ํ˜ธ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.๋ฌผ๋ก  ์ฃผ์„์ด ํ•ญ์ƒ ๋‚˜์˜๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ๋ถ„๋ช…ํžˆ ์žˆ๋‹ค.๋‹ค๋งŒ ์ด ์žฅ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๊ฐ•์กฐํ•œ๋‹ค:“์ฃผ์„์€ ์‹คํŒจ์˜ ์ง•ํ›„๋‹ค.”์กฐ๊ธˆ ๊ณผ๊ฐํ•œ ํ‘œํ˜„์ด์ง€๋งŒ, ๊ทธ๋งŒํผ ‘์ฃผ์„ ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ์ฝํžˆ๋Š” ์ฝ”๋“œ’๋ฅผ ์ง€ํ–ฅํ•˜์ž๋Š” ๋ฉ”์‹œ์ง€๋กœ ๋ฐ›์•„๋“ค์ด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.์ฃผ์„์„ ๋‹ฌ๊ธฐ ์ „, “ํ˜น์‹œ ์ฝ”๋“œ ์ž์ฒด๋กœ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?” ํ•˜๊ณ  ํ•œ ๋ฒˆ์ฏค ๋˜๋Œ์•„๋ณด๋Š” ์Šต๊ด€์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค.โŒ ๋‚˜์œ ์ฃผ์„ vs โœ… ์ข‹์€ ์ฃผ์„โŒ ๋‚˜์œ ์ฃผ์„์ฝ”๋“œ๋ฅผ ๋ณด์™„ํ•˜๋ ค๋Š” ๋ณ€๋ช…์šฉ ์ฃผ์„๋„ˆ๋ฌด ์˜ค๋ž˜๋ผ์„œ ์‚ฌ์‹ค๊ณผ ์–ด๊ธ‹๋‚œ ์ฃผ์„์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ์˜๋ฏธ ์—†๋Š” ์„ค๋ช…์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋ฒ„๋ฆฐ ์ฃฝ์€ ์ฝ”๋“œ๋„ˆ๋ฌด ์žฅํ™ฉํ•˜๊ฑฐ๋‚˜ ๋ชจํ˜ธํ•œ ํ‘œํ˜„..

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 3์žฅ. ํ•จ์ˆ˜

3์žฅ. ํ•จ์ˆ˜๐ŸŽฏ ํ•จ์ˆ˜๋Š” ์ž‘๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒํ•จ์ˆ˜๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ์ž‘์•„์•ผ ํ•œ๋‹ค.ํ•จ์ˆ˜๊ฐ€ ์งง์„์ˆ˜๋ก, ๋“ค์—ฌ์“ฐ๊ธฐ ๋ ˆ๋ฒจ์ด ์–•์„์ˆ˜๋ก, ์ฝ๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๊ฐ€ ๋œ๋‹ค.ํ•œ๋ˆˆ์— ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.// ๊ธธ๊ณ  ๋ณต์žกํ•œ ํ•จ์ˆ˜ ์˜ˆ์‹œpublic void processUser(User user) { if (user.isActive()) { sendEmail(user); } updateLastLogin(user); saveToDatabase(user);}// ์ž‘๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•œ ์˜ˆ์‹œpublic void processUser(User user) { if (isActiveUser(user)) { notifyUser(user); } ..

[ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””] 1&2์žฅ. ํด๋ฆฐ ์ฝ”๋“œ์™€ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜๋Š” ๊ฐœ๋…, ํด๋ฆฐ ์ฝ”๋“œ. ๊ทธ์ค‘์—์„œ๋„ ใ€ŽClean Codeใ€๋ผ๋Š” ์ฑ…์ด ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๋‹ค.์ด๋ฒˆ์— ์ข‹์€ ๊ธฐํšŒ๋กœ ํด๋ฆฐ์ฝ”๋“œ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋๋‹ค.๊ฐ ์žฅ์˜ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณผ ์˜ˆ์ •์ด๊ณ , ์˜ค๋Š˜์€ 1์žฅ๊ณผ 2์žฅ์˜ ๋‚ด์šฉ์„ ํ•จ๊ป˜ ๋‹ค๋ค„๋ณด์ž.1์žฅ. ๊นจ๋—ํ•œ ์ฝ”๋“œ๐Ÿงผ ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ž€?ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํ•œ๋‹ค๋Š” ๋ง์„ ์šฐ๋ฆฌ๋Š” ์ •๋ง ์ˆ˜๋„ ์—†์ด ๋“ฃ๋Š”๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์™œ ๊ทธ๋ž˜์•ผ ํ• ๊นŒ? ์–ด๋–ป๊ฒŒ ์งœ๋Š” ๊ฒŒ ํด๋ฆฐ ์ฝ”๋“œ์ผ๊นŒ?๊นจ๋—ํ•œ ์ฝ”๋“œ๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€๋Š” ์‚ฌ์‹ค ๋‹ค๋“ค ํ•œ ๋ฒˆ์ฏค ๊ฒช์–ด๋ดค์„ ๊ฑฐ๋‹ค.“ํ•œ ์ค„๋งŒ ๊ณ ์น˜๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ, ๋ชจ๋“ˆ ์ˆ˜๋ฐฑ ๊ฐœ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ฒŒ ๋์–ด์š”…”“์ฝ”๋“œ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์—‰๋šฑํ•œ ๋ฐ์„œ ๋ฒ„๊ทธ๊ฐ€ ๋‚˜์š”…”์ฑ…์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•œ๋‹ค.๊ธฐํ•œ์„ ๋งž์ถ”๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€, ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ์งœ๋Š” ๊ฒƒ๋ฟ์ด๋‹ค.๋‚˜์œ ์ฝ”๋“œ๋Š” ๊ฒฐ๊ตญ ์†๋„๋ฅผ..

๋ฐ˜์‘ํ˜•