โœ”๏ธBook 11

[๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] ์Šคํ„ฐ๋”” ๋ชจ์ง‘ ๋ฐ ์‹œ์ž‘. Chapter 1. ๋ฆฌํŒฉํ„ฐ๋ง: ์ฒซ ๋ฒˆ์งธ ์˜ˆ์‹œ

Background 6๊ฐœ์›” ์ฐจ ๊ฐœ๋ฐœ์ž ์ •๋„ ๋˜์—ˆ์„ ๋•๊ฐ€ ์—ฐ๊ตฌํŒ€์—์„œ ์ž‘์„ฑ์ด ๋œ Machine learning ์ฝ”๋“œ๋“ค์„ production level๋กœ ๋งŒ๋“ค๊ณ  serving ํ•˜๊ธฐ ์œ„ํ•ด refactoring ํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋•Œ ๋™๋ฃŒ๋ถ„๊ป˜์„œ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ด ์ฃผ์‹  ์ฑ…์ด 'Clean code'์˜€๋‹ค. ๊ทธ ๋‹น์‹œ clean code ์ฑ…์„ ์ฝ์„ ๋•Œ๋Š” '์ข‹์€ ๋ง์ธ ๊ฑฐ ๊ฐ™๋‹ค..' ์ •๋„์ด์ง€ ์†”์งํžˆ ํฌ๊ฒŒ ์™€๋‹ฟ๊ฑฐ๋‚˜ '์•„ ์•ž์œผ๋กœ ๋‚ด ์—…๋ฌด์— ์ด๋Ÿฐ ๊ฒƒ๋“ค ์ ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ์„ ๋ช…์‹ฌํ•ด์•ผ๊ฒ ๋‹ค' ์ •๋„์˜ ๊นจ๋‹ฌ์Œ์€ ์—†์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ 1๋…„์ด ํ๋ฅด๊ณ  ์˜ฌํ•ด 2022๋…„ 1์›”, ์ƒˆํ•ด ๋ฒ„ํ”„๋ฅผ ๋ฐ›์•„ ๊ทธ ์œ ๋ช…ํ•˜๋‹ค๋Š” Clean code (์ผ๋‹จ ๋‹ค์‹œ ์ฝ์–ด๋ณด์ž)๋ฅผ ํ–ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ฒ˜์Œ ์ฝ๊ณ  ๋‚˜์„œ 6๊ฐœ์›” ์‚ฌ์ด ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ ๋ณด๊ณ  ๋ฐฐ์šด ๊ฑด ์žˆ์—ˆ๋Š”์ง€ ์ฒซ ..

[์˜ค๋ธŒ์ ํŠธ] Chapter 1. ๊ฐ์ฒด, ์„ค๊ณ„

์˜ค๋ธŒ์ ํŠธ (์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„) - ์กฐ์˜ํ˜ธ ์ €๋ฅผ ์ฝ๊ณ , ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด ์ฑ…์˜ ๋ชฉ์  ์ข‹์€ ์„ค๊ณ„๋ž€ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ ํ›Œ๋ฅญํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์›์น™๊ณผ ๊ธฐ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ ์ฝ๊ธฐ ์ „ ์งˆ๋ฌธ๊ณผ ์ฝ์€ ํ›„ ๋‹ต๋ณ€ Chapter 1 ๋‘˜์งธ ์žฅ ๊นŒ์ง€ ์ฝ๊ณ  ์ด๋ผ๊ณ  ์ •๋ฆฌํ•œ ํ›„ ๋“  ์งˆ๋ฌธ์„ ์ ์–ด๋ณด์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  Chapter 1 ๋๊นŒ์ง€ ์ฝ์€ ํ›„ ๊ฐ ์งˆ๋ฌธ์˜ ๋‹ต๋ณ€์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์„ ๋‚˜๋ฆ„๋Œ€๋กœ ์ฑ„์›Œ ๋„ฃ์–ด ๋ณด์•˜๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€ โ‡’ Chapter 2. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—์„œ ์กฐ๊ธˆ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์œผ๋ฉฐ ์ด ์ฑ… ์ „๋ฐ˜์„ ํ†ตํ•ด ์ ์ฐจ ์•Œ๊ฒŒ ๋˜์–ด๊ฐ€์ง€ ์•Š์„๊นŒ? ์„ค๊ณ„๋ž€ ๋ฌด์—‡์ธ๊ฐ€ โ‡’ ์ฑ…์—์„œ ์ œ์‹œํ•˜๋Š” ์„ค๊ณ„๋ž€, โ€˜์ฝ”๋“œ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.โ€™ ์ข‹์€ ์„ค๊ณ„๋ž€ ๋ฌด์—‡์ธ๊ฐ€ โ‡’ ์ฑ…์—์„œ ์ œ์‹œํ•˜..

