<์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ>

๋ธ”๋กœ๊ทธ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค! ๐Ÿก’ integer.blog

The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition
by Thomas David, Hunt Andrew, 2020


์ด ์ฑ…์€ ํ˜„์žฌ ์ด์› 4๋ช…์˜ ๊ฐœ๋ฐœํŒ€ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์Šคํ„ฐ๋””๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ์€ ์ฑ…์ด๋‹ค.

๊ฐ์ž ์ฑ…์„ ์ฝ์–ด ์˜ค๊ณ  ์ด 3ํšŒ๋กœ ๊ฑธ์ณ์„œ, ํšŒ๋‹น 2์‹œ๊ฐ„~2์‹œ๊ฐ„ 30๋ถ„์”ฉ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.
๊ฐ™์€ ์ฃผ์ œ์— ๋Œ€ํ•ด (์˜๊ฒฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ) ๊ฐ์ž์˜ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๊ณ  ์„œ๋กœ ์งˆ๋‹ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐœ๋ฐœํŒ€์˜ ์ฒซ ์Šคํ„ฐ๋”” ํ˜น์€ book review๋ฅผ ํ•จ๊ป˜ ํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ฑ…์ด ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค.

์ตœ๊ทผ์— ์•ˆ์ •์ ์ธ ํˆฌ์ž๋ฅผ ๋ฐ›์•˜์ง€๋งŒ, ๊ฐœ๋ฐœ ํŒ€์›์€ 4๋ช… ๋ฟ์ธ ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—…์ด๊ณ  ํŒ€์›๊ฐ„์— ๋งž์ถฐ๊ฐ€์•ผํ•  ๊ฒƒ๋“ค์ด ๋งŽ์€ ์ƒํ™ฉ์ด๋ผ
์ฑ…์—์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ฃผ์ œ๋“ค์„ ํ•จ๊ป˜ ์ด์•ผ๊ธฐํ•˜๊ณ , ์„œ๋กœ์˜ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ฑํฌ๋ฅผ ๋งž์ถ”์–ด ๋‚˜๊ฐ€๊ธฐ์— ์ ํ•ฉํ–ˆ๋‹ค.

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

์คŒ์ธํ„ฐ๋„ท์—์„œ ๋™๊ธฐ๋“ค(๋‚จ์ค€์ด, ํฌ์ •์ด)๊ณผ 2019๋…„์— JPA ์Šคํ„ฐ๋””๋ฅผ ํ•œ ์ดํ›„ ์ฒ˜์Œ ํ•˜๋Š” ์Šคํ„ฐ๋””์˜€๋Š”๋ฐ,
์—ญ์‹œ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‚ด ์ƒ๊ฐ์ด ์ •๋ฆฌ๋˜๊ธฐ๋„ ํ•˜๊ณ ,
๋ฏธ์ฒ˜ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์„ ์—ฟ๋“ฃ๊ณ  ์ƒ๊ฐ์˜ ์ง€ํ‰์„ ๋„“ํž ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.



