#์๊ธฐ์๊ฐ
#๊ธ์ฐ๊ธฐ
#์ด๋ ฅ์
์
์ฌ ์ง์์ด๋ ๋ชจ์ง ์ ์ฒญ ์ ์ฌ์ฉํ ์ ์๋ ๋งค๋๋ฌ์ด ์๊ธฐ์๊ฐ ๊ธ์ ์์ฑํด ๋๋ฆฝ๋๋ค.
์
์ฌ ์ง์์๋ ๋์๋ฆฌ ๋ชจ์ง์ ๋ฃ์ ์ ์๋ ๋งค๋๋ฌ์ด ์๊ธฐ์๊ฐ ๊ธ์ ์์ฑํด ์ค. ๋์ ํต์ฌ ๊ฐ์ ์ [๊ฐ์ 1], [๊ฐ์ 2]์ด๊ณ , ์ฑ๊ฒฉ์ ์ฅ์ ์ [์ฅ์ ]์ด์ผ.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#ํ์ฌ
์์ฌ๋ ๊ฑฐ๋์ฒ์ ๋ณด๋ผ ์ ์๋ ์์ ๋ฐ๋ฅธ ๋น์ฆ๋์ค ์ด๋ฉ์ผ ์์์ ๋ง๋ค์ด ๋๋ฆฝ๋๋ค.
ํ์ฌ ์
๋ฌด์ ๊ด๋ จํ์ฌ ์์ฌ์๊ฒ ๋ณด๋ผ ์ ์คํ ์ด๋ฉ์ผ ์ด์์ ์์ฑํด ์ค. ์ฃผ์ ๋ด์ฉ์ [๋ด์ฉ]์ด๊ณ , ๋ชฉ์ ์ [๋ชฉ์ ]์ด์ผ.
#refactoring
#architecture
#clean-code
๋ณต์กํ๊ฒ ์ฝํ ๋ ๊ฑฐ์ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ชจ๋ํํ๊ณ , ์ ์ ํ ๋์์ธ ํจํด(Factory, Strategy ๋ฑ)์ ์ ์ฉํ์ฌ ๋ฆฌํฉํ ๋งํ๋ ์ ๋ต ์๋ฆฝ.
๋น์ ์ ์๋์ด ์ํํธ์จ์ด ์ํคํ
ํธ์
๋๋ค. ์ ์๋ ์ฝ๋ ๋ฒ ์ด์ค๋ ๋์ ๊ฒฐํฉ๋(Coupling)์ ๋ฎ์ ์์ง๋(Cohesion) ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. 1. ํ์ฌ ์ฝ๋์ ๊ตฌ์กฐ์ ๋ฌธ์ ์ ์ ๊ธฐ์ ์ ์ธ ์ฉ์ด๋ก ์ค๋ช
ํ์ญ์์ค. 2. ์์กด์ฑ ์ฃผ์
(Dependency Injection)์ ํฌํจํ์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ ๊ตฌ์ฒด์ ์ธ ๋ฆฌํฉํ ๋ง ๋จ๊ณ๋ฅผ ์ ์ํ์ญ์์ค. 3. ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ์ ๋ต ํจํด(Strategy Pattern)์ด๋ ํฉํ ๋ฆฌ ํจํด(Factory Pattern) ์ค ์ด๋ ๊ฒ์ ์ ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ ํ์ง ์ ํํ๊ณ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช
ํ์ญ์์ค.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#์ปค๋ฎค๋์ผ์ด์
๊ฑฐ๋์ฒ์๊ฒ ์ ๊ท ํ๋ก์ ํธ ๋
ผ์๋ฅผ ์ํ ๋ฏธํ
์ผ์ ์ ์ ์ํ๋ ์ ์คํ ์ด๋ฉ์ผ ์ด์์ ์์ฑํฉ๋๋ค.
๋น์ ์ ๋น์ฆ๋์ค ์ปค์คํดํธ์
๋๋ค. [ํ์ฌ๋ช
]์ [๋ด๋น์]๋๊ป ์ ๊ท ํ๋ก์ ํธ ๋
ผ์๋ฅผ ์ํ ๋ฏธํ
์ ์ ์ํ๋ ์ ์คํ ์ด๋ฉ์ผ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ฉ์ผ์๋ ๋ช
ํํ ์ ๋ชฉ, ํ๋ก์ ํธ์ ๋ํ ๊ฐ๋จํ ์๊ฐ, ๋ฏธํ
์ ๋ชฉ์ , ๊ทธ๋ฆฌ๊ณ ์ ์ํ๋ ์๊ฐ๋ 2๊ฐ์ง๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
#์ด๋ ฅ์
#์ปค๋ฆฌ์ด
#๊ธ์ฐ๊ธฐ
ํ๋ฒํ ์๊ธฐ์๊ฐ์ ๋ด์ฉ์ ๊ตฌ์ฒด์ ์ธ ์ฑ๊ณผ์ ์์น๋ฅผ ๊ฐ์กฐํ์ฌ ์ฑ์ฉ ๋ด๋น์์ ๊ด์ฌ์ ๋๋๋ก ์์ ํฉ๋๋ค.
์ ๊ณตํด๋๋ฆฐ ์๊ธฐ์๊ฐ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก, ์ฑ์ฉ ๋ด๋น์์ ๊ด์ฌ์ ๋ ์ ์๋๋ก ๊ตฌ์ฒด์ ์ธ ์ฑ๊ณผ์ ์์น๋ฅผ ๊ฐ์กฐํ์ฌ ๋ค๋ฌ์ด์ฃผ์ธ์. ๋ด์ฉ์ ์ฌํ์ ํ๋ ฅ ํ ์ง์์๋ฅผ ์ํ ๊ฒ์ด๋ฉฐ, ๊ฒฝํ์ ๊ตฌ์ฒด์ฑ(What)๊ณผ ๊ฒฐ๊ณผ(Result)๋ฅผ ๋ช
ํํ ๋ณด์ฌ์ฃผ์ด์ผ ํฉ๋๋ค.
#์ด๋ฉ์ผ
#๋น์ฆ๋์ค
#๊ฑฐ์
#์ํฐ์ผ
์๋๋ฐฉ์ ๊ฐ์ ์ ์ํ์ง ์์ผ๋ฉด์ ๋จํธํ๊ฒ ์ ์์ ๊ฑฐ์ ํ๋ ์ ์คํ ๋น์ฆ๋์ค ์ด๋ฉ์ผ ์ด์์ ์์ฑํฉ๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ ํ์ฌ์ ์ฌ๊ฑด์ ์ ์ํด์ฃผ์ ํํธ๋์ญ์ ์๋ฝํ๊ธฐ ์ด๋ ต๋ค๋ ๋ด์ฉ์ ์ ์คํ ๊ฑฐ์ ์ด๋ฉ์ผ์ ์์ฑํด ์ฃผ์ธ์. ์๋๋ฐฉ์ ๋
ธ๋ ฅ์ ๋ํด ๊ฐ์ฌ๋ฅผ ํํ๊ณ , ์ถํ์ ๋ค์ ๊ธฐํ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋์์ค๋ก ๋ง๋ฌด๋ฆฌํด์ผ ํฉ๋๋ค.
#ํ์
#์์ฐ์ฑ
#์๊ฑด
#ํ์ํฌ
ํจ์จ์ ์ธ ์ฃผ๊ฐ ํ ํ์๋ฅผ ์ํ ๊ตฌ์ฒด์ ์ธ ์๊ฑด(Agenda)๊ณผ ์๊ฐ ๋ฐฐ๋ถ์ ์์ฑํฉ๋๋ค.
30๋ถ ์ ๋ ์์๋๋ ์ฃผ๊ฐ ํ ๋ฏธํ
์ ์ํ ์๊ฑด์ ์์ฑํด ์ฃผ์ธ์. ์์๋ '์ง๋ ์ฃผ ํ๊ณ ', '์ด๋ฒ ์ฃผ ์ฃผ์ ๋ชฉํ ๊ณต์ ', 'ํ์๋ณ ์งํ ์ํฉ ๊ณต์ ', '๊ฑด์์ฌํญ ๋ฐ Q&A'๋ก ๊ตฌ์ฑํ๊ณ ๊ฐ ํญ๋ชฉ๋ณ ์์ ์์ ์๊ฐ๋ ํจ๊ป ๋ช
์ํด ์ฃผ์ธ์.
#์ํํธ์จ์ด-์ํคํ
์ฒ
#๋ง์ดํฌ๋ก์๋น์ค
#DDD
#๋ฆฌํฉํ ๋ง
๊ฑฐ๋ํ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถ์ํ๊ณ , ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD) ์์น์ ๋ฐ๋ผ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ถ๋ฆฌํ๋ ์ ๋ต์ ์๋ฆฝํ๋ ํ๋กฌํํธ์
๋๋ค.
๋น์ ์ 15๋
๊ฒฝ๋ ฅ์ ์๋์ด ์ํํธ์จ์ด ์ํคํ
ํธ์
๋๋ค. ์ ๊ณต๋ ๋ ๊ฑฐ์ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๋ ์์กด์ฑ๊ณผ ๊ธฐ๋ฅ ๋ช
์ธ๋ฅผ ๋ถ์ํ์ฌ, ์ด๋ฅผ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ก ์ ํํ๊ธฐ ์ํ ์์ธํ ๋ง์ด๊ทธ๋ ์ด์
๋ก๋๋งต์ ์์ฑํ์ธ์. 1. ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ(DDD)์ ๋ฐ์ด๋๋ ์ปจํ
์คํธ(Bounded Context) ์ ์ ๋ฐฉ๋ฒ๋ก ์ ์ ์ฉํ์ฌ ์๋น์ค ๊ฒฝ๊ณ๋ฅผ ์๋ณํ์ญ์์ค. 2. ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํ ๋ถ์ฐ ํธ๋์ญ์
์ฒ๋ฆฌ ํจํด(Saga Pattern ๋ฑ)์ ์ ์ํ๊ณ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ ๋ถ์ํ์ญ์์ค. 3. API ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํ ํธ๋ํฝ ๋ผ์ฐํ
๋ฐ ๋ณด์ ์ ์ฑ
์ ํฌํจํ ์์คํ
๊ตฌ์ฑ๋๋ฅผ ํ
์คํธ๋ก ์์ ํ์ญ์์ค. 4. ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ต์ํํ๋ฉฐ ์ ์ง์ ์ผ๋ก ์ด์ฃผํ๊ธฐ ์ํ Strangler Fig ํจํด ์ ์ฉ ๊ณํ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช
ํ์ญ์์ค.
#๋ฅ๋ฌ๋
#์๊ณ์ด-๋ถ์
#Transformer
#Python
๋ณต์กํ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด Attention ๋ฉ์ปค๋์ฆ์ ํ์ฉํ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ์ํคํ
์ฒ๋ฅผ ์ค๊ณํ๊ณ ํ์ด์ฌ ์ฝ๋๋ก ๊ตฌํํ๋ ํ๋กฌํํธ์
๋๋ค.
๋น์ ์ ์ ๋ฌธ ๋ฅ๋ฌ๋ ์ฐ๊ตฌ์์
๋๋ค. ๊ฒฐ์ธก์น๊ฐ ํฌํจ๋์ด ์๊ณ ๋
ธ์ด์ฆ๊ฐ ์ฌํ ๋ค๋ณ๋ ์๊ณ์ด ๋ฐ์ดํฐ(์ผ์ ๋ฐ์ดํฐ, ๊ธ์ต ์งํ ๋ฑ)๋ฅผ ์์ธกํ๊ธฐ ์ํ ์ปค์คํ
Transformer ๋ชจ๋ธ ์ํคํ
์ฒ๋ฅผ ์ค๊ณํ์ญ์์ค. 1. ๊ธฐ์กด LSTM/GRU ๋ชจ๋ธ ๋๋น Transformer์ Self-Attention ๋ฉ์ปค๋์ฆ์ด ์๊ณ์ด ๋ฐ์ดํฐ์ ์ฅ๊ธฐ ์์กด์ฑ(Long-term dependency)์ ํ์
ํ๋ ๋ฐ ๊ฐ์ง๋ ์ด์ ์ ์ํ์ ์ผ๋ก ์ค๋ช
ํ์ญ์์ค. 2. Positional Encoding ๋์ ์๊ณ์ด ํน์ฑ์ ๋ง๋ Time2Vec ๋๋ ์์น ์ ๋ณด๋ฅผ ์๋ฒ ๋ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ์ญ์์ค. 3. ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํ Dropout, Layer Normalization ๋ฐ Regularization ์ ๋ต์ ํฌํจํ ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ PyTorch ๋๋ TensorFlow ์ฝ๋๋ก ์์ฑํ์ญ์์ค. 4. ํ์ต ์ ์ฌ์ฉํ ์์ค ํจ์(Loss Function)์ ํ๊ฐ ์งํ(Metric)๋ฅผ ์ ํํ๊ณ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช
ํ์ญ์์ค.
#์๊ธฐ์๊ฐ
#ํํ
#์ด๊ธ
์ด๋ฆ๊ณผ ์ทจ๋ฏธ๋ฅผ ํฌํจํ์ฌ ์น๊ตฌ๋ค์๊ฒ ํ๋ ๊ฐ๋จํ ์๊ธฐ์๊ฐ๋ฅผ ๋ง๋ค์ด ๋ณด์ธ์.
์๋
ํ์ธ์? ์ ์ด๋ฆ์ [์ด๋ฆ]์ด๊ณ , ์ ์ทจ๋ฏธ๋ [์ทจ๋ฏธ]์
๋๋ค. ์ ๋ถํ๋๋ฆฝ๋๋ค. ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฐ์ค๋ฌ์ด ์๊ธฐ์๊ฐ ๋ฌธ์ฅ์ ๋ง๋ค์ด ์ฃผ์ธ์.
#์ฃผ๋ฌธ
#์นดํ
#ํํ
์นดํ์์ ๋ฐ๋ฆฌ์คํ์๊ฒ ์๋ฉ๋ฆฌ์นด๋
ธ ํ ์์ ์ฃผ๋ฌธํ๋ ๋ํ๋ฅผ ์์ฑํด ๋ณด์ธ์.
์๋ฉ๋ฆฌ์นด๋
ธ ํ ์ ์ฃผ์ธ์. ์ฌ๊ธฐ์ ๋์๊ฒ ์ด์, ํฌ์ฅํด๋๋ฆด๊น์? ๋ผ๋ ๋ด์ฉ์ ํฌํจํ์ฌ ์นดํ ์๋๊ณผ ์ง์์ ๋ํ๋ฅผ ์์ฑํด ์ฃผ์ธ์.
#์๊ธฐ์๊ฐ
#์๋ฌธ
#์ผ์
์์ ์ ์ด๋ฆ, ๋์ด, ์ฌ๋ ๊ณณ, ๊ทธ๋ฆฌ๊ณ ์ทจ๋ฏธ๋ฅผ ํฌํจํ์ฌ ์งง์ ์๊ธฐ์๊ฐ ๊ธ์ ์์ฑํด ๋ณด์ธ์.
์๋
ํ์ธ์? ์ ์ด๋ฆ์ [์ด๋ฆ]์
๋๋ค. ์ ๋ [๋์ด]์ด์ด๊ณ [์ฌ๋ ๊ณณ]์ ์ด๊ณ ์์ต๋๋ค. ์ ์ทจ๋ฏธ๋ [์ทจ๋ฏธ]์
๋๋ค. ์ ๋ถํ๋๋ฆฝ๋๋ค.
#์ค๋ฆฌํ
#์ฒ ํ
#์ด๋ก
#๋นํ์ ์ฌ๊ณ
๋ ๋ํ์ ์ธ ๊ท๋ฒ์ค๋ฆฌํ ์ด๋ก ์ธ ๊ณต๋ฆฌ์ฃผ์์ ์๋ฌด๋ก ์ ํต์ฌ ์ฐจ์ด์ ์ ์ค๋ช
ํ๊ณ , ์ค์ ๋๋ ๋ง ์ํฉ์ ์ ์ฉํด ๋ด
๋๋ค.
๊ณต๋ฆฌ์ฃผ์(Utilitarianism)์ ์๋ฌด๋ก (Deontology)์ ๊ทผ๋ณธ์ ์ธ ์ฒ ํ์ ์ฐจ์ด์ ์ ์์ธํ ์ค๋ช
ํ์ญ์์ค. ํนํ, '๊ฒฐ๊ณผ์ ๊ฐ์น'์ '์๋ฌด์ ์ํ' ์ค ์ด๋ ์ชฝ์ ์ค์ํ๋์ง ๋น๊ตํ๊ณ , ๊ฐ์์ ์๋ช
์ค๋ฆฌ ๋๋ ๋ง ์ํฉ(์: ํธ๋กค๋ฆฌ ๋ฌธ์ ๋ณํ)์ ์ ์ํ์ฌ ๊ฐ ์ด๋ก ์ด ๋์ถํ๋ ๊ฒฐ๋ก ์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ๋ถ์ํ์ญ์์ค.
#ํ์ด์ํ
#๊ธฐ์ ์ฒ ํ
#์กด์ฌ๋ก
#๋
ผ๋ฆฌ
๋ ๋ณด์คํธ๋กฌ์ ์๋ฎฌ๋ ์ด์
๊ฐ์ค์ ์๊ฐํ๊ณ , ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์๋ฎฌ๋ ์ด์
์์ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ ๋ํ ์ฒ ํ์ ๋
ผ์ฆ์ ๋ค๋ฃน๋๋ค.
๋ ๋ณด์คํธ๋กฌ(Nick Bostrom)์ ์๋ฎฌ๋ ์ด์
๊ฐ์ค(Simulation Hypothesis)์ ์ฃผ์ ๋
ผ๊ฑฐ๋ฅผ ์์ฝํ๊ณ , ์ด ๊ฐ์ค์ด ํ๋ ๊ณผํ๊ณผ ์ฒ ํ์ ๋์ง๋ ์๋ฏธ๋ฅผ ๋ถ์ํ์ญ์์ค. ๋ํ, ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์๋ฎฌ๋ ์ด์
๋ด์ ์กด์ฌํ๋ค๋ ๊ฐ์ ์ด ์ฐธ์ด๋ผ๋ฉด, ๋๋์ ์ฑ
์๊ณผ ์์ ์์ง์ ๊ฐ๋
์ด ์ด๋ป๊ฒ ์ฌ์ ์๋์ด์ผ ํ๋์ง ๋
ผ์ํ์ญ์์ค.
#๊ฒ์์ด๋ก
#์ํ
#์ ๋ต
#์ฌ๋ฆฌํ
๋น์ ๋ก์ฌ ๊ฒ์์ ๋ํ์ ์์ธ ์ฃ์์ ๋๋ ๋ง๋ฅผ ํตํด ์ ๋ต์ ์์ฌ๊ฒฐ์ ์ด๋ก ์ ์ค๋ช
ํฉ๋๋ค.
๊ฒ์ ์ด๋ก (Game Theory)์์์ ์ฃ์์ ๋๋ ๋ง(Prisoner's Dilemma) ๊ฐ๋
์ ์ ์ํ๊ณ , ๋ด์ฌ ๊ท ํ(Nash Equilibrium)์ด ๋ฐ์ํ๋ ๊ณผ์ ์ ์ค๋ช
ํ์ญ์์ค. ์ด ์ด๋ก ์ด ๊ตญ๊ฐ ๊ฐ ๋ฌด์ญ ์ ์, ํ๊ฒฝ ์ค์ผ ๋ฌธ์ ๋ฑ ํ๋ ์ฌํ์ ์ง๋จํ๋ ๋๋ ๋ง๋ฅผ ์ดํดํ๋ ๋ฐ ์ด๋ป๊ฒ ์ ์ฉ๋ ์ ์๋์ง ๊ตฌ์ฒด์ ์ธ ์์๋ฅผ ๋ค์ด ์์ ํ์ญ์์ค.