[Clean code] Chapter 12. Emergence (์ฐฝ๋ฐœ์  ์„ค๊ณ„๋กœ ๊น”๋”ํ•œ ์ฝ”๋“œ ๊ตฌํ˜„ํ•˜๊ธฐ)

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ฐฝ๋ฐœ์„ฑ์ด๋ž€ ์ด ์ฑ…์—์„œ ์ฐฝ๋ฐœ์„ฑ์ด๋ž€ ๋‹จ์–ด๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๋‹ค. ์œ„ํ‚ค๋ฅผ ์ฐพ์•„๋ณด๋ฉด ์ฐฝ๋ฐœ(ๅ‰ต็™ผ)๋˜๋Š” ๋– ์˜ค๋ฆ„ ํ˜„์ƒ์€ ํ•˜์œ„ ๊ณ„์ธต(๊ตฌ์„ฑ ์š”์†Œ)์—๋Š” ์—†๋Š” ํŠน์„ฑ์ด๋‚˜ ํ–‰๋™์ด ์ƒ์œ„ ๊ณ„์ธต(์ „์ฒด ๊ตฌ์กฐ)์—์„œ ์ž๋ฐœ์ ์œผ๋กœ ๋Œ์—ฐํžˆ ์ถœํ˜„ํ•˜๋Š” ํ˜„์ƒ์ด๋‹ค. ์ด๋ผ๊ณ  ์ ํ˜€์žˆ๋‹ค. ์ฆ‰, ์ž‘์€ ์š”์†Œ๋“ค์˜ ์ƒํ˜ธ์ž‘์šฉ์˜ ๋ฐ˜๋ณต์ด ์ „์ฒด ๊ตฌ์กฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ ์„ ์ฐฝ๋ฐœ์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ๋Š” ๊ฐœ๋ฐœ์—์„œ๋„ ๋‹จ์ˆœํ•œ 4๊ฐ€์ง€ ๊ทœ์น™์„ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋ฉด Clean code, ์šฐ์ˆ˜ํ•œ ์„ค๊ณ„๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค๊ณ  ํ•˜๋ฉฐ 4๊ฐ€์ง€ ๊ทœ์น™์„ ์†Œ๊ฐœํ•œ๋‹ค. 1. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ผ. ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”์„ฑ์€ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ๋‚˜์™”๋‹ค. [Clean code] Chapter..

[Clean code] Chapter 11. System

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์žฅ์„ ์ฝ์œผ๋ฉด์„œ ๋จธ๋ฆฌ๊ฐ€ ๋งŽ์ด ๋ณต์žกํ–ˆ๋‹ค. ์•„์ง๊นŒ์ง€๋„ ์‹œ์Šคํ…œ์ด๋ผ๋Š”๊ฑด ๋„ˆ๋ฌด ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ๋งŒ ๋Š๊ปด์ ธ์„œ ์˜จ๋ณด๋”ฉ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐฐ์šด 3 Layer Architecture์™€ Dependency Injection, ๋จธ์‹ ๋Ÿฌ๋‹ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŽ™ํ† ๋ง ํ•  ๋•Œ ๋จธ๋ฆฌ์‹ธ๋งค๋ฉฐ ๊ณ ๋ฏผํ•œ class์˜ ์ ์ ˆํ•œ ์‚ฌ์šฉ, ๋””์ž์ธ ํŒจํ„ด ์•„์ง๋„ ๋ˆ„๊ฐ€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋ญ๋ƒ๊ณ  ๋ฌผ์–ด๋ณด๋ฉด ์–ด๋ฒ„๋ฒ„ ํ•  ๊ฒƒ ๊ฐ™์€ ๊ทธ ๊ฐ์ฒด ์ง€ํ–ฅ ํ™•์žฅ์„ฑ, ์„ค๊ณ„, ... ๋” ๋‚˜์•„๊ฐ€์„  MSA, ์• ์ž์ผ๊นŒ์ง€.. ์‹ค๋ฌด์—์„œ ๊ฒฝํ—˜ํ•˜๊ธด ํ–ˆ์ง€๋งŒ ์•„์ง ๋‚ด ์•ˆ์—์„œ๋Š” ์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์ฑ„ ํŒŒํŽธํ™”๋˜์–ด ์žˆ๋Š” ๊ฐœ๋…๊ณผ ๊ฒฝํ—˜๋“ค์ด ๋– ์˜ฌ๋ž๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ ๋™์‹œ์— ์•ž์œผ๋กœ ์ถ”๊ตฌ..

