๐Ÿ“œ CleanCode 24

[CleanCode]๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ 2

๋””๋ฏธํ„ฐ ๋ฒ•์น™Law of Demeter: ๋ชจ๋“ˆ์€ ์ž์‹ ์ด ์กฐ์ž‘ํ•˜๋Š” ๊ฐ์ฒด์˜ ์†์‚ฌ์ •์„ ๋ชฐ๋ผ์•ผ ํ•œ๋‹ค.๊ฐ์ฒด๋Š” ์ž๋ฃŒ๋ฅผ ์ˆจ๊ธฐ๊ณ  ํ•จ์ˆ˜๋ฅผ ๊ณต๊ฐœํ•œ๋‹ค.์ฆ‰, ๊ฐ์ฒด๋Š” ์กฐํšŒํ•จ์ˆ˜๋กœ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๊ณต๊ฐœํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.๋Œ€ํ‘œ์ ์ธ ํœด๋ฆฌ์Šคํ‹ฑ์ด๋‹ค.ํœด๋ฆฌ์Šคํ‹ฑ  Heuristic์™„๋ฒฝํ•˜์ง„ ์•Š์ง€๋งŒ, ์ผ๋ฐ˜๋ฒ•์œผ๋กœ ์ข‹์€/๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ๋ฒ•์„ ๋งํ•œ๋‹ค.์ž์„ธํ•œ ์˜ˆ์‹œ๋กœํด๋ž˜์Šค C์˜ ๋ฉ”์„œ๋“œ f๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋งŒ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.ํด๋ž˜์Šค Cf ๊ฐ€ ์ƒ์„ฑํ•œ ๊ฐ์ฒดf ์ธ์ˆ˜๋กœ ๋„˜์–ด์˜จ ๊ฐ์ฒดC ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ์ฒดํ•˜์ง€๋งŒ ์œ„ ๊ฐ์ฒด์—์„œ ํ—ˆ์šฉ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋Š” ํ˜ธ์ถœํ•˜๋ฉด ์•ˆ๋œ๋‹ค.๋ณต์žกํ•œ ๋“ฏ์ด ๋ณด์ด์ง€๋งŒ ๋””๋ฏธํ„ฐ ๋ฒ•์น™์„ ์œ„๋ฐ˜ํ•˜๋Š” ์‚ฌ๋ก€๋งŒ ํ”ผํ•˜๋ฉด ๋œ๋‹ค.ํด๋ž˜์Šค A→B์—์„œ ์กฐํšŒ๋ฅผ ํ–ˆ๋‹ค๋ฉด B์— ์žˆ๋Š” ์ž๋ฃŒ๋งŒ ๊ฐ€์ ธ์™€์•ผ์ง€A→B→C์กฐํšŒ๋ฅผ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฑฐ๋‹ค.ํ•œ๋งˆ๋””๋กœ ์ฝ”๋“œ๊ฐ€ ๊ผฌ์ธ ..

๐Ÿ“œ CleanCode 2024.09.23

[CleanCode]๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ 1

๊ฐ ๋ณ€์ˆ˜๋งˆ๋‹ค get/set ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋ฉด ๊ตฌํ˜„์„ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๋Š” ์…ˆ์ด๋‹ค.๋ณ€์ˆ˜ ์‚ฌ์ด์— ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ตฌํ˜„์ด ๊ฐ์ถฐ์ง€์ง„ ์•Š๊ธฐ์— ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.๊ฐ์ฒด ↔ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ์ฒดObject๋Š” ์ถ”์ƒํ™” ๋’ค๋กœ ์ˆจ๊ธด ์ฑ„ ํ•จ์ˆ˜๋งŒ ๊ณต๊ฐœํ•œ๋‹ค.์ž๋ฃŒ๊ตฌ์กฐ๋Š”Data structure ์ž๋ฃŒ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณต๊ฐœํ•˜๋ฉฐ ๋ณ„๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.๋‘ ๊ฐœ๋…์€ ๊ฑฐ์˜ ์ •๋ฐ˜๋Œ€๋‹ค. ์•„๋ž˜ ๊ฐ™์€ ๋‚ด์šฉ์˜ ์ฝ”๋“œ๋ฅผ ์ ˆ์ฐจ์ง€ํ–ฅ/๊ฐ์ฒด์ง€ํ–ฅ ๊ตฌ์กฐ๋กœ ์•Œ์•„๋ณด์ž.์ ˆ์ฐจ์ง€ํ–ฅ ๊ตฌ์กฐ๊ฐ์ฒด์ง€ํ–ฅ ๊ตฌ์กฐ ์ด๋ ‡๋“ฏ ๊ฐ์ฒด์ง€ํ–ฅ/์ ˆ์ฐจ์ง€ํ–ฅ ๊ตฌ์กฐ๋Š” ๋ฐ˜๋Œ€๋˜๋ฉฐ ๊ฐ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ๊ธฐ์กด ์ž๋ฃŒ๊ตฌ์กฐ(๋„ํ˜•)๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๊ณ ↔ ์ž๋ฃŒ ๊ตฌ์กฐ class๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.๊ฐ์ฒด์ง€ํ–ฅ์€ ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค.↔ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ..

