๋ธ๋ก๊ทธ ์ฎ๊ฒผ์ต๋๋ค! ๐ก 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 ์คํฐ๋๋ฅผ ํ ์ดํ ์ฒ์ ํ๋ ์คํฐ๋์๋๋ฐ,
์ญ์ ์๊ฐ์ ๊ณต์ ํ๋ ๊ณผ์ ์์ ๋ด ์๊ฐ์ด ์ ๋ฆฌ๋๊ธฐ๋ ํ๊ณ ,
๋ฏธ์ฒ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ ์ฟ๋ฃ๊ณ ์๊ฐ์ ์งํ์ ๋ํ ์ ์์ด์ ์ข์๋ค.
๋ฐ์ค ์น ๋ฌธ์ฅ๋ค
- ๋ชจ๋ ๊ฐ๋ฐ ๊ณผ์ ์์, ๋งค์ผ, ์ฌ๋ฌ๋ถ์ด ๋ด๋ฆฌ๋ ๋ชจ๋ ๊ฒฐ์ ์ ๋์์์ด ๋นํ์ ์ผ๋ก ํ๊ฐํด์ผ ํ๋ค. ์ ๋ ๊ธฐ๊ณ์ ์ผ๋ก ์ผํ์ง ๋ง๋ผ. ์ธ์ ๋ ์ผํ๋ฉด์ ๋์์ ์๊ฐํ๊ณ , ์๊ธฐ ์ผ์ ๋นํํ๋ผ. (p.21)
- ์ค์ฉ์ฃผ์ ํ๋ก๊ทธ๋๋จธ๋ ์ง๋ฉดํ ๋ฌธ์ ๋๋จธ๋ฅผ ๊ณ ๋ฏผํ๋ค. ๋ฌธ์ ๋ฅผ ๋ ํฐ ๋งฅ๋ฝ์ ๋๊ณ ๋ ํฐ ๊ทธ๋ฆผ์ ๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ๋ค. (p.1)
- ‘๊นจ์ง ์ฐฝ๋ฌธ’์ ๊ณ ์น์ง ์์ ์ฑ๋ก ๋ด๋ฒ๋ ค ๋์ง ๋ง๋ผ. ๋์ ์ค๊ณ, ์๋ชป๋ ๊ฒฐ์ , ํน์ ํํธ์๋ ์ฝ๋ ๋ฑ์ด ๋ชจ๋ ๊นจ์ง ์ฐฝ๋ฌธ์ด๋ค. ๋ฐ๊ฒฌํ์๋ง์ ๋ฐ๋ก ๊ณ ์ณ๋ผ. (p.9)
- ์ง์ ํฌํธํด๋ฆฌ์ค ๋ง๋ค๊ธฐ (p.21)
- ์ฃผ๊ธฐ์ ์ธ ํฌ์
- ๊ธ์ต ํฌ์์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ๋ถ์ ์ง์ ํฌํธํด๋ฆฌ์ค์ ์๋์ผ๋ก๋ผ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ํฌ์ํด์ผ ํ๋ค.
- ๋ค๊ฐํ
- ๋ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ์์๋ก ์์ ์ ๊ฐ์น๋ ๋์ฑ ๋์์ง๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ์์ ์ ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๊ดํด์๋ ์์๋ค์ด ์์์ผ ํ๋ค.
- ํ์ง๋ง ๊ฑฐ๊ธฐ์ ๋ฉ์ถ์ง ๋ง๋ผ. ์ปดํจํฐ ๋ถ์ผ์ ์งํ์ ๋น ๋ฅด๊ฒ ๋ณํ๋ค. (์ค๋ต) ๋ ๋ง์ ๊ธฐ์ ์ ์ต์ํ๋ค๋ฉด ๋ณํ์ ๋ ์ ์ ์ํ ์ ์์ ๊ฒ์ด๋ค.
- ๋ฆฌ์คํฌ ๊ด๋ฆฌ
- ๊ธฐ์ ์ ์ํํ์ง๋ง ์ ์ฌ์ ์ผ๋ก ๋ณด์์ด ๋์ ๊ฒ์์ ๋ฆฌ์คํฌ๊ฐ ๋ฎ๊ณ ๋ณด์๋ ๋ฎ์ ๊ฒ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ์คํํธ๋ผ ์์ ์กด์ฌํ๋ค.
- ์ฌ๋ฌ๋ถ์ ๊ธฐ์ ๋ฌ๊ฑ์ ๋ชจ๋ ํ ๋ฐ๊ตฌ๋์ ๋ด์ง ๋ง๋ผ.
- ๊ฒํ ๋ฐ ์ฌ์กฐ์
- ์ด ์ฐ์ ์ ๋งค์ฐ ๋์ ์ด๋ค. ์ง๋๋ฌ๋ถํฐ ํ๊ตฌํ๊ธฐ ์์ํ ์ธ๊ธฐ ์๋ ๊ธฐ์ ์ด ํ ๋ฌ ๋ง์ ์์ ํ ์ฐฌ๋ฐฅ์ด ๋ ์ง๋ ๋ชจ๋ฅธ๋ค.
- ์ฃผ๊ธฐ์ ์ธ ํฌ์
- API๊ฐ ์๋ ์ฝ๋์ ์ฃผ์์ ์ธ ๋๋ ์ ์ด๋ ๊ฒ ๋์ด ์๋์ง, ์ฆ ์ฝ๋์ ์ฉ๋์ ๋ชฉ์ ์ ๋ ผํด์ผ ํ๋ค. ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ์ฝ๋๊ฐ ์ด๋ฏธ ๋ณด์ฌ ์ฃผ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ์ฃผ์์ ๋ค๋ ๊ฒ์ ์ฌ์กฑ์ด๋ค. (p.34)
- ‘๋ด๊ฐ ๋ฐฉ๊ธ ํ ์ผ์ด ์ ์ฒด ์์คํ ์ ๋ฐ๊พธ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์์๊น, ์ด๋ ต๊ฒ ๋ง๋ค์์๊น?’ ํ์ผ์ ์ ์ฅํ ๋๋ง๋ค ๋ฌผ์ด๋ณด๋ผ. ํ ์คํธ๋ฅผ ์ธ ๋๋, ๋ฒ๊ทธ๋ฅผ ์์ ํ ๋๋ ๋ฌผ์ด๋ณด๋ผ. (p.40)
- DRY๋ ์ง์์ ์ค๋ณต, ์๋์ ์ค๋ณต์ ๋ํ ๊ฒ์ด๋ค. ๋๊ฐ์ ๊ฐ๋ ์ ๋ค๋ฅธ ๊ณณ ๋ ๊ตฐ๋ฐ์์ ํํํ๋ฉด ์ ๋๋ค๋ ๊ฒ์ด๋ค. (p.44)
- ์ฝ๋๋ ๋์ผํ์ง๋ง ๋ ํจ์๊ฐ ํํํ๋ ์ง์์ ๋ค๋ฅด๋ค. ๋ ํจ์๋ ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฒ์ ๊ฒ์ฆํ๊ณ ์์ง๋ง, ์ฐ์ฐํ ๊ท์น์ด ๊ฐ์ ๊ฒ๋ฟ์ด๋ค. ์ด๊ฒ์ ์ฐ์ฐ์ด์ง ์ค๋ณต์ด ์๋๋ค. (p.47)
- ์ด๋ ๊ฒ ์ํคํ ์ฒ๊ฐ ๋ณ๋์ค๋ฌ์ด ํ๊ฒฝ์์ ์ด๋ป๊ฒ ๊ณํ์ ์ธ์ธ ์ ์๊ฒ ๋๊ฐ? ๋ชปํ๋ค. ์ฌ๋ฌ๋ถ์ด ํ ์ ์๋ ๊ฒ์ ๋ฐ๊พธ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ์ด๋ค. ์ธ๋ถ์ API๋ฅผ ์ฌ๋ฌ๋ถ์ด ๋ง๋ ์ถ์ํ ๊ณ์ธต ๋ค๋ก ์จ๊ฒจ๋ผ. ์ฌ๋ฌ๋ถ์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ์ชผ๊ฐ๋ผ. ๊ฒฐ๊ตญ์๋ ํ๋์ ๊ฑฐ๋ํ ์๋ฒ์ ๋ฐฐํฌํ๊ฒ ๋๋๋ผ๋, ์ด ๋ฐฉ์์ด ๊ฑฐ๋ํ ๋จ์ผ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ธ๋ค ์ชผ๊ฐ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ฝ๋ค. (์ฐ๋ฆฌ๋ ๋ผ์ ๋ฆฐ ๊ฒฝํ์ ํตํด ๋ฐฐ์ ๋ค.) (p.70)
- ์ผ๋ฐ์ ์ผ๋ก ์ฃฝ์ ํ๋ก๊ทธ๋จ์ด ๋ผ์น๋ ํผํด๋ ์ด์ํ ์ํ์ ํ๋ก๊ทธ๋จ์ด ๋ผ์น๋ ํผํด๋ณด๋ค ํจ์ฌ ์ ์ ๋ฒ์ด๋ค. (p.161)
- ๋ฌป์ง ๋ง๊ณ ๋งํ๋ผ(Tell, Don’t Ask, TDA.) ์ด ์์น์ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ด๋ถ ์ํ์ ๋ฐ๋ผ ํ๋จ์ ๋ด๋ฆฌ๊ณ ๊ทธ ๊ฐ์ฒด๋ฅผ ๊ฐฑ์ ํด์๋ ์ ๋๋ค๋ ๊ฒ์ด๋ค. (p.186)
- ์ ์ญ์ ์ด์ด์ผ ํ ๋งํผ ์ค์ํ๋ค๋ฉด API๋ก ๊ฐ์ธ๋ผ. (p.191)
- ‘๋์์ฑconcurrency’์ ๋ ์ด์์ ์ฝ๋ ์กฐ๊ฐ์ด ์คํ๋ ๋ ๋์์ ์คํ ์ค์ธ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ‘๋ณ๋ ฌ์ฑparallelism’์ด๋ ์ค์ ๋ก ๋์์ ์คํ๋๋ ๊ฒ์ด๋ค. (p.241)
- <๋ฆฌํฉํฐ๋ง>์์ ๋งํด ํ์ธ๋ฌ๋ ‘๋ฆฌํฉํฐ๋ง’์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค. ๋ฐ์ผ๋ก ๋๋ฌ๋๋ ๋์์ ๊ทธ๋๋ก ์ ์งํ ์ฑ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํจ์ผ๋ก์จ ์ด๋ฏธ ์กด์ฌํ๋ ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑํ๋ ์ฒด๊ณ์ ๊ธฐ๋ฒ. (p.301)
- ๋ฆฌํฉํฐ๋ง์ด ํ์ํ ์ฝ๋๋ฅผ ์ผ์ข ์ ‘์ข ์’์ด๋ผ๊ณ ์๊ฐํ์. (p.304)
- ๋ฌด์ธ๊ฐ๋ฅผ ํ ์คํธํ๊ธฐ ์ข๊ฒ ๋ง๋ค๋ฉด ๊ฒฐํฉ๋๋ ๋ฎ์์ง๋ค. (p.310)
- ์ฐ๋ฆฌ์ ์ผ์ ์ฌ๋๋ค์ด ์์ ์ด ์ํ๋ ๋ฐ๋ฅผ ๊นจ๋ซ๋๋ก ๋๋ ๊ฒ์ด๋ค. ์ฌ์ค ์ด๊ฒ ์ฐ๋ฆฌ์ ๊ฐ์น๊ฐ ๊ฐ์ฅ ๋น๋๋ ๋ถ๋ถ์ผ ๊ฒ์ด๋ค. (p.351)
- ์๊ฐ ์์ด ํํ ์ ์๋ ์ค์ํ ์์ ์ ์๊ฐ ๋์ด๋จ์ ๋ฐ๋ผ ๋ฌธ๋ช ์ ๋ฐ์ ํ๋ค. - Alfred North Whitehead (p.392)