๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ
๋ค์ค ํ๋ก๊ทธ๋๋ฐ ์์คํ ์์ ๋ณต์์ ํ๋ก์ธ์ค๋ฅผ ์ฃผ๋ฉ๋ชจ๋ฆฌ์ ์์ฉํ๊ธฐ ์ํ์ฌ ์ฃผ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ๋ถํ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์ ์ ์๋ฏธํ๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋์ด์ง๋ค.
์ฐธ๊ณ ) ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ์์คํ ์ด๋?
์ฃผ๊ธฐ์ต์ฅ์น ์์ 2๊ฐ ์ด์์ ํ๋ก๊ทธ๋จ์ด ์ ์ฌ๋์ด ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ ์ถ๋ ฅ ๋์์ ํ๊ฒ ๋๋ฉด CPU๋ก ํ์ฌ๊ธ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ํํ๋๋ก ํ์ฌ ํจ์จ์ ์ฆ๊ฐ์ํค๊ณ ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ํ๋ก๊ทธ๋จ ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ํ ๋น๋์ด์ผ๋ง ํ๋ ๊ด๋ฆฌ ๊ธฐ๋ฒ
- ๊ณ ์ ๋ถํ ๊ธฐ๋ฒ : ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ณ ์ ๋ ํํฐ์ ์ผ๋ก ๋ถํ , ๋ด๋ถ ๋จํธํ ๋ฐ์
- ๋์ ๋ถํ ๊ธฐ๋ฒ : ํํฐ์ ๋ค์ด ๋์ ์์ฑ๋๋ฉฐ ์์ ์ ํฌ๊ธฐ์ ๊ฐ์ ํํฐ์ ์ ์ ์ฌ, ์ธ๋ถ ๋จํธํ ๋ฐ์
<์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์์ ๋จํธํ๋ฅผ ์ค์ด๋ ํ๋ก์ธ์ค ํ ๋น ๋ฐฉ์>
- ์ต์ด ์ ํฉ(First Fit) : ๊ฐ์ฅ ์ฒ์ ๋ง๋๋ ๋น ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ก์ธ์ค ํ ๋น
- ์ต์ ์ ํฉ(Best Fit) : ๋น ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ ์ฐจ์ด๊ฐ ๊ฐ์ฅ ์ ๊ฒ ๋๋ ๊ณณ์ ํ ๋น
- ์ต์ ์ ํฉ(Worst Fit) : ๋น ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ์ ํ๋ก์ธ์ค ํฌ๊ธฐ ์ฐจ์ด๊ฐ ๊ฐ์ฅ ํฌ๊ฒ ๋๋ ๊ณณ์ ํ ๋น, ํ์ ๋น ๊ณต๊ฐ์ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์์ ๊ฒ์ด๋ผ๋ ๊ฐ์ ํ์ ์ํ
์ฐธ๊ณ ) ๋ด๋ถ ๋จํธํ์ ์ธ๋ถ ๋จํธํ
๋ด๋ถ ๋จํธํ : ๊ณ ์ ๋ ํํฐ์ ๋ณด๋ค ์์ ํ๋ก์ธ์ค ์กฐ๊ฐ์ด ํ ๋น๋ ๊ฒฝ์ฐ, ๋น๊ณต๊ฐ์ด ๋ฐ์ํ๋๋ฐ ์ด๋ฅผ ๋ด๋ถ ๋จํธํ๋ผ๊ณ ํจ
์ธ๋ถ ๋จํธํ : ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ํ๋ก์ธ์ค ์กฐ๊ฐ๋ค์ด ์์ฑ,์ ๊ฑฐ๋ฅผ ๋ฐ๋ณตํ๋ค ๋ณด๋ฉด ์ฌ์ ๊ณต๊ฐ์ด ์์ ์กฐ๊ฐ๋ค๋ก ๋๋์ด์ง๋ ๊ฒ์ ์ธ๋ถ ๋จํธํ๋ผ๊ณ ํจ
๋ถ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ํ๋ก๊ทธ๋จ์ ์ผ๋ถ๊ฐ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๊ณต๊ฐ์ ํ ๋น๋ ์ ์๋ ๊ธฐ๋ฒ
- ํ์ด์ง : ํ๋ก์ธ์ค๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ ์์ ๋ธ๋ก๋ค๋ก ๋๋ด์ ๋, ๊ทธ ๋ธ๋ก๋ค์ ํ์ด์ง๋ผ๊ณ ์นญํจ
- ํ๋ ์ : ํ์ด์ง ํฌ๊ธฐ์ ๊ฐ์ ์ฃผ๊ธฐ์ต์ฅ์น ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก
- ์ธ๊ทธ๋จผํธ : ์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ ๋ ผ๋ฆฌ์ ๋จ์
ํ์ด์ง & ์ธ๊ทธ๋จผํ ์ด์
๋จ์ ํ์ด์ง(Paging)
- ํ๋ก์ธ์ค๋ ํ์ด์ง๋ก ๋๋์ด์ง๊ณ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ ์์ผ๋ก ๋๋์ด์ง๋ ๊ธฐ๋ฒ
- ํ์ด์ง ํ ์ด๋ธ์๋ ๊ฐ ํ์ด์ง ๋ฒํธ์ ํด๋น ํ์ด์ง๊ฐ ํ ๋น๋ ํ๋ ์์ ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ฅ
- ํ ๋น์ ํญ์ ํ๋ ์์ ์ ์ ๋ฐฐ๋ก ํ ๋น๋๋๋ฐ, ๋ง์ฝ ํ๋ก์ธ์ค๊ฐ ํ๋ ์์ ์ ์ ๋ฐฐ๋ณด๋ค ์ด์ง ์๋ค๋ฉด ํ ๋น๋ ๋ง์ง๋ง ํ๋ ์์ ์ ๋ถ ์ฌ์ฉ๋์ง ์๊ณ ๋จ์๋ฒ๋ฆฌ๋ ๋ฌธ์ ๋ฐ์ (๋ด๋ถ ๋จํธํ)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง
- ๋จ์ ํ์ด์ง๊ณผ ๋ค๋ฅด๊ฒ, ํ๋ก์ธ์ค ํ์ด์ง๋ฅผ ๋ชจ๋ ์ ์ฌ ์ํฌ ํ์๊ฐ ์์
- ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ก ์ธํด ์ค๋ฒํค๋๊ฐ ์กด์ฌ
๋จ์ ์ธ๊ทธ๋จผํ ์ด์ (Segmetation)
- ํ๋ก์ธ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ธ๊ทธ๋จผํธ๋ก ๋ถํ
- ์ธ๊ทธ๋จผํธ ํ ์ด๋ธ์๋ ๊ฐ ์ธ๊ทธ๋จผํธ์ ๊ธฐ์ค(์ธ๊ทธ๋จผํธ์ ์์ ๋ฌผ๋ฆฌ ์ฃผ์)๊ณผ ํ๊ณ(์ธ๊ทธ๋จผํธ์ ์ต๋ ๊ธธ์ด)๋ฅผ ์ ์ฅ
- ์ธ๊ทธ๋จผํธ๋ค์ด ์ ์ฌ,์ ๊ฑฐ ๋๋ ์ผ์ด ๋ฐ๋ณต๋๋ฉด ์์ ๊ณต๊ฐ๋ค์ด ๋ง์ ์์ ์์ ์กฐ๊ฐ๋ค๋ก ๋๋์ด์ ธ ๋ชป์ฐ๊ฒ ๋ ์ ์์ (์ธ๋ถ ๋จํธํ)
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํ ์ด์
- ํ์ํ์ง ์์ ์ธ๊ทธ๋จผํธ๋ค์ ๋ก๋๋์ง ์์
- ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ก ์ธํด ์ค๋ฒํค๋๊ฐ ์กด์ฌ
Reference
https://github.com/gyoogle/tech-interview-for-developer
https://technote-mezza.tistory.com/92