๐Ÿ“š Study/TLDR

[WebDev] Developer philosophy

์ ์ด 2025. 2. 5. 21:35
๋ฐ˜์‘ํ˜•

 

 

Developer philosophy @ Things Of Interest

Amazing as it may seem after all these years, there are still junior developers in the world. A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software de

qntm.org


 

๋ฏฟ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์˜ค๋žœ ์‹œ๊ฐ„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ์—ฌ์ „ํžˆ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋Š” ์กด์žฌํ•œ๋‹ค.

๋ช‡ ์ฃผ ์ „ ํšŒ์‚ฌ์—์„œ ๋‚˜๋ฅผ ํฌํ•จํ•œ ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ชจ์—ฌ ๊ฐ์ž์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ฒ ํ•™์— ๋Œ€ํ•ด ์•ฝ 5๋ถ„๋™์•ˆ ์ด์•ผ๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์šฐ๋ฆฌ์˜ ๋‹ค๋…„๊ฐ„์˜ ๊ฒฝํ—˜์„ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค.

์„ธ์…˜ ํ›„์—, ๋‚˜์˜ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๊ณ , ์•ฝ๊ฐ„์˜ ๋””ํ…Œ์ผ์„ ๋ง๋ถ™์ด๋ฉด ์ข€ ๋” ๊ฐ€์น˜์žˆ์„ ๊ฒƒ์ด๋ž€ ์ƒ๊ฐ์— ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค.

๋‚ด์šฉ์€ ๋‹ค์†Œ ์žก๋‹คํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งŒ์•ฝ ์ด๋ฏธ ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋‚ด์šฉ์ด ์ต์ˆ™ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค! ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์€ ๊ทน๋„๋ก ์ฃผ๊ด€์ ์ธ ๋ถ„์•ผ๋‹ˆ๊นŒ. 

Avoid, at all costs, arriving at a scenario where the ground-up rewrite starts to look attractive

(* ground-up rewrite: ์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ )

'์žฌ๊ฐœ๋ฐœ'์ด ๋งค๋ ฅ์ ์ด๋ฉด์„œ๋„ ๊ทน๋„๋กœ ์œ„ํ—˜ํ•œ ์„ ํƒ์ด๋ผ๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ์žฌ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋ณดํ†ต์˜ ์กฐ์–ธ์ด๋ผํ•˜๋ฉด "์ ˆ๋Œ€ ์•ˆ๋ผ". ๊ทธ๋Ÿฌ๋‚˜ ํ•œ๊ฑธ์Œ ๋ฌผ๋Ÿฌ๋‚˜์„œ ๋ณด์ž.

์žฌ๊ฐœ๋ฐœ์ด ์ข‹์€ ์ƒ๊ฐ์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด, 'ํ”ผํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹ค์ˆ˜'๊ฐ€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋‚œ ํ›„์ด๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์€ ๊ฐ‘์ž๊ธฐ ๋ฐœ์ƒํ•œ ๊ฒƒ์€ ์•„๋‹๊ฒƒ์ด๋ฉฐ, ์ถฉ๋ถ„ํžˆ ํ”ผํ•  ์ˆ˜ ์žˆ๊ณ  ํ”ผํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ๊ณ  ์‹ ํ˜ธ๊ฐ€ ๋ณด์ด๋ฉด ์กฐ์‹ฌํ•ด๋ผ.

- ๊ธฐ์ˆ  ๋ถ€์ฑ„์˜ ์ฆ๊ฐ€

- ๋‹จ์ˆœํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์ ์  ์–ด๋ ค์›Œ์ง

- ๋ฌธ์„œํ™”, ์ฃผ์„ ์ž‘์„ฑ์˜ ์–ด๋ ค์›€

- ์‹ ์ž… ๊ฐœ๋ฐœ์ž ์˜จ๋ณด๋”ฉ์˜ ์–ด๋ ค์›€

- ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์•„๋Š” ์‚ฌ๋žŒ์ด ์ค„์–ด๋“ฆ

- ์•„๋ฌด๋„ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๋ฒ„๊ทธ ๋ฐœ์ƒ

 

๋ณต์žก์„ฑ์ด ์ ์  ์ปค์ง€๋Š” ๊ฒƒ๊ณผ ํ•ญ์ƒ ๋งž์„œ๋ผ. ์‹ ๊ทœ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์™€ ๊ธฐ์กด ์‹œ์Šคํ…œ ์ •๋ฆฌ๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ์ˆ˜ํ–‰ํ•ด๋ผ.

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

Aim to be 90% done in 50% of the available time

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ์œ ๋ช…ํ•œ ๋ช…์–ธ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. - ์‚ฌ์‹ค ์ด๊ฑด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์™ธ์˜ ๋ถ„์•ผ์—์„œ ์œ ๋ž˜ํ–ˆ์„ ์ˆ˜ ์žˆ๋‹ค-

"์—…๋ฌด์˜ ์ฒซ 90%๋Š” 90%์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ๋งˆ์ง€๋ง‰ 10%๋Š” ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์˜ 90%์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค"

