๐Ÿ“œ CleanCode

[CleanCode]์˜ค๋ฅ˜์ฒ˜๋ฆฌ-์ •์ƒ ํ๋ฆ„์„ ์ •์˜ํ•˜๋ผ

๋‰ด์ด NUEY 2024. 9. 28. 18:57
๋ฐ˜์‘ํ˜•

 

ํŠน์ˆ˜ ์‚ฌ๋ก€ ํŒจํ„ด
Special Case Pattern

์—ฌ๊ธฐ์—์„œ catch๋ธ”๋ก์˜ ์‹๋น„๋ฅผ ์ฒญ๊ตฌํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ 'ํŠน์ˆ˜ ์‚ฌ๋ก€'๋ผ๊ณ  ํ•ด๋ณด์ž.
Dao๋กœ ์ฒญ๊ตฌํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊นŒ์ง€ SQL์ด๋‚˜ ์ฝ”๋“œ๋กœ ๋ถ„๋ฅ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ตณ์ด ์˜ˆ์™ธ๋ฅผ ์ฐพ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

ํŠน์ˆ˜ ์‚ฌ๋ก€ ํŒจํ„ด์ด๋ž€?
ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋กœ ์กฐ์ž‘ํ•ด ํŠน์ˆ˜ ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

ํ•œ๋งˆ๋””๋กœ ์˜ˆ์™ธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์„ ์บก์Šํ™”ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๊ธธ ๊ถŒ์žฅํ•œ๋‹ค.

null์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ๋ผ
๋Œ€์‹  Colloections.emptyList()๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ผ

ํ•œ ์ค„ ๊ฑด๋„ˆ ํ•˜๋‚˜์”ฉ null์„ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ

  • null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ผ๊ฑฐ๋ฆฌ๋ฅผ ๋Š˜๋ฆฌ๊ณ  ํ˜ธ์ถœ์ž์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ๋„˜๊ฒจ๋ฒ„๋ฆฐ๋‹ค.
  • ๋ˆ„๊ตฌ ํ•œ๋ช…์ด๋ผ๋„ nullํ™•์ธ์„ ๋นผ๋จน๋Š”๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ†ต์ œ ๋ถˆ๋Šฅ ์—๋Ÿฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค

Collections.emptyList()
๋ฐ˜ํ™˜ํƒ€์ž…์ด List๋ผ์„œ ์ฟผ๋ฆฌ๋กœ ๋ญ”๊ฐ€๋ฅผ ์กฐํšŒํ•ด์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ •๋ง ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ •ํ™•ํžˆ๋Š” Dao์—์„œ ์กฐํšŒ๋œ ์ž๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ์ ๊ธฐ ์ ํ•ฉํ•  ๊ฒƒ ๊ฐ™๊ตฌ์š”.
* ํ•˜์ง€๋งŒ ์šฐ์„  ์ฟผ๋ฆฌ๊ฐ€ ์ •์ƒ์ž‘๋™ํ•˜๋Š” ์ง€ ํ™•์ธ์„ ๋‹ค ํ•˜๊ณ ๋‚˜์„œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ๋งž๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

null์„ ์ „๋‹ฌํ•˜์ง€ ๋งˆ๋ผ

์ธ์ˆ˜argument๋กœ null์„ ์ „๋‹ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
NullPointerException์ด ์ผ์–ด๋‚œ๋‹ค.

๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋“ค์€ null์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์€ ์ถ”๊ฐ€ํ•œ๋‹ค
ํ•˜์ง€๋งŒ ์ด๋Š” ์ข‹์ง€ ์•Š๋‹ค.
์• ์ดˆ์— Null์„ ๋„˜๊ธฐ์ง€ ๋ชปํ•˜๋„๋ก ๊ธˆ์ง€ํ•˜๋Š” ์ •์ฑ…์ด ํ•ฉ๋ฆฌ์ ์ด๋‹ค.

๊ฒฐ๋ก 
ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ a๋ฅผ ํด๋ฆญํ•˜๋ฉด b๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋…ผ๋ฆฌํ๋ฆ„์ด ์žˆ๋‹ค.
์—ฌ๊ธฐ์—์„œ ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํ•ฉ๋‹นํ•˜๋‹ค.

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

null์€ ์ „๋‹ฌ๋„ ๋ฐ˜ํ™˜๋„ ๊ธˆํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•