#1 1์์น ์ฌ๊ณ ๋ฒ
#1-1 ์ ์
์ง ์ผ๋ฌ: ์ผ๋ก ๋จธ์คํฌ๋ "๊ทธ๊ฒ ์ ๋ง(really) ์ ์ผ ์ค์ํ ๊ฑฐ์ผ?"๋ผ๊ณ ๋์์์ด ์ง๋ฌธํ๋ฉฐ, ๊ทธ ์ง๋ฌธ์ ๊ณผ์ ์์ ๋ชจ๋ ๊ฐ์ , ํ์ , ํธ๊ฒฌ์ ๋ฒ๋ ธ์ต๋๋ค (์คํ ๋ง์ธ๋). ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์๊ฐ์ 99%๋ ํธ๊ฒฌ์ ์งํค๋ ค๋ ๋ณ๋ช ์ ๋ถ๊ณผํฉ๋๋ค. ๊ทธ ์ค 98%๋ ์์ ํ๋ ธ์ ๊ฑฐ๊ณ ์. ์๊ฐ์ ๋ฒ์๋ฅผ ๋ํ์ผ ์๋ก์ด ๊ฑธ ํ ์ ์์ต๋๋ค.
1์์น ์ฌ๊ณ ๋ฒ(First principles thinking)์ ๋จผ์ ๋ชจ๋ ํ์์ ์ชผ๊ฐ์, ๊ทธ ์์ ๋ด์ฌ๋ ๋ณธ์ง์ ์ฐพ๋ ์ฌ๊ณ ๋ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณค "์ง์ง(really)?"๋ฅผ ๋๊น์ง ๋ฌผ์ด์ ์ ๋ง๋ก ๋ง๋ ์ฌ์ค์ด๋ ๋
ผ๋ฆฌ๋ฅผ ํ๋ํ๋ ๋ฐํ๋ธ๋ค. ๊ทธ ํ๋ํ๋๋ฅผ ๊ธฐ๋ฐ(๋ณธ์ง) ์์ ์ฐจ๊ณก์ฐจ๊ณก ์์ ์ฌ๋ฆฐ๋ค.
์ผ๋ก ์ ๋ฌผ๋ฆฌํ์ ๊ธฐ๋ณธ ์์น์, ์ด๋ค ํ์์ ๋ด์ฌ๋ ๋ณธ์ง๋ก์ ๋๊ณ ์๊ฐํ๋ ๊ฒ์ผ๋ก ์ ๋ช
ํ๋ค. ์ด๋ค ์์ด๋์ด์ ๋ํด ์๊ฐํ ๋, ์๋์ง ๋ณด์กด ๋ฒ์น์ด๋ ์ด๋๋ ๋ณด์กด ๋ฒ์น ๋ฑ์ผ๋ก ์คํ ๊ฐ๋ฅํ ์ง๋ฅผ ๊ฐ๋ ํด๋ณด๋ ๊ฒ ๊ทธ ์๋ค. ์ฐ๋ฆฌ ์ฃผ์์ ๋ฒ์ ์ด๊ธฐ๋ ์ฌ๋์ ์์ด๋, ๋ฌผ๋ฆฌ๋ฒ์น์ ์ด๊ธฐ๋ ์ฌ๋์ ์๋ค. ๋ฌผ๋ฆฌ ๋ฒ์น์ '์ง์ง'์ด์, '๋ณธ์ง'์ด๊ธฐ ๋๋ฌธ์ด๋ค.
#1-2 ํธ๋ ๋
ํธ๋ ๋๋ฅผ ๋ฐ๋ฅด์ง ๋ง๋ผ. ์ฆ, ๊ธฐ์กด์ ์กด์ฌํ๋ ์ฌ๋ก๋ ๊ฒฝํ ํน์ ์ ์ฌํ ์ํฉ์ ๋ฐํ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ก (์๋ฐฉํฅ ์ถ๋ก )ํ์ง ๋ง๋ผ. ๊ทธ ๋์ ์ด๋ค ์ฌ๋ฌผ์ด๋ ๊ด๋
์ ๊ฐ์ฅ ์ด์์ ์ผ๋ก ์์ฑ๋ ๋ชจ์ต์ ๋จผ์ ์์ํ๋ผ.
๊ทธ๋ฆฌ๊ณค '1์์น ์ฌ๊ณ ๋ฒ'์ ์ ์ฉํ๋ค. ์ฐ์ , ์ด์์ ์ผ๋ก ์์ฑ๋ ๋ชจ์ต์ ์์ฝ์์ผ ์ฐ๋ฆฌ๊ฐ ์์ํ ์ ์๋ ๊ทผ๋ณธ์ ์ธ ํต์ฌ ๋ณธ์ง๋ค๋ง ๋จ๊ธด๋ค. ์ด์ ๊ทธ ๋ณธ์ง, ์ง๋ฆฌ๋ฅผ ์ป๊ธฐ ์ํด ํ์ํ ๊ฒ๋ค๊ณผ ๊ทธ๊ฑธ ์ป๋ ์ต์ ์ ๋ฐฉ๋ฒ์ ์ญ๋ฐฉํฅ์ผ๋ก ์ถ๋ก ํด ๋๊ฐ๋ค.
์ฃผ์ ์ฌ๋๋ค์ด ๋น์ ์๊ฒ ๋ญ๋ผ๊ณ ํ๋ ํ๋ค๋ฆฌ์ง ๋ง๊ณ , ์ค์ค๋ก ๋ต์ ์ฐพ์๊ฐ๋ผ. ๋ฌด์ธ๊ฐ๋ฅผ ์๋กญ๊ฒ ์์ํ๊ณ ์ ํ๋ค๋ฉด ์ด๊ฒ์ด ๊ฐ์ฅ ์ข์ ์ ๊ทผ ๋ฐฉ์์ด๋ค. ๊ทธ๋ ๋ค๊ณ ํธ๋ ๋๋ฅผ ์์ ๊ฑฐ๋ถํ๋ค๋ฉด ์ด๋ ์คํ ๋ง์ธ๋ ์ ์ (#1)์ ์๋ฐฐ๋๋ค. ์๋ฐฉํฅ์ ์ฌ๊ณ ๊ฐ ์ค์ฉ์ ์์ธ์ผํ
๋ค.
#2 ์ข์ ์ ํ์ ๋ง๋๋ 5๋จ๊ณ
๊ฐ ๋จ๊ณ์ ์์์ ์ ๊ฒฝ์จ์ผ ํ๋ค. ๋ณ ์๊ฐ์์ด ์๋ํ๋ถํฐํ๊ณ โ ๊ทธ ์๋๋ฅผ ๋์ด๊ณ โ ๋จ์ํํ๊ณ โ ๋ค๋ฆ๊ฒ ํ์ ์๋ ๊ฑธ ์ ๊ฑฐํ๋ค๋ฉด, ์๊ฐ์ ์๊ฐ๋๋ก ๋น์ฉ์ ๋น์ฉ๋๋ก ๋
ธ๋ ฅ์ ๋
ธ๋ ฅ๋๋ก ์ฆ๋ฐํ ๊ฒ์ด๋ค.
#2-1 ์๊ตฌ ์ฌํญ
์ง์ํ ์ฌ๋์ด ๋๊ตฌ๋ , ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ์๋ฌธ์ ์ ๊ธฐํ๋ผ. ํนํ, ๋๋ํ ์ฌ๋์ ๋ฌด๊ฒฐํ ์๊ตฌ ์ฌํญ์ ๋ด๋์ ๊ฒ์ด๋ ์ฐฉ๊ฐ์ ์กฐ์ฌํ๋ผ.
#2-2 ์ค์ด๊ธฐ
๋ถํ์ด๋ ํ๋ก์ธ์ค๋ ์ต๋ํ ์ค์ฌ๋ผ. "์ด๊ฑด ๊ฒฐ๊ตญ ๋ค์ ๋ฃ์ด์ผ ํ ๊ฒ ๊ฐ์๋ฐ?"๋ผ๋ ์๊ฐ์ด ๋ค์ง ์์ผ๋ฉด ์ถฉ๋ถํ ์ ๊ฑฐํ์ง ์์ ๊ฒ์ด๋ค. ์๋ก์ด ๊ฑธ ๋ง๋ค๋ ค๋ฉด ๊ธฐ์กด์ ์๊ฐ์ผ๋ก๋ ์ ๋๋ค. ์๊ฐ์ ๋ฒ์๋ฅผ ๋ํ๊ธฐ ์ํด์ ํ์ํ์ง ์์ ๋ชจ๋ ์์๋ฅผ ์ฒ ์ ํ๊ฒ ์ ๊ฑฐํด์ผ ํ๋ค. ์ฐ๋ฆฌ๊ฐ ์ญ์ ํ ๊ฒ์ 10% ์ด์์ ๋ค์ ์ถ๊ฐํด์ผ ํ๋ ์ํฉ์ด ์ผ์ด๋์ง ์์ผ๋ฉด, ์ถฉ๋ถํ ์ ๊ฑฐ๋ฅผ ํ์ง ์์ ๊ฒ์ด๋ค.
#2-3 ์ฐ์ ์์๋ฅผ ๋ฐ๋ฅด๋ ์ต์ ํ
๋จ์ํํ๊ณ ํญ์ ์ต์ ํํ๋ผ. ์ด ๋, ์ฐ์ ์์๋ฅผ ์ค์ํ์ฌ ์ต์ ํ์ ์ํํด์ผ ํ๋ค. ๋๋ํ ์์ง๋์ด๋ค์ด ํํ ์ ์ง๋ฅด๋ ์ค์๋ ๋ฑํ ํ์์๋ ๊ฒ๋ค์ '์ต์ ํ'ํ๋ ๊ฒ์ด๋ค. ์ด ๊ฒฝ์ฐ ์ง์๋ค์ด ์์๋ถ์ ๋
ธ๋ ฅ๋ค์ด, ๋ ์ข์ ์ ํ๊ณผ ์๋น์ค๋ฅผ ์ด๋์ด๋ด์ง ๋ชปํ๋ค. ์๋ฅผ ๋ค๋ฉด ํ
์ฌ๋ผ๋ ๊ด๊ณ ์ ํ ํผ๋ ์ฐ์ง ์๋๋ค. ๊ทธ ๋์ ์ฐ๊ตฌ ๊ฐ๋ฐ๊ณผ ์์ฐ ๋ฐ ๋์์ธ์ ํฌ์ํ๋ค.
์ฐ๋ฆฌ๋ ๊ณ ๋ฑํ๊ต์ ๋ํ๊ต์์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํธ๋ ์ฌ๊ณ (์๋ ด์ ์ฌ๊ณ ) ํ๋ จ์ ๋ฐ์๋ค. ์ ์๋์ด๋ ๊ต์๋์ด ๋ธ ๋ฌธ์ ์ ์ด์๋ฅผ ์ ๊ธฐํ๋ฉด ์๋ง ์ ์ข์ ์ ์๋ฅผ ๋ฐ๊ฒ ๋ ํ๋ฅ ์ด ๋๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ๋ค๋ค ์๊ธฐ ์์ ๋ ๋ชจ๋ฅด๋ ์ฌ์ด์ '์ ์ ์ ์กฑ์'๋ฅผ ์ฐจ๊ฒ ๋๊ณ , ์ธ๋ฐ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ต์ ํํ๋ ์ค์๋ฅผ ์ ์ง๋ฅธ๋ค.
TMI
์ผ์์ ์์๋ก, ์์ฃผ๊ฐ ํด๋ํฐ์ ์ฐ์๋ ํ ๋จธ๋์๊ฒ ์ค๋งํธํฐ์ ์ ๋ฌผํ๊ณ ์ถ์ ์ํฉ์ ๊ฐ์ ํด๋ณธ๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก ์ค๋งํธํฐ์ ๋๋ ค์ผ '๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ'(์ต์ ํด)๊ฐ ๋์ถ๋๋๊ฐ? ์์ฃผ๋ '๋จผ์ ์ฐ์๋ ํด๋ํฐ์์ ์ค๋งํธํฐ์ผ๋ก ์ผ๋จ ๋ฐ๊ฟ๋ฒ๋ฆฌ๊ณ ๋์ ์ฒ์ฒํ ์ฌ์ฉ๋ฒ์ ์๋ ค๋๋ฆฌ์'๋ผ๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ์์ฃผ์ ์ ํ์ ํ๋ ธ๋ค (์์ฃผ ์ ์ฅ์์๋ ํ๋ฆฌ์ง ์์๋ค๋ผ๊ณ ์๊ฐํ (๋ฏฟ๊ณ ์ถ์)ํ ์ง๋ง).
์ค๋งํธํฐ์ ๋ณธ์ง์, ๊ฒฐ๊ตญ ๋ ํธํ IT ์ ๊ทผ์ฑ์ด๋ค. ์ค๋งํธํฐ์ด๋ผ๊ณ ๊ผญ ๋์ ์ ๊ทผ์ฑ์ ๊ฐ์ง๋๊ฐ? ๋ชจ๋์๊ฒ? ํ์กด ์ค๋งํธํฐ๋ค์ ์ธํฐํ์ด์ค๋ ๋ ธ๋ ์ธต์ '์ ํ' ๋ฐฐ๋ คํ์ง ์๋๋ค. ๊ณผ์ฅ์์ด ์ฐ๋ ๊ธฐ ํ๊ธฐ๋ฌผ ์์ค์ด๋ค. ์ด๋ ํ ๋จธ๋์๊ฒ ์ ๊ทผ์ฑ์ด ์๋ ๋ถํธํจ๋ง์ ๊ฐ์ค์์ผฐ๋ค. ํ ๋จธ๋๋ ๊ฒฐ๊ตญ ์๋ ์ ์ฐ๋ ํด๋ํฐ์ ํด๋ํฐ๋๋ก ์ฐ์ง ๋ชปํ๊ณ , ์ค๋งํธํฐ์ '์ฐ๋ ๊ธฐ ์ธํฐํ์ด์ค ์ง์ฅ'์ ๊ฐํ ์ค๋ ๊ฐ๋ ๋ชปํ๊ฒ ๋๊ณ ๋ง์๋ค. ์์ฃผ๋ ๊ทธ๋ฐ ์ค๋ฌผ๊ณผ๋ ๊ฐ์ ์ฐ๋ ๊ธฐ ์ธํฐํ์ด์ค๋ฅผ ํ ๋จธ๋์ ๋ค์ด๋ฏผ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ๋ ํ ๋จธ๋๊ฐ ์ค๋งํธํฐ ์ธํฐํ์ด์ค์ ์ต์ํด์ง๋๋ก, ์ผ์ข ์ ์ต์ ํ๋ฅผ ์งํํ๋ค.
๊ทธ ์ต์ ํ๊ฐ ์๋ฐํ ๋งํด, ํ์ ์๋ ์ต์ ํ๋ ์๋ํ ๋ค. ํ์ง๋ง, ๋ช ๋ฐฑํ ์ตํ์ ์ฐ์ ์์์ธ ์ต์ ํ๋ค. ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ๋ฉด, ์์ฃผ๋ ํ ๋จธ๋์ ํฐ์ ๋ง๋ฌด๊ฐ๋ด๋ก ๋ฐ๊ฟ์ ์ ๋๋ค. ๊ทธ ๋์ ํ ๋จธ๋๊ป ์ค๋งํธํฐ์ ๊ณต๊ธฐ๊ณ ํํ๋ก ์ ๋ฌผํด์ผ ํ๋ค. ๋จผ์ ์ค๋งํธํฐ ์์ฒด์ ์ต์ํด์ง๋๋ก ์ต์ ํํด์ผ ํ๋ค. ํ ๋จธ๋๊ฐ ์ฐ์๋ ํด๋ํฐ์ ์ฌ์ ํ ๊ทธ๋๋ก ์ฌ์ฉํ์๊ฒ ๋๊ณ ๋ง์ด๋ค.
์ด๋ ๋ฏ ์ฐ์ ์์๋ฅผ ๋ฌด์ํ ์ฑ ์ต์ ํ๋ฅผ ์งํํ๊ฒ ๋๋ฉด, ๊ทธ ์ต์ ํ๋ณด๋ค ๋ ๋์ ์ฐ์ ์์๋ฅผ ์ง๋๋ ์ต์ ํ์ ์คํ ๊ธฐํ๊ฐ ๋ฐํ๋๋ค. ๋ฐํ๋ก ๋์ด๋ฉด ๊ทธ๋๋ง ๋คํ์ด์ง๋ง, ๊ทธ๊ฑธ๋ก ๋์ด ์๋๋ค. ๊ทธ ๋ฐํ์ ์ฐ์์์ฉ์ผ๋ก ์ธํด ๋ชจ๋ ์ต์ ํ์ ๊ถ๊ทน์ ๋ชฉํ์ธ '๋ ์ข์ ๊ฒฐ๊ณผ ๋ง๋ค๊ธฐ'๊ฐ, '๋ ๋์ ๊ฒฐ๊ณผ ๋ง๋ค๊ธฐ'๋ก ๋ฐ์ ๋์ด๋ฒ๋ฆฐ๋ค. ์กฐ๊ธํ ๋ง์๊ณผ ์ถฉ๋์ ์ ์ฌ์ ธ ์ฐ์ ์์๋ฅผ ์งํค์ง ์์ ๋๊ฐ๋, ๊ฒฐ๊ตญ ๋๋ฅผ ํฌํจํ ์ฃผ์ ์ฌ๋๋ค์๊ฒ ์ ๊ฐ๋๋ค.
#2-4 ์๋
๊ฐ๋ฐ/์์ฐ ์ฌ์ดํด์ ๋น ๋ฅด๊ฒ ๋๋ ค๋ผ. ๋ฐ๊ธฐ์ ๋์ง๋ง๊ณ ๋น ๋ฅด๊ฒ ๋ฌ๋ ค๋๊ฐ์ผ ํ๋ค. ๋ฌผ๋ก , ์์ ๋จ๊ณ๋ค์ ๋ฌด์ํ์ง์๊ณ ์ ์ค์ํ๋ค๋ ๊ฐ์ ํ์์๋ค.
#2-5 ์๋ํ
๋ง์ง๋ง์ผ๋ก, ๋ชจ๋ ๊ณผ์ ์ '์๋ํ'ํ๋ผ.
#3 ์ถฉ๊ณ
#3-1 ์ด์ฌํ ์ผํ๋ผ
100์๊ฐ์ ์ผํ๋ฉด, ๋จ๋ค์ 2๋ฐฐ๋ฅผ ๋ฒ๋ค. ๊ทธ๋ฆฌ๊ณ , ๋ง์ฝ ๋น์ ์ด ์ฐฝ์
์ ์ํ๋ค๋ฉด ๋ฏธ์น๋ฏ์ด ์ผํ๋ผ. ์ ์์ ๊นจ์ด์๋ ์๊ฐ๋งํผ ์ผํ๋ผ.
#3-2 ์ฌ๋
์ฐฝ์
์ ํ๋ ์
์ฌ๋ฅผ ํ๋ , ํ๋ฅญํ ์ฌ๋๋ค์ ๋ชจ์๋ผ. ๊ทธ๋ฐ ์ฌ๋๋ค๊ณผ ํจ๊ปํ๊ฑฐ๋, ์กด๊ฒฝํ๋ ์ฌ๋๋ค์ด ์๋ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๋ผ. ๋ชจ๋ ํ์ฌ๋ ๊ฒฐ๊ตญ ์ฌ๋๋ค์ ๋ชจ์์ด๋ค. ๊ทธ๋ค์ด ๋ชจ์ฌ ์ ํ์ด๋ ์๋น์ค๋ฅผ ๋ง๋ ๋ค. ๋ฐ๋ผ์, ๊ทธ๋ค์ด ์ผ๋ง๋ ์ฌ๋ฅ์๊ณ , ์ด์ฌํ ์ผํ๊ณ , ์์ง๋ ฅ์๊ณ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ง์คํ๋์ง๊ฐ ํ์ฌ์ ์ฑ๊ณต์ ๊ฒฐ์ ์ง๋๋ค.
#3-3 ๋ด๋น์ ์ด๋ฆ
์ด๋ค ์ง์๋ฅผ ๋ด๋ฆฌ๊ฑฐ๋ ์๊ฒฌ์ ์ ์ํ ๋, ๋ถ์ ์ด๋ฆ ๋ง๊ณ ๋ด๋น์ ์ด๋ฆ์ ์ ๊ฒ ํ๋ผ. ๋ด๋น์๋ ์์ ์ ์ง์ ์ฌํญ ํน์ ์๊ฒฌ ๊ฐ์ง์ ์ฑ ์์ ์ ธ์ผ ํ๋ค. ๋ถ์ ์ด๋ฆ๋ง ๋จ๊ธฐ๋ฉด, ๋ช๋ ์ ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ธํด์ด ๋์ ์ฌ ๋์ ์์ด๋์ด๊ฐ ํ์ฌ์ ๋จ๊ฒ ๋ ์๋ ์๋ค.
'๊นจ์ ๊ฐ๋ ๐ > ๊ธฐํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Cold Flow์ Hot Flow (SharedFlow) (0) | 2024.08.07 |
---|---|
Unit Testing - Test double (0) | 2024.06.30 |
์์กด์ฑ ์ฃผ์ (Dependency Injection) (0) | 2024.06.20 |
REST API (REpresentational State Transfer Application Programming Interface) (0) | 2024.05.26 |
API (Application Programming Interface) (0) | 2023.12.18 |