๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ์ž7

[Clean Code] 7์žฅ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ TIL (Today I Learned) 22.03.04~22.03.05 ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ 7์žฅ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ // ์˜ค๋ฅ˜ ์ฝ”๋“œ ์‚ฌ์šฉ public void sendShutDown() { DeviceHandle handle = getHandle(DEV1); if (handle != DeviceHandle.INVALID) { ... } } // ์˜ˆ์™ธ ์‚ฌ์šฉ public void sendShutDown() { try { DeviceHandle handle = getHandle(DEV1); } catch (DeviceShutDownError e) { logger.log(e); } } try-catch-finally ๋ฌธ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋ผ try ๋ธ”๋ก์—์„œ ๋ฌด์Šจ ์ผ์ด ์ƒ๊ธฐ๋“ ์ง€.. 2022. 3. 5.
[Clean Code] 6์žฅ ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ TIL (Today I Learned) 22.03.01 ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ 6์žฅ. ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์ž๋ฃŒ ์ถ”์ƒํ™” ๊ตฌํ˜„์„ ๊ฐ์ถ”๋ ค๋ฉด ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์กฐํšŒ ํ•จ์ˆ˜์™€ ์„ค์ • ํ•จ์ˆ˜๋กœ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฃฌ๋‹ค๊ณ  ํด๋ž˜์Šค๊ฐ€ ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ทธ๋ณด๋‹ค๋Š” ์ถ”์ƒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌํ˜„ใ…‡๋ฅด ๋ชจ๋ฅธ ์ฑ„ ์ž๋ฃŒ์˜ ํ•ต์‹ฌ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ์ง„์ •ํ•œ ์˜๋ฏธ์˜ ํด๋ž˜์Šค๋‹ค. ์ž๋ฃŒ/๊ฐ์ฒด ๋น„๋Œ€์นญ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ์—์„œ ์–ด๋ ค์šด ๋ณ€๊ฒฝ์€ ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ์—์„œ ์‰ฌ์šฐ๋ฉฐ, ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ์—์„œ ์–ด๋ ค์šด ๋ณ€๊ฒฝ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ์—์„œ ์‰ฝ๋‹ค! 1) ๊ฐ์ฒด : ๋™์ž‘์„ ๊ณต๊ฐœํ•˜๊ณ  ์ž๋ฃŒ๋ฅผ ์ˆจ๊ธด๋‹ค. - ์žฅ์  : ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค. - ๋‹จ์ : ๊ธฐ์กด ๊ฐ์ฒด์— ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค. 2) ์ž๋ฃŒ ๊ตฌ์กฐ(์ ˆ์ฐจ์ง€ํ–ฅ) : ๋ณ„๋‹ค๋ฅธ ๋™์ž‘ ์—†.. 2022. 3. 2.
[Clean Code] 4์žฅ ์ฃผ์„ TIL (Today I Learned) 22.02.25~22.02.26 ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ 4์žฅ ์ฃผ์„ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๋กœ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•ด, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์‹คํŒจ๋ฅผ ๋งŒํšŒํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์„์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋“œ๋งŒ์ด ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์œ ์ผํ•œ ์ถœ์ฒ˜๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” (๊ฐ„ํ˜น ํ•„์š”ํ• ์ง€๋ผ๋„) ์ฃผ์„์„ ๊ฐ€๋Šฅํ•œ ์ค„์ด๋„๋ก ๊พธ์ค€ํžˆ ๋…ธ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ฃผ์„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ - ์ธ์ˆ˜๋‚˜ ๋ฐ˜ํ™˜๊ฐ’์ด ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋Š” ์ฝ”๋“œ -> ์˜๋ฏธ๋ฅผ ๋ช…๋ฃŒํ•˜๊ฒŒ ๋ฐํžˆ๋Š” ์ฃผ์„ - ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฝ๊ณ ํ•  ๋ชฉ์  ์˜คํ•ดํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ์ฃผ์„ // this.closed๊ฐ€ true์ผ ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์„œ๋“œ๋‹ค. // ํƒ€์ž„์•„์›ƒ์— ๋„๋‹ฌํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค. public synchronized void waitForClose(fina.. 2022. 2. 26.
[ํด๋ฆฐ ์ฝ”๋“œ] 3์žฅ ํ•จ์ˆ˜ TIL (Today I Learned) 22.02.22~22.02.23 ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ 3์žฅ. ํ•จ์ˆ˜ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ - ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด๋“  ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‹จ์œ„๊ฐ€ ํ•จ์ˆ˜๋‹ค. - ํ•จ์ˆ˜๋Š” ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, if๋ฌธ/else๋ฌธ/while๋ฌธ์— ๋“ค์–ด๊ฐ€๋Š” ๋ธ”๋ก์€ ํ•œ ์ค„์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ์ด ๋ง์€ ์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ์ƒ๊ธธ๋งŒํผ ํ•จ์ˆ˜๊ฐ€ ์ปค์ ธ์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•จ์ˆ˜์—์„œ ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ค€์€ 1๋‹จ์ด๋‚˜ 2๋‹จ์„ ๋„˜์–ด์„œ๋ฉด ์•ˆ๋œ๋‹ค. - ๋‹จ์ˆœํžˆ ๋‹ค๋ฅธ ํ‘œํ˜„์ด ์•„๋‹ˆ๋ผ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•˜๋Š” ์…ˆ์ด๋‹ค[G34] -> ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ํ•˜๋‚˜์˜ ์ž‘์—…์ด๋‹ค! - ๊ฐ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ๊ฐ ํ•จ์ˆ˜๋Š” ์ผ์ •ํ•œ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์œ ์ง€ํ•œ๋‹ค. switch๋ฌธ swi.. 2022. 2. 23.