๋ฐ‘์ค„ ์นœ ๋ฌธ์žฅ๋“ค

  1. ๋ชจ๋“  ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ, ๋งค์ผ, ์—ฌ๋Ÿฌ๋ถ„์ด ๋‚ด๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒฐ์ •์„ ๋Š์ž„์—†์ด ๋น„ํŒ์ ์œผ๋กœ ํ‰๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ์ ˆ๋Œ€ ๊ธฐ๊ณ„์ ์œผ๋กœ ์ผํ•˜์ง€ ๋ง๋ผ. ์–ธ์ œ๋‚˜ ์ผํ•˜๋ฉด์„œ ๋™์‹œ์— ์ƒ๊ฐํ•˜๊ณ , ์ž๊ธฐ ์ผ์„ ๋น„ํ‰ํ•˜๋ผ. (p.21)
  2. ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ง๋ฉดํ•œ ๋ฌธ์ œ ๋„ˆ๋จธ๋ฅผ ๊ณ ๋ฏผํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋” ํฐ ๋งฅ๋ฝ์— ๋†“๊ณ  ๋” ํฐ ๊ทธ๋ฆผ์„ ๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๋‹ค. (p.1)
  3. ‘๊นจ์ง„ ์ฐฝ๋ฌธ’์„ ๊ณ ์น˜์ง€ ์•Š์€ ์ฑ„๋กœ ๋‚ด๋ฒ„๋ ค ๋‘์ง€ ๋ง๋ผ. ๋‚˜์œ ์„ค๊ณ„, ์ž˜๋ชป๋œ ๊ฒฐ์ •, ํ˜น์€ ํ˜•ํŽธ์—†๋Š” ์ฝ”๋“œ ๋“ฑ์ด ๋ชจ๋‘ ๊นจ์ง„ ์ฐฝ๋ฌธ์ด๋‹ค. ๋ฐœ๊ฒฌํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ๊ณ ์ณ๋ผ. (p.9)
  4. ์ง€์‹ ํฌํŠธํด๋ฆฌ์˜ค ๋งŒ๋“ค๊ธฐ (p.21)
    • ์ฃผ๊ธฐ์ ์ธ ํˆฌ์ž
      • ๊ธˆ์œต ํˆฌ์ž์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ง€์‹ ํฌํŠธํด๋ฆฌ์˜ค์— ์†Œ๋Ÿ‰์œผ๋กœ๋ผ๋„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํˆฌ์žํ•ด์•ผ ํ•œ๋‹ค.
    • ๋‹ค๊ฐํ™”
      • ๋” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์•Œ์ˆ˜๋ก ์ž์‹ ์˜ ๊ฐ€์น˜๋Š” ๋”์šฑ ๋†’์•„์ง„๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ์ž‘์—…์— ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์— ๊ด€ํ•ด์„œ๋Š” ์†์†๋“ค์ด ์•Œ์•„์•ผ ํ•œ๋‹ค.
      • ํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์„œ ๋ฉˆ์ถ”์ง€ ๋ง๋ผ. ์ปดํ“จํ„ฐ ๋ถ„์•ผ์˜ ์ง€ํ˜•์€ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ•œ๋‹ค. (์ค‘๋žต) ๋” ๋งŽ์€ ๊ธฐ์ˆ ์— ์ต์ˆ™ํ•˜๋‹ค๋ฉด ๋ณ€ํ™”์— ๋” ์ž˜ ์ ์‘ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
    • ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ
      • ๊ธฐ์ˆ ์€ ์œ„ํ—˜ํ•˜์ง€๋งŒ ์ž ์žฌ์ ์œผ๋กœ ๋ณด์ƒ์ด ๋†’์€ ๊ฒƒ์—์„œ ๋ฆฌ์Šคํฌ๊ฐ€ ๋‚ฎ๊ณ  ๋ณด์ƒ๋„ ๋‚ฎ์€ ๊ฒƒ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ŠคํŽ™ํŠธ๋Ÿผ ์œ„์— ์กด์žฌํ•œ๋‹ค.
      • ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์ˆ  ๋‹ฌ๊ฑ€์„ ๋ชจ๋‘ ํ•œ ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์ง€ ๋ง๋ผ.
    • ๊ฒ€ํ†  ๋ฐ ์žฌ์กฐ์ •
      • ์ด ์‚ฐ์—…์€ ๋งค์šฐ ๋™์ ์ด๋‹ค. ์ง€๋‚œ๋‹ฌ๋ถ€ํ„ฐ ํƒ๊ตฌํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ธ๊ธฐ ์žˆ๋˜ ๊ธฐ์ˆ ์ด ํ•œ ๋‹ฌ ๋งŒ์— ์™„์ „ํžˆ ์ฐฌ๋ฐฅ์ด ๋ ์ง€๋„ ๋ชจ๋ฅธ๋‹ค.
  5. API๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ์— ์ฃผ์„์„ ์“ธ ๋•Œ๋Š” ์™œ ์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€, ์ฆ‰ ์ฝ”๋“œ์˜ ์šฉ๋„์™€ ๋ชฉ์ ์„ ๋…ผํ•ด์•ผ ํ•œ๋‹ค. ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€๋Š” ์ฝ”๋“œ๊ฐ€ ์ด๋ฏธ ๋ณด์—ฌ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋Œ€ํ•ด ์ฃผ์„์„ ๋‹ค๋Š” ๊ฒƒ์€ ์‚ฌ์กฑ์ด๋‹ค. (p.34)
  6. ‘๋‚ด๊ฐ€ ๋ฐฉ๊ธˆ ํ•œ ์ผ์ด ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋ฐ”๊พธ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์—ˆ์„๊นŒ, ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์—ˆ์„๊นŒ?’ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค ๋ฌผ์–ด๋ณด๋ผ. ํ…Œ์ŠคํŠธ๋ฅผ ์“ธ ๋•Œ๋„, ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋„ ๋ฌผ์–ด๋ณด๋ผ. (p.40)
  7. DRY๋Š” ์ง€์‹์˜ ์ค‘๋ณต, ์˜๋„์˜ ์ค‘๋ณต์— ๋Œ€ํ•œ ๊ฒƒ์ด๋‹ค. ๋˜‘๊ฐ™์€ ๊ฐœ๋…์„ ๋‹ค๋ฅธ ๊ณณ ๋‘ ๊ตฐ๋ฐ์—์„œ ํ‘œํ˜„ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (p.44)
  8. ์ฝ”๋“œ๋Š” ๋™์ผํ•˜์ง€๋งŒ ๋‘ ํ•จ์ˆ˜๊ฐ€ ํ‘œํ˜„ํ•˜๋Š” ์ง€์‹์€ ๋‹ค๋ฅด๋‹ค. ๋‘ ํ•จ์ˆ˜๋Š” ๊ฐ๊ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์„ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์šฐ์—ฐํžˆ ๊ทœ์น™์ด ๊ฐ™์€ ๊ฒƒ๋ฟ์ด๋‹ค. ์ด๊ฒƒ์€ ์šฐ์—ฐ์ด์ง€ ์ค‘๋ณต์ด ์•„๋‹ˆ๋‹ค. (p.47)
  9. ์ด๋ ‡๊ฒŒ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋ณ€๋•์Šค๋Ÿฌ์šด ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ ๊ณ„ํš์„ ์„ธ์šธ ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€? ๋ชปํ•œ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋ฐ”๊พธ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์™ธ๋ถ€์˜ API๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์ด ๋งŒ๋“  ์ถ”์ƒํ™” ๊ณ„์ธต ๋’ค๋กœ ์ˆจ๊ฒจ๋ผ. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ์ชผ๊ฐœ๋ผ. ๊ฒฐ๊ตญ์—๋Š” ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ฒŒ ๋˜๋”๋ผ๋„, ์ด ๋ฐฉ์‹์ด ๊ฑฐ๋Œ€ํ•œ ๋‹จ์ผ ๋ชจ๋“ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์ ธ๋‹ค ์ชผ๊ฐœ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์‰ฝ๋‹ค. (์šฐ๋ฆฌ๋„ ๋ผˆ์ €๋ฆฐ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋ฐฐ์› ๋‹ค.) (p.70)
  10. ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃฝ์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋ผ์น˜๋Š” ํ”ผํ•ด๋Š” ์ด์ƒํ•œ ์ƒํƒœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋ผ์น˜๋Š” ํ”ผํ•ด๋ณด๋‹ค ํ›จ์”ฌ ์ ์€ ๋ฒ•์ด๋‹ค. (p.161)
  11. ๋ฌป์ง€ ๋ง๊ณ  ๋งํ•˜๋ผ(Tell, Don’t Ask, TDA.) ์ด ์›์น™์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ƒํƒœ์— ๋”ฐ๋ผ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๊ณ  ๊ทธ ๊ฐ์ฒด๋ฅผ ๊ฐฑ์‹ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (p.186)
  12. ์ „์—ญ์ ์ด์–ด์•ผ ํ•  ๋งŒํผ ์ค‘์š”ํ•˜๋‹ค๋ฉด API๋กœ ๊ฐ์‹ธ๋ผ. (p.191)
  13. ‘๋™์‹œ์„ฑconcurrency’์€ ๋‘˜ ์ด์ƒ์˜ ์ฝ”๋“œ ์กฐ๊ฐ์ด ์‹คํ–‰๋  ๋•Œ ๋™์‹œ์— ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ‘๋ณ‘๋ ฌ์„ฑparallelism’์ด๋ž€ ์‹ค์ œ๋กœ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. (p.241)
  14. <๋ฆฌํŒฉํ„ฐ๋ง>์—์„œ ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ๋Š” ‘๋ฆฌํŒฉํ„ฐ๋ง’์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•œ๋‹ค. ๋ฐ–์œผ๋กœ ๋“œ๋Ÿฌ๋‚˜๋Š” ๋™์ž‘์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ์ฒด๊ณ„์  ๊ธฐ๋ฒ•. (p.301)
  15. ๋ฆฌํŒฉํ„ฐ๋ง์ด ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ผ์ข…์˜ ‘์ข…์–‘’์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž. (p.304)
  16. ๋ฌด์–ธ๊ฐ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค๋ฉด ๊ฒฐํ•ฉ๋„๋„ ๋‚ฎ์•„์ง„๋‹ค. (p.310)
  17. ์šฐ๋ฆฌ์˜ ์ผ์€ ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์ด ์›ํ•˜๋Š” ๋ฐ”๋ฅผ ๊นจ๋‹ซ๋„๋ก ๋•๋Š” ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ์ด๊ฒŒ ์šฐ๋ฆฌ์˜ ๊ฐ€์น˜๊ฐ€ ๊ฐ€์žฅ ๋น›๋‚˜๋Š” ๋ถ€๋ถ„์ผ ๊ฒƒ์ด๋‹ค. (p.351)
  18. ์ƒ๊ฐ ์—†์ด ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ์ž‘์—…์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ ๋ฌธ๋ช…์€ ๋ฐœ์ „ํ•œ๋‹ค. - Alfred North Whitehead (p.392)