common module design Jan 2, 2025 ๊ณตํต๋ชจ๋์ค๊ณ ์ถ์ ๋น๋: ์ ์ํํธ์จ์ด ์ค๊ณ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฌธ์ํํ๋ ๊ณผ์ ์ค๊ณ ๋ฐฉ์ ๋น๊ต: ์ ์ฐจ์งํฅ: ์๋๊ฐ ๋น ๋ฅด์ง๋ง ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ ๊ฐ์ฒด์งํฅ: ๋์ด๋ ๋๊ณ ์๋๋ ๋๋ฆฌ์ง๋ง ์ฌํ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฌ์ ์ํํธ์จ์ด ์ค๊ณ ๋ชจ๋ธ ์ค๊ณ ๊ตฌ์ฑ ์์ ๋ฐ์ดํฐ ์ค๊ณ ์ํคํ ์ฒ ์ค๊ณ ์ธํฐํ์ด์ค ์ค๊ณ ์ ์ฐจ ์ค๊ณ ์ค๊ณ ๊ณ์ธต ์์(์ํคํ ์ฒ) ์ค๊ณ ์๋น ์ค๊ณ ์์คํ ๊ตฌ์กฐ DB ์ค๊ณ ํ๋ฉด ๋ ์ด์์ ๋ฑ ํ์(๋ชจ๋) ์ค๊ณ ์์ธ ์ค๊ณ ๊ตฌ์ฑ ์์์ ๋ด๋ถ ๋ก์ง ๋์ ํ์ ๋ฑ ์ํํธ์จ์ด ์ค๊ณ ์ถ์ํ ์์ธ ์ค๊ณ ์ด์ ์ ๋๋ต์ , ํฌ๊ด์ ๊ตฌ์ ์ค๊ณ(๊ตฌ์ฒดํ)๋ฅผ ํจ์จ์ ์ผ๋ก ์ํํ๊ธฐ ์ํ ๊ณผ์ ์ถ์ํ ๊ธฐ๋ฒ 3๊ฐ์ง ์ ์ด ์ถ์ํ: ๋งค์ปค๋์ฆ์ด ์๋ ํฌ๊ด์ ํํ ๊ณผ์ ์ถ์ํ: ์ํ ๊ณผ์ ์ด ์๋ ์ ๋ฐ์ ์ธ ํ๋ฆ ์๋ฃ ์ถ์ํ: ๋ฐ์ดํฐ๋ฅผ ๋ํ์ ์ธ ํํ์ผ๋ก ๋์ฒด ๋ฐ๋์งํ ์ค๊ณ์ ๊ธฐ์ค ๋ชจ๋ ๋ด์ฉ์ ๊ตฌํํ ์ ์์ด์ผ ํจ ๊ฒฐํจ ๊ธฐ๋ฅ์ ์ถ์ ํ ์ ์์ด์ผ ํจ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํด์ผ ํจ ์ฃผ์ ํน์ฑ: ๋ชจ๋(๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ) ๋ช ํ(์ ์ฐจ์ ์๋ฃ๊ตฌ์กฐ) ๊ณ์ธต์ (๋ชจ๋์ ํจ๊ณผ์ ์ ์ด) ๋ชจ๋ํ ์์คํ ์ ๋ถํดํ๊ณ ์ถ์ํํ๋ ๊ณผ์ ์ฅ์ : ์ฑ๋ฅ ํฅ์, ์์ ์ฉ์ด, ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๊ด๋ฆฌ ๊ฐ์ ๋ชจ๋ ๊ฐ์์ ๋น์ฉ์ ๊ด๊ณ: ๋ชจ๋์ ๊ฐ์๊ฐ ๋ง์ โ ๋ชจ๋ ํฌ๊ธฐ ์์์ง โ ํตํฉ๋น์ฉ ์์น ๋ชจ๋์ ๊ฐ์๊ฐ ์ ์ โ ๋ชจ๋ ํฌ๊ธฐ ์ปค์ง โ ํตํฉ๋น์ฉ ํ๋ฝ ๊ณตํต ๋ชจ๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ์ฌ์ฉ๋ฒ ๊ณต๊ฐ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํจ ํต์ฌ ํน์ฑ: ๊ณต์ ๋์ ์์ง๋๋ฅผ ๋์ด๊ณ , ์ ์ด๋์ ๊ฒฐํฉ๋๋ ๋ฎ์ถค ์ํํธ์จ์ด ์ฌ์ฌ์ฉ ์ด๋ฏธ ๊ฒ์ฆ์ด ์๋ฃ๋ ๊ธฐ๋ฅ์ ์ฌ๊ตฌ์ฑ ์ฌ์ฌ์ฉ ๋์: ํจ์, ๊ฐ์ฒด, ์ปดํฌ๋ํธ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทผ ๋ฐฉ์: ์์ฑ ์ค์ฌ: ์ถ์ํ ํํ๋ฅผ ๊ตฌ์ฒดํ ํฉ์ฑ ์ค์ฌ: ๋ชจ๋์ ์กฐ๋ฆฝ ์ํํธ์จ์ด ์ฌ๊ณตํ ๊ธฐ์กด ์์คํ ์ ์ด์ฉํ์ฌ ๋ณด๋ค ๋์ ์์คํ ๊ตฌ์ถ ์ํํธ์จ์ด์ ์๊ธฐ๋ฅผ ์ ์ง๋ณด์ ์ธก๋ฉด์ผ๋ก ํด๊ฒฐ ์ฃผ์ ํ๋ก์ธ์ค: ๋ถ์: ๋ช ์ธ๋ฅผ ํตํด ์ฌ๊ณตํ์ ๊ฐ์น๋ฅผ ํ๋จ ์ฌ๊ตฌ์ฑ: ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑ ์ญ๊ณตํ: ์ธ๊ณ์ธ ์ฝ๋(์ ์ง๋ณด์ ์์ ์ด ์ด๋ ค์ด ์ฝ๋)๋ก๋ถํฐ ์์ค์ฝ๋๋ฅผ ๋ณต๊ตฌ, ์ฌ๋ฐ๊ฒฌ ์ด์: ๋ค๋ฅธ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ณํ ๊ณตํต ๋ชจ๋ ์๋ณ ํ๋ก์ธ์ค ๋จ์ ์ ๋ฌด ๊ธฐ๋ฅ ๋ถ์ ์ ๋ฌด ๊ธฐ๋ฅ์ ์ ์ (ํ์คํ) ๋๋ฝ์ด๋ ์ค๋ณต๋๋ ๊ธฐ๋ฅ ํ์ธ ์ ์ค์ผ์ด์ค ๋ถ์ ํฌํจ๊ด๊ณ ยซincludeยป ๋ถ์ ๊ฒํ ํ์ ์งํ ๊ณตํต ๋ชจ๋ ์ ์ ์์ธ ๊ธฐ๋ฅ ๋ช ์ธ ์๋ณ๋ ๊ธฐ๋ฅ ํตํฉ ๊ณตํต ๊ธฐ๋ฅ ํตํฉ ๊ด๋ฆฌ ํ๋ก์ธ์ค ์๋ฆฝ ๋ฌธ์ ์์ฑ ๊ณตํต ๋ชจ๋ ๋ช ์ธ ์์น ์์ฌ์ํต์ ์ํ ๋ช ์ธ ์์ฑ ์์ฌ์ํต์ด ์ ๋๋ ์ฝ๋๋ ์ธ๊ณ์ธ ์ฝ๋๋ก ๊ฐ์ฃผ ๋ชจ๋ ์์ง๋ ์ ์: ๋ด๋ถ ์์ ๊ฐ ๊ด๊ณ์ ๋ฐ์ ๋ ํน์ง: ์์ง๋๊ฐ ๋์์๋ก ๋ชจ๋ ๋ ๋ฆฝ์ฑ ํฅ์ ์์ง๋ ๋จ๊ณ (๋์ โ ๋ฎ์) ๊ธฐ๋ฅ์ ์์ง๋: ๋จ์ผ ๋ฌธ์ ํด๊ฒฐ ์์ฐจ์ ์์ง๋: ์ถ๋ ฅ์ด ๋ค๋ฅธ ๋ชจ๋์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ ํต์ ์ ์์ง๋: ํ๋์ ์ถ๋ ฅ์ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์ฉ ์ ์ฐจ์ ์์ง๋: ์์ฐจ์ ๋ชจ๋ ์ํ ์๊ฐ์ ์์ง๋: ํน์ ์๊ธฐ ๋์ ์ํ ๋ ผ๋ฆฌ์ ์์ง๋: ์ ์ฌ ์ฑ๊ฒฉ/ํํ์ ๊ธฐ๋ฅ ํตํฉ ์ฐ์ฐ์ ์์ง๋: ๋ฌด๊ด๋ จ ๊ธฐ๋ฅ ํตํฉ ๋ชจ๋ ๊ฒฐํฉ๋ ์ ์: ๋ชจ๋ ๊ฐ ์์กด์ฑ ์ ๋ ํน์ง: ๊ฒฐํฉ๋๊ฐ ๋ฎ์์๋ก ๋ชจ๋ ๋ ๋ฆฝ์ฑ ํฅ์ ๊ฒฐํฉ๋ ๋จ๊ณ (๋ฎ์ โ ๋์) ์๋ฃ ๊ฒฐํฉ๋ ์ธ์์ ๋งค๊ฐ๋ณ์๋ฅผ ํตํ ์ํธ์์ฉ ์: ๋์๋์ฌ โท ๋์ฌ์๊ธ๊ณ์ฐ ์คํฌํ ๊ฒฐํฉ๋ ๋์ผ ์๋ฃ๊ตฌ์กฐ ๊ณต์ ์: ๋์๋์ฌ โท ํ์๋ฑ๊ธ โท ๋์ฌ์๊ธ๊ณ์ฐ ์ ์ด ๊ฒฐํฉ๋ ์ ์ด ์์์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ ์ ์ฐจ ๋ณํ ์: ์ฌ๊ณ ํํฉ (์์=1, ์์=0) ์ธ๋ถ ๊ฒฐํฉ๋ ์ง์ ์ ์ธ ๋ด๋ถ ๋ฐ์ดํฐ ์ฐธ์กฐ ๊ณต์ ๊ฒฐํฉ๋ ์ธ๋ถ ์ ์ธ ๋ณ์ ์ฐธ์กฐ ๊ด๋ จ ์๋ ๋ชจ๋์ ์ ๊ทผ ๊ฐ๋ฅ์ฑ ๋ด์ฉ ๊ฒฐํฉ๋ ์ง์ ์ ์ธ ๋ด๋ถ ๊ธฐ๋ฅ/๋ฐ์ดํฐ ์ฌ์ฉ ๋ณต์ก๋ ์ธก์ ๊ณต์ ๋ (Fan-In) ์ ์: ์์ ์ ํธ์ถํ๋ ๋ชจ๋์ ์ ํน์ง: ๋์ ๊ณต์ ๋ = ์ข์ ๋ชจ๋ํ ์ฃผ์์ฌํญ: ๋จ์ผ ์คํจ์ง์ ๊ด๋ฆฌ ์ค์ ๊ด๋ฆฌ ํ์ ์ฒ ์ ํ ํ ์คํธ ๊ฒ์ฆ ์ ์ด๋ (Fan-Out) ์ ์: ์์ ์ด ํธ์ถํ๋ ๋ชจ๋์ ์ ํน์ง: ๋์ ์ ์ด๋๋ ์ ๋ฌด๋ก์ง ๋จ์ํ ๊ฒํ ํ์