์ด ๋ง์€ ์•ฝ๊ฐ„ ์›ƒ๊ธฐ์ง€๋งŒ, ๋ช…๋ฐฑํžˆ ์‚ฌ์‹ค์ด๋‹ค. ์ด๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ถฉ๋ถ„ํžˆ ๊ณ ์น  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์ด๊ฒƒ์„ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”๋ฐ๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. ์ด๊ฒƒ์„ ํ–ˆ๋‹ค๋Š” ๊ฒƒ์€ ์•ฝ ๋ฐ˜์ •๋„๋ฅผ ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผํ•œ๋‹ค.

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

์ด ๋งŽ์€ ๊ฒƒ๋“ค์€ ์ด๋ก ์ ์œผ๋กœ๋Š” ์Šคํ‚ต ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค๋ฌด์—์„œ ์ด๊ฒƒ๋“ค์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๊ฒฐ๊ตญ ํ—ˆ์ˆ ํ•˜๊ณ  ์™„๋ฒฝํ•˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๋„ ๋‚˜์ค‘์— ์ด ์ผ์„ "์ œ๋Œ€๋กœ" ๋๋‚ด์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์–ธ์ œ๋‚˜ ํ• ์ผ์€ ์žˆ๋‹ค. ์„ธ, ๋„ค๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด, ๊ฒฐ๊ตญ ์กฐ์žกํ•œ ์ œํ’ˆ์ด ๋œ๋‹ค.

๋˜ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์žฅ์• ๋ฌผ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. ์ด ์žฅ์• ๋ฌผ์€ ๊ฐ€๋Šฅํ•œ ๋นจ๋ฆฌ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ๊ณ„ํšํ•œ ์ถ”๊ฐ€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ๋ฐํ˜€์ง„๋‹ค๋ฉด? ์ข‹๋‹ค, ํ”„๋กœ์„ธ์Šค ๊ฐœ์„  ํ•  ์‹œ๊ฐ„์ด๋‹ค! ๋˜๋Š” ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ํ•ด๊ฒฐํ•ด๋ผ!

 

Automate good practice

๋ณดํ†ต ํ”„๋กœ์ ํŠธ์—๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•ด์•ผํ•  ๊ฒƒ๊ณผ ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ํŠน์ •ํ•œ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. ์ƒˆ๋กœ์šด ์ตœ๊ณ ์˜ practice๊ฐ€ ์ƒ๊ธด๋‹ค. ์ผ๊ด€๋˜๊ฒŒ, ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํˆด, ํ•„์ˆ˜ ํ—ค๋”, ์‹คํ–‰ ์ „ ์ฒดํฌํ•ด์•ผํ•  ๊ฒƒ, ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ–ˆ๋˜ ๋ฉ”์†Œ๋“œ ๋“ฑ์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ์ƒ๊ธธ ๋•Œ, ๊ฐœ๋ฐœ์ž๋“ค์ด ์ „๋ถ€ ํ–‰๋™์„ ๋ฐ”๊พธ๋„๋ก ํ•˜๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

1. ์‚ฌํšŒํ™” ํ•˜๋ผ. ๋ชจ๋‘์—๊ฒŒ ์ง์ ‘, ํ•œ ๋ช…์”ฉ ๋˜๋Š” ์Šคํฌ๋Ÿผ์ด๋‚˜ ํŒ€ ํšŒ์˜์—์„œ ์•Œ๋ ค๋ผ. ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๋ผ. ์ƒˆ๋กœ์šด ์ง€์นจ์„ ์œ„ํ‚ค๋‚˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ README, ๋˜๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ํ…œํ”Œ๋ฆฟ์— ์ถ”๊ฐ€ํ•˜๋ผ. ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์„œ๋ฅผ ์ฝ๋„๋ก ๊ณ„์†ํ•ด์„œ ์ƒ๊ธฐ์‹œ์ผœ๋ผ. ๋ˆ„๊ตฐ๊ฐ€์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์˜์›ํžˆ ์ˆ˜๋™์œผ๋กœ ๊ฒ€ํ† ํ•˜๋ฉฐ ์‹ค์ˆ˜๋ฅผ ์ฐพ์•„๋ผ. ์ ˆ๋Œ€ ์žŠ์ง€ ์•Š๋„๋ก ํ•˜๋ผ! ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ทธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ›ˆ๋ จ์‹œ์ผœ๋ผ. ์˜๋ฌด์ ์ธ ๋™๋ฃŒ ๋ฆฌ๋ทฐ ์ˆ˜์ค€์„ ๋†’์—ฌ๋ผ. ๋ชจ๋‘์—๊ฒŒ ๋‹ค์‹œ, ๋˜ ๋‹ค์‹œ ์ƒ๊ธฐ์‹œ์ผœ๋ผ...

2. ์ž๋™ํ™” ํ•˜๋ผ

 

๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํŒจํ•˜๋Š” ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ผ. ํ˜น์€, ๋งŒ์•ฝ ์—ฌ๊ธฐ์ €๊ธฐ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ํ•œ๋ฒˆ์— ๊ณ ์น  ์ˆ˜ ์—†๋‹ค๋ฉด 'ratchet'์„ ์ถ”๊ฐ€ํ•ด๋ผ. ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์˜ˆ์˜์žˆ๋Š” ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ ๋น ๋ฅด๊ฒŒ ์‹คํŒจํ•˜๊ฑฐ๋‚˜, ๋” ๋‚˜์•„๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๋ผ. ๋ณดํ†ต์˜ ๊ฒฝ์šฐ์—๋Š” best practice๋ฅผ ๊ธฐ๊ณ„์ ์œผ๋กœ ๊ฐ•์ œํ•˜๋ผ.

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

๋งŒ์•ฝ "x๋ฅผ ์žŠ์ง€ ์•Š์•˜๋‹ˆ? x๋ฅผ ํ•ญ์ƒ ๊ธฐ์–ตํ•ด!"๋ผ๊ณ  ์ง€์†์ ์œผ๋กœ ๋งํ•˜๊ณ  ์žˆ๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•œ๋‹ค๋ฉด, ์ง€๊ธˆ์ด ์ž๋™ํ™”ํ•  ์‹œ๊ฐ„์ด๋‹ค. 

Think about pathological data

๋ˆ„๊ตฌ๋„ ํ™ฉ๊ธˆ๊ธธ์€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์—ฃ์ง€ ์ผ€์ด์Šค๋Š” ์šฐ๋ฆฌ์˜ ํ‰์ƒ์˜ ์—…๋ฌด์ด๋‹ค. ๊ธฐ๋Šฅ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์„ ํ•ญ์ƒ ์ƒ๊ฐํ•ด๋ผ. ๊ธฐ๋Šฅ์„ ๋ง๊ฐ€๋œจ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ผ. ์ฝ”๋“œ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅ์„ฑ์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•œ๋‹ค.

์š”์ฒญ์ด ์‹คํŒจํ•˜๊ฑฐ๋‚˜, ์˜์›ํžˆ ๋ฉˆ์ถ”๊ฑฐ๋‚˜, ํ•œ์‹œ๊ฐ„๋™์•ˆ ์ผ์ดˆ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๋ฐ”์ดํŠธ๋งŒ ๋ณด๋‚ด๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๋ฐฑ๋งŒ ๊ฐœ์˜ ํ–‰์„ ๋ณด์—ฌ์ค˜์•ผํ•œ๋‹ค๋ฉด? ์ด๋ฆ„์— ์Šฌ๋ž˜์‰ฌ(/)๊ฐ€ ์žˆ๊ฑฐ๋‚˜, ๊ณต๋ฐฑ์ด ์žˆ๊ฑฐ๋‚˜, ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ธธ๋‹ค๋ฉด? ๊ทธ ๋ฌธ์ž์—ด์ด ๋น„์–ด์žˆ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ์ฆ๋ช…ํ•  ์ˆ˜๋Š” ๊ฒƒ์€ ๋ฏฟ์„ ์ˆ˜ ์—†๋‹ค!

There is usually a simpler way to write it

๋งŒ์•ฝ ๋„ˆ๊ฐ€ ์‹œ๊ฐ„์„ ์ œ๋Œ€๋กœ ๊ณ„ํšํ–ˆ๋‹ค๋ฉด, ๋‹ค์‹œ ๋Œ์•„๊ฐ€ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์‹œ๊ฐ„์ด ์žˆ์—ˆ์„ ๊ฒƒ์ด๋‹ค. ์˜›๋‚  ์ฒด์Šค ๋ช…์–ธ์— "์ข‹์€ ์ˆ˜๋ฅผ ๋ณด์•˜๋‹ค๋ฉด, ๋” ์ข‹์€ ์ˆ˜๋ฅผ ์ฐพ์•„๋ผ"๋ผ๋Š” ๋ง์ด ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ธ์šฉ๊ตฌ๋„ ์žˆ๋‹ค. "ํŽธ์ง€๋ฅผ ๋„ˆ๋ฌด ๊ธธ๊ฒŒ ์จ์„œ ๋ฏธ์•ˆ, ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋‹ค๋ฉด ๋” ์งง๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์—ˆ์„ ํ…๋ฐ.."

Write code to be testable

์ด๊ฒƒ์€ ์ž˜ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ ์€ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด ์ฆ๋ช…๋œ ์ฝ”๋“œ๋Š” ์•„๋งˆ ์บก์Šํ™”๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ๋˜์–ด์žˆ์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.

It is insufficient for code to be provably correct; it should be obviously, visibly, trivially correct

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

ํŠนํžˆ ๋ณด์•ˆ๋ฌธ์ œ, ๋˜๋Š” ์ด๋ก ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ ๋ถ€์žฌ์— ํ•ด๋‹น๋œ๋‹ค. ํ˜„์žฌ ์ด ํŠน์ • ๋‚ด๋ถ€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ž๋“ค์ด ๋ชจ๋‘ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ, ๊ทธ๊ฒƒ์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฐ˜์‘ํ˜•