๐Ÿงผ 1์žฅ ๊นจ๋—ํ•œ ์ฝ”๋“œ

๊น€์ข…์™„ยท2023๋…„ 4์›” 29์ผ
1

CleanCode

๋ชฉ๋ก ๋ณด๊ธฐ
1/6

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

ํด๋ฆฐ ์ฝ”๋“œ๋ž€โ“

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

ํ•˜์ง€๋งŒ ์œ„ 2๊ฐ€์ง€ ์กฐ๊ฑด์ด ์ง€์ผœ์ง€๋”๋ผ๋„ ์ฝ”๋“œ์˜ ์–‘์ด ๋งŽ์•„์งˆ ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ฝ”๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ ํ•˜๋ฉด์„œ ํŠน์ • ๊ธฐ๋Šฅ์€ ์ œ๊ฑฐํ•˜๊ณ  ํŠน์ • ๊ธฐ๋Šฅ์€ ์ถ”๊ฐ€ํ•œ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ๋งˆ๋‹ค ์ƒ๊ฐ์ง€๋„ ๋ชปํ•œ ์˜ค๋ฅ˜๋ฅผ ๊ฐ€๋” ๋งˆ์ฃผ์น  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ˆ˜์ •์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค๋ฉด ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

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

๋ก  ์ œํ”„๋ฆฌ์Šค๊ฐ€ ๋งํ•˜๋Š” ํด๋ฆฐ ์ฝ”๋“œ

  • ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ๋‹ค.
  • ์ค‘๋ณต์ด ์—†๋‹ค.
  • ์‹œ์Šคํ…œ ๋‚ด ๋ชจ๋“  ์„ค๊ณ„ ์•„์ด๋””์–ด๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
  • ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ํ•จ์ˆ˜ ๋“ฑ์„ ์ตœ๋Œ€ํ•œ ์ค„์ธ๋‹ค.

์œ„ ํด๋ฆฐ์ฝ”๋“œ์˜ ๊ทœ์น™ ์ค‘์—์„œ๋Š” ์ค‘๋ณต์ด ์—†๋‹ค๋Š” ๋ถ€๋ถ„์ด ๊ณต๊ฐ์ด ๊ฐ„๋‹ค. ๋งŒ์•ฝ์— ์ค‘๋ณต์ด ๋งŽ๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ๊ฐ™์€ ๋ถ€๋ถ„์„ ์ค‘๋ณต๋œ ์ˆ˜๋งŒํผ ์ˆ˜์ •ํ•ด์•ผ ๋œ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ง€๋ฃจํ•œ ์ž‘์—…์€ ํœด๋จผ ์—๋Ÿฌ๊นŒ์ง€ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค.

์ฑ…์„ ์ฝ๋‹ค ๋ณด๋‹ˆ ์žฌ๋ฏธ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋น„์•ผ๋„ค ์ŠคํŠธ๋กญ์ŠคํŠธ๋ฃน์ด๋ผ๋Š” ์‚ฌ๋žŒ์€ C++ ์ฐฝ์‹œ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๋น„์•ผ๋„ค๋Š” ์šฐ์•„ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ข‹์•„ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์šฐ์•„ํ•œ ์ด๋ž€ ๋‹จ์–ด๋ฅผ ๋งŽ์ด ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๋“ค์ด ์šฐ์•„ํ•œ ํ˜•์ œ์— ๋“ค์–ด๊ฐ€๊ณ  ์‹ถ์–ด ํ•œ๋‹ค. ์šฐ์•„ํ•œ ์ด๋ž€ ์ˆ˜์‹์–ด๋Š” ์–ด์ฉŒ๋ฉด ๋น„์•ผ๋„ค์˜ ๋‹จ์–ด์—์„œ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ผ ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์ด๋ž€ ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ์— ์ฆ๊ฑฐ์šด ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ชจ์ž„์ด๋ž€ ๋œป์œผ๋กœ ๋ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.

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

profile
๊ฐœ๋ฐœ์— ์žฌ๋ฏธ๋ฅผ ๋Š๋ผ๋ฉฐ ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๊น€์ข…์™„ ์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€