๐Ÿ“œ CleanCode 2024.09.23

[CleanCode]ํ˜•์‹ ๋งž์ถ”๊ธฐ

์ฝ”๋“œ ํ˜•์‹์€ ์˜์‚ฌ์†Œํ†ต์ด๋‹คํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ ์ˆ˜๋ก ์ˆ˜๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ํด๋ž˜์Šค๋ฅผ ๋ณด๊ฒŒ ๋  ํ…๋ฐ ๊ฐœ๋ฐœ์ž๋งˆ๋‹ค ๊ณ ์œ ์˜ ์Šคํƒ€์ผ๋กœ ์ฝ”๋“œ๋ฅผ ์ ์–ด๋‘์—ˆ๋‹ค๋ฉด ์ƒ๋‹นํžˆ ์ฝ๊ธฐ ํž˜๋“ค ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์ดˆ๊ธฐ์— tab์˜ ํฌ๊ธฐ์™€ font, ์ฃผ์„ํ˜•์‹์„ ๋ชจ๋‘ ์ •ํ•ด๋‘๊ณ  ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑธ ์ผ์ผํžˆ ๊ฒ€์‚ฌํ•  ์ˆ˜๋Š” ์—†์œผ๋‹ˆ๊นŒ sonarQube๋ฅผ ์ด์šฉํ•ด ํ˜•์‹์„ ๊ฒ€์‚ฌํ•˜๋ฉด ํ˜•์‹์— ๋งž์ง€ ์•Š๋Š” ์ฝ”๋“œ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ ์ ˆํ•œ ํ–‰(์„ธ๋กœ) ๊ธธ์ด Lines์ฑ…์— ๋”ฐ๋ฅด๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” tomcat ๋“ฑ ๊ฑฐ๋Œ€ํ•œ ์‹œ์Šคํ…œ๋„ ํด๋ž˜์Šค์˜ ๊ธธ์ด๊ฐ€ ๋Œ€๊ฐœ 200์ค„์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ž‘์€ ํŒŒ์ผ๋“ค๋กœ๋„ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฆ๊ฑฐ๋‹ค.๊ฐ€๋กœ ํ˜•์‹ ๋งž์ถ”๊ธฐ์‹ ๋ฌธ ๊ธฐ์‚ฌ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋ผ๋…์ž๋Š” ์‹ ๋ฌธ์„ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ๋Š”๋‹ค.์ตœ์ƒ๋‹จ์— ๊ฐ€์žฅ ํฐ ํ‘œ์ œ๊ฐ€ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์ด ์ ํ˜€์žˆ๋‹ค.์ด๋ฆ„์€ ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ์„ค..

๐Ÿ“œ CleanCode 2024.09.21

[CleanCode]๋‚˜์œ ์ฃผ์„

์ฃผ์ ˆ๊ฑฐ๋ฆฌ๋Š” ์ฃผ์„์ž‘์„ฑํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜์–ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊นŒ์ง€ ๋’ค์ ธ์•ผํ•˜๋Š” ์ฃผ์„์€ ์ข‹์ง€ ์•Š๋‹ค.๊ฐ™์€ ์ด์•ผ๊ธฐ๋ฅผ ์ค‘๋ณตํ•˜๋Š” ์ฃผ์„.์žˆ์œผ๋‚˜ ๋งˆ๋‚˜ ํ•œ ์ฃผ์„ ์˜คํ•ด์˜ ์—ฌ์ง€ํ˜น์€์‚ด์ง ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ์ฃผ์„์˜๋ฌด์ ์œผ๋กœ ๋‹ค๋Š” ์ฃผ์„์ด๋ ฅ์„ ๊ธฐ๋กํ•˜๋Š” ์ฃผ์„2024.10.14 - [๐Ÿ›  ๋„๊ตฌ/โžฐ Visual Studio] - [VScode]GitLens์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ฃผ์„๊ณต๋กœ๋ฅผ ๋Œ๋ฆฌ๊ฑฐ๋‚˜ ์ €์ž๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ฃผ์„์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ์ฝ”๋“œHTML์ฃผ์„์ „์—ญ ์ •๋ณด์ฃผ์„์„ ๋‹ฌ ๋• ๊ทผ์ฒ˜์— ์žˆ๋Š” ์ฝ”๋“œ๋งŒ ๊ธฐ์ˆ ํ•˜๋ผ.์‹œ์Šคํ…œ ์ „๋ฐ˜์  ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.ex) ํฌํŠธ๊ฐ’ ์ •๋ณด ๋“ฑ๋„ˆ๋ฌด ๋งŽ์€ ์ •๋ณด๋ชจํ˜ธํ•œ ๊ด€๊ณ„ํ•จ์ˆ˜ ํ—ค๋”

๐Ÿ“œ CleanCode 2024.09.20

[CleanCode]์ข‹์€ ์ฃผ์„

๋ฒ•์ ์ธ ์ฃผ์„์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ฃผ์„ ์˜๋„๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„.์˜๋„๋ฅผ ๋ช…๋ฃŒํ•˜๊ณ  ๋ฐํžˆ๋Š” ์ฃผ์„.๊ฒฐ๊ณผ๋ฅผ ๊ฒฝ๊ณ ํ•˜๋Š” ์ฃผ์†Œ์˜ˆ์ „์—๋Š” ์ด๋Ÿฌํ•œ ๋„ˆ๋ฌด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ฝ”๋“œ๋ฅผ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ์•ž์— _ ๋ฅผ ๋ถ™์ด๋Š” ๊ฒŒ ๊ด€๋ก€์˜€๋‹ค๊ณ  ํ•œ๋‹ค.์š”์ฆ˜์—๋Š” @Ignore ์†์„ฑ์— ๋ฌธ์ž์—ด๋กœ ๋„ฃ์–ด์ค€๋‹ค๊ณ  ํ•œ๋‹ค.ex:  @Ignore("์‹คํ–‰์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.")(Junit์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ Mavenํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ)TODO / FIXME ์ฃผ์„ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋ฉด..์•„์ง ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•  ์ง€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๋ถ€๋ถ„๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋Ÿฐ ๊ฒฝ์šฐ์— TODO์ฃผ์„์„ ๋‹ฌ์•„ ๋‘ก๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ TODO /  FIXME ์ฃผ์„์€ ๊ผญ ํ•„์š”ํ•˜๊ณ  ํ™•์ธํ•ด์•ผํ•  ์ฃผ์„์ž…๋‹ˆ๋‹ค.์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•˜๋Š” ์ฃผ์„

๐Ÿ“œ CleanCode 2024.09.20

[CleanCode]์ฃผ์„-์ด๋ž€

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

๐Ÿ“œ CleanCode 2024.09.18

[CleanCode]ํ•จ์ˆ˜-๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ถ€์ˆ˜ํšจ๊ณผ๋ฅผ ์ผ์œผํ‚ค์ง€ ๋งˆ๋ผ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งž๊ฒŒ ์ž…๋ ฅ๋˜์—ˆ๋Š” ์ง€ ํ™•์ธ๋งŒ ํ•˜๋Š” ํ•จ์ˆ˜์˜€๋Š”๋ฐํ‹€๋ฆด ์‹œ Session์„ ๋‚ ๋ ค๋ฒ„๋ฆฌ๋Š” ์‹์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.๋ช…๋ น๊ณผ ์กฐํšŒ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ผ๋ณด๋ฉด ๋‘๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ๋กœ๊ทธ์ธํ™•์ธ (์กฐํšŒ)๊ฐ’ ์ €์žฅ (๋ช…๋ น)์ด๋Ÿฐ ๋‚˜๋ˆ ์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค.์˜ค๋ฅ˜ ์ฝ”๋“œ ๋ณด๋‹ค๋Š”์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—๋งŒ์•ฝ ๋กœ๊ทธ์ธ ์‹คํŒจ ์‹œ ์—๋Ÿฌ๋ฅผ ๊ทธ ๋•Œ ๊ทธ ๋•Œ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ณดํ†ต try/catch๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๊ทธ ์ „์—→ if/else๋กœ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ง€ ์•Œ์•„๋ณด์ž.try/catch๋ธ”๋ก์„ ๋ฝ‘์•„๋‚ด์„œ์˜ˆ์™ธ๋„ ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ์˜ค๋ฅ˜๋„ ํ•œ๊ฐ€์ง€ ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์—์˜ค์ง ์˜ค๋ฅ˜๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ํ•จ์ˆ˜๊ฐ€ ํด์ˆ˜๋ก Single entry-exit rule ์ ์šฉ..

๐Ÿ“œ CleanCode 2024.09.16

[CleanCode]ํ•จ์ˆ˜-์ธ์ˆ˜ Arguments

์‹œ์ž‘ํ•˜๊ธฐ ์ „ ์šฉ์–ด์— ๋Œ€ํ•ดParameter: ๋งค๊ฐœ ๋ณ€์ˆ˜. ์„ ์–ธ๋œ ํ•จ์ˆ˜์—์„œ ์ง€์ •ํ•œ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ. Argument: ์ธ์ˆ˜. ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’.ํ•จ์ˆ˜๋ช…๊ณผ ์ธ์ˆ˜๋ช…์€ ํ•œ ์Œ์ด์–ด์•ผ ํ•œ๋‹ค.์ด์ƒ์ ์ธ ์ธ์ˆ˜ ๊ฐœ์ˆ˜๋Š”0๊ฐœ์ธ์ˆ˜๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ์ธ์ˆ˜๋“ค์ด ํ•จ์ˆ˜ ๋‚ด ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š” ์ง€ ์ฐพ์•„์•ผ ํ•˜๋ฏ€๋กœ์ธ์ˆ˜๋Š” ์ ์„ ์ˆ˜๋ก ์ข‹๋‹ค.3๊ฐœ ์ด์ƒ์€ ์ตœ๋Œ€ํ•œ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.๋งŽ์ด ์“ฐ๋Š” ๋‹จํ•ญ(1๊ฐœ) ํ˜•์‹(์ถ”์ฒœ)์ดํ•ญ ํ•จ์ˆ˜ ์ดํ•ญ ํ•จ์ˆ˜์™€ ๋ฌด์กฐ๊ฑด ๋‚˜์œ ๊ฑด ์•„๋‹ˆ์ง€๋งŒ๋˜๋„๋ก ๋‹จํ•ญํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ์–ด ์“ธ ์ˆ˜ ์žˆ๊ฒŒ method ๋˜๋Š” class๋ฅผ ์ด์šฉํ•ด ๋ถ„๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค.์‚ผํ•ญ ํ•จ์ˆ˜flag(boolean) ์ธ์ˆ˜์ธ์ˆ˜ ๋ชฉ๋ก: ์ธ์ˆ˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€๋ณ€์ ์ธ ํ•จ์ˆ˜ ํ™œ์šฉex) String.format()์ถœ๋ ฅ ์ธ์ˆ˜๋ฅผ ํ”ผํ•˜๋ผ

๐Ÿ“œ CleanCode 2024.09.06

[CleanCode]ํ•จ์ˆ˜-๋Š” ์ž‘๊ฒŒ+๋‚ด๋ ค๊ฐ€๊ธฐ ๊ทœ์น™

ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ๋‹จ์œ„ :ํ•จ์ˆ˜  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ดˆ์ฐฝ๊ธฐ์—๋Š” ์‹œ์Šคํ…œ์„ ๋ฃจํ‹ด๊ณผ ํ•˜์œ„๋ฃจํ‹ด์œผ๋กœ ๋‚˜๋ˆด๊ณ ํฌํŠธ๋ž€๊ณผ PL/1 ์‹œ์ ˆ์—๋Š” ์‹œ์Šคํ…œ์„ ํ”„๋กœ๊ทธ๋žจ, ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ, ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆด๋‹ค.์ง€๊ธˆ์€ ํ•จ์ˆ˜๋งŒ ๋‚จ์•„์žˆ๋‹ค.  ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ.๊ฐ€๋กœ 150์ž, ์„ธ๋กœ 100์ค„์„ ๋„˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.  ์ฑ…์—์„œ๋Š” 20์ค„๋„ ๊ธธ๋‹คํ•œ๋‹ค.์ด๋ ‡๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜์ž๋ฉด์ œ์–ด๋ฌธ is/else๋ฌธ while๋ฌธ ๋“ฑ์— ๋“ค์–ด๊ฐ€๋Š” ๋ธ”๋ก์€ ํ•œ์ค„์ด์–ด์•ผ ํ•œ๋‹ค.๋Œ€๊ฐœ ๊ฑฐ๊ธฐ์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.๋”ฐ๋ผ์„œ if๋ฌธ ์•ˆ์— ๋‹ค์‹œ if๋ฌธ์„ ์“ฐ๋Š” ์‹์˜์ค‘์ฒฉ ์ œ์–ด๋ฌธ 2๋‹จ์„ ์ดˆ๊ณผํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.ํ•จ์ˆ˜๋Š” ํ•œ๊ฐ€์ง€๋ฅผ ํ•ด์•ผํ•œ๋‹ค ๊ทธ ํ•œ๊ฐ€์ง€๋ฅผ ์ž˜ํ•ด์•ผ ํ•œ๋‹ค.ํ•จ์ˆ˜์˜ ์˜๋ฏธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์ˆ˜์ค€๊นŒ์ง€ ์ค„์ธ๋‹ค.ํ•จ์ˆ˜ ์•ˆ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด→๊ทธ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ํ•˜๋Š” ์…ˆ์ด๋‹ค. ๋‚ด๋ ค๊ฐ€๊ธฐ ๊ทœ์น™ ์ฐธ๊ณ ๋กœ ์ฑ… ์ €์ž๊ฐ€ ๋งŒ๋“  ๊ทœ์น™์ด๋ฆ„์ธ..

๐Ÿ“œ CleanCode 2024.08.14

[CleanCode]์˜๋ฏธ์žˆ๋Š” ์ด๋ฆ„-๋งฅ๋ฝ

๊ธฐ์ˆ  ๊ฐœ๋… ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ผ์ ์ž˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ ์šฉ์–ด๊ฐ€ ์—†๋‹ค๋ฉด๋ฌธ์ œ ์˜์—ญ์—์„œ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค. ๋งฅ๋ฝ์„ ์ถ”๊ฐ€ํ•˜๋ผ ํ•จ์ˆ˜๋ฅผ ๋๊นŒ์ง€ ๋ชจ๋‘ ์ฝ๊ณ ์„œ์•ผ if/else๋ฌธ์—์„œ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜์—ˆ๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.์œ„ ์ฝ”๋“œ๋ฅผ ๋งฅ๋ฝ์žˆ๋Š” ์ฝ”๋“œ๋กœ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ ์„ ์ˆ˜ ์žˆ๋‹ค.  ๋ถˆํ•„์š”ํ•œ ๋งฅ๋ฝ์„ ์—†์• ๋ผGas Station Deluxe๋ผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ ์ž ํ•  ๊ฒฝ์šฐGSD๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ชจ๋“  ํŒŒ์ผ์˜ ์•ž์— ๋ถ™์ด๋ฉด IDE์—์„œ ๊ฒ€์ƒ‰์ด ํž˜๋“ค์–ด์ง„๋‹ค.์›น์ฃผ์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค๋ฉดPostAddress, MAC, URI๋ผ๋Š” ์ด๋ฆ„๋“ค๋„ ๊ดœ์ฐฎ๋‹ค.

๐Ÿ“œ CleanCode 2024.08.11