[Clean code] Chapter 09. Unit test

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ ์ œ๋Œ€๋กœ ๋œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. 1. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์‹ค์ˆ˜๋ฅผ ๋ฐ”๋กœ ์žก์•„์ค€๋‹ค. ์ฝ”๋“œ์— ์œ ์—ฐ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฒ„ํŒ€๋ชฉ์ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์—†๋‹ค๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ์ด ์ž ์ •์ ์ธ ๋ฒ„๊ทธ์ธ ๋ฐ˜๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉด ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ๋‘๋ ต์ง€ ์•Š๋‹ค. ๊ทธ๋ž˜์„œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋†’์„ ์ˆ˜๋ก ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ๊ณตํฌ๊ฐ€ ์ค„์–ด๋“ ๋‹ค. ๊ฐ•์˜์—์„œ ์ถ”์ฒœ ํ•ด ์ค€ ์ฑ… 'Effective Unit Testing - ๋ผ์Ž„ ์ฝ”์Šค์ผˆ๋ผ' ์—์„œ ๋งํ•˜๋Š” ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”์„ฑ์—๋Š” ํ…Œ์ŠคํŠธ๋Š” ์‹ค์‚ฌ์šฉ์— ์ ํ•ฉํ•œ ์„ค๊ณ„๋ฅผ ๋Œ์–ด๋‚ด์ค€๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด์„œ..

[Clean code] Chapter 08. ๊ฒฝ๊ณ„

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๊ฒฝ๊ณ„๋ผ๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ ์ฝ”๋“œ์™€ ์™ธ๋ถ€ ์ฝ”๋“œ์˜ ๊ตฌ๋ถ„์ด๋‹ค. ์˜คํ”ˆ์†Œ์Šค, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ๋Š” ์—†๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์‹œ์Šคํ…œ์— ๋“ค์–ด๊ฐ€๋Š” SW๋ฅผ ์ง์ ‘ ๊ฐœ๋ฐœ ํ•˜๊ธฐ๋ณด๋‹ค ์™ธ๋ถ€ ์ฝ”๋“œ๋ฅผ ์šฐ๋ฆฌ ์ฝ”๋“œ์— ๊น”๋”ํ•˜๊ฒŒ ํ†ตํ•ฉํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ธด๋‹ค. ๋˜ํ•œ ์™ธ๋ถ€ ์ฝ”๋“œ ์‚ฌ์šฉ์‹œ ํ•ด๋‹น ์ฝ”๋“œ์˜ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต์ž์™€ ์‚ฌ์šฉ์ž๋Š” ์ด๋Ÿฐ ๊ฒฝ๊ณ„์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต์ž๋Š” ์ž์‹ ์˜ ์ฝ”๋“œ์˜ ์ ์šฉ์„ฑ์„ ์ตœ๋Œ€ํ•œ ๋„“ํžˆ๊ณ ์ž ํ•˜๋Š” ๋ฐ˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ์š”๊ตฌ์— ์ง‘์ค‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์›ํ•œ๋‹ค. ์ด๋Ÿฐ ์ž…์žฅ ์ฐจ์ด๊ฐ€ ์‹œ์Šคํ…œ ๊ฒฝ๊ณ„์—์„œ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋•Œ ์šฐ๋ฆฌ ์ฝ”๋“œ์™€ ์™ธ๋ถ€ ์ฝ”๋“œ์˜ ๊ฒฝ๊ณ„..

[Clean Code] Chapter 04. ์ฃผ์„, Chapter 05. ํฌ๋งทํŒ…

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”๋ฅผ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. Chapter 04. ์ฃผ์„ ์ž˜ ๋‹ฌ๋ฆฐ ์ฃผ์„์€ ๊ทธ ์–ด๋–ค ์ •๋ณด๋ณด๋‹ค ์œ ์šฉํ•˜๋‹ค. ๋ฐ˜๋ฉด ๊ฒฝ์†”ํ•˜๊ณ  ๊ทผ๊ฑฐ์—†๋Š” ์ฃผ์„, ์˜ค๋ž˜๋˜๊ณ  ์กฐ์žกํ•œ ์ฃผ์„์€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ณ , ๊ฑฐ์ง“๊ณผ ์ž˜๋ชป๋œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ๊ทธ๋ž˜์„œ '(๊ทธ๋Ÿด ๊ฑฐ๋ฉด) ์ฃผ์„์„ ์ตœ๋Œ€ํ•œ ์“ฐ์ง€ ๋ง์ž' ๋ผ๋Š” ๋ง์ด ์™œ ๋‚˜์™”๋Š”์ง€ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค. ์ž‘๋…„ ๋ง, ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ•œ ๋ฒˆ์— 30๊ฐœ๊ฐ€ ๋„˜๋Š” ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ณค ํ–ˆ๋‹ค. ๊ทธ ์ค‘์— 1/3์€ ๋‹ค๋ฆ„์•„๋‹Œ '์ฃผ์„'์— ๊ด€๋ จ๋œ ๊ฒƒ์ด์—ˆ๋‹ค. ์ด์ „๊นŒ์ง€๋Š” ์ฃผ์„์— ๋Œ€ํ•ด ํฌ๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  TODO ์ •๋„๋งŒ ๋‚จ๊ฒผ์—ˆ์—ˆ๋Š”๋ฐ ์ด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ํ›„ ๊ทธ์— ๋Œ€ํ•ด์„œ ํ† ๋ก ํ•˜๊ณ , ์ˆ˜์ •ํ•ด๋ณด๋‹ˆ ํฌ๊ฒŒ ๋ฐฐ์šด ๊ฒƒ์ด ์žˆ๋‹ค. ์ฃผ..

[Clean Code] Chapter 03. ํ•จ์ˆ˜

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , clean code ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๋ณด์ถฉ ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ˜„์—…์—์„œ ์–ด๋–ค code๋ฅผ refactoring ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ ๋•Œ 1. ํ•จ์ˆ˜ ์ธ์ž๊ฐ€ 8๊ฐœ๊ฐ€ ๋„˜์–ด๊ฐ€๊ณ , 2. ํ•œ ํŒŒ์ผ์— ๋ชจ๋“  ํ•จ์ˆ˜๊ฐ€ ๋ชจ์—ฌ์žˆ๊ณ  3. ํ•œ ํ•จ์ˆ˜์— ๊ธฐ๋Šฅ๊ณผ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์„ž์—ฌ์žˆ์–ด์„œ ํ•œ ํ•จ์ˆ˜๋‹น ์ฝ”๋“œ๊ฐ€ ๋ฐฑ ๋ช‡ ์ค„์ด ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์•˜๋‹ค. ๊ทธ ๋•Œ ๋™๋ฃŒ๋ถ„๊ป˜์„œ Clean Code ์ฑ…์„ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ด์ฃผ์…จ๋Š”๋ฐ, ๊ทธ ๋‹น์‹œ์—๋Š” ์ด ๋งŽ์€ ๋‚ด์šฉ ์ค‘์— ์–ด๋–ค ๋ถ€๋ถ„์— ์ค‘์ ์„ ๋‘์–ด์„œ ์ฝ๊ณ  ์ ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์„์ง€ ๋ง‰๋ง‰ํ•œ ๋Š๋‚Œ์ด ๋“ค์—ˆ๋‹ค๋ฉด, ๊ทธ ์ผ์„ ๋‹ค ๋งˆ์น˜๊ณ  ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ํ๋ฅธ ์ง€๊ธˆ ์ด ์ฑ…์„ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ˆ ๊ฐ€์žฅ ๋งŽ์€ ๋„์›€์ด ๋œ ๋ถ€๋ถ„์ด ์ด chapter์ธ ๊ฒƒ ๊ฐ™๋‹ค. 1...

[Clean Code] Chapter 02. ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

Clean Code ํด๋ฆฐ ์ฝ”๋“œ - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด ์ € ๋ฅผ ์ฝ๊ณ , ํ•ด์„ค ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ๋ณด์ถฉ ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1. ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•œ ์ด๋ฆ„ ์•ฝ 3๊ฐœ์›” ์ „, ๋‚˜๋Š” ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ '๋‚˜์œ ์ฝ”๋“œ'๋ฅผ PRํ–ˆ๊ณ  INTERVAL1 = int(os.environ.get("INTERVAL1")) INTERVAL2 = int(os.environ.get("INTERVAL2")) ... ... ... if interval_flag == 1: logger.info("There is no messages to be processed yet or no instance to turn on") time.sleep(INTERVAL1) else: logger.info("wait for creating and setting t..

[Clean Code] Chapter 01. ๊นจ๋—ํ•œ ์ฝ”๋“œ

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

โ€‹