2024. 1. 11. 17:01ใ๋ฉด์ ์ค๋น/๋ฉด์ ์คํฐ๋
24.01.03 ์ผ์๋ก ์งํ๋ ๋ฉด์ ์คํฐ๋์์ ๋์๋ ๋ด์ฉ์ ์์นด์ด๋นํ๊ธฐ ์ํ ๋ฌธ์์ ๋๋ค.
์ด์์ฒด์
1. ๋ ์ง์คํฐ์ CPU ์บ์๋ฅผ ๋น๊ตํด์ฃผ์ธ์.
๋ ์ง์คํฐ๋ CPU ๋ด์ ์กด์ฌํ๋ ์ผ์ข ์ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก, ์ปดํจํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์ ์ฅ ๊ณต๊ฐ๋ค ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์๋๋ฅผ ์๋ํ๋ ๋ฐ๋๊ธ๋ถ๋ก ์ฉ๋์ด ๊ฐ์ฅ ์๋ค. ๋ ์ง์คํฐ์๋ ํ์ฌ CPU๊ฐ ์ค์๊ฐ์ผ๋ก ์ํ ์ค์ธ ์ฐ์ฐ์ ์ง์ ์ ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๋ค. ๊ฐ์ฅ ๋น๋ฒํ๊ฒ ์กฐํ๋๋ ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๊ฐ๊น๊ณ ๊ฐ์ฅ ๋น ๋ฅธ ๊ณณ์ ์ ์ฌ๋๋ ํํ์ด๋ค. ๋ํ ์ด์์ฒด์ ์ ์ผ๋ฐ์ ์ผ๋ก ํ๊ธฐ๋๋ 32๋นํธ๋ 64๋นํธ์ ์ซ์๋ ๋ ์ง์คํฐ์ ํฌ๊ธฐ์ด๊ณ ์ด ํฌ๊ธฐ๊ฐ ์ปค์ง ์๋ก ์ฐ์ฐ ์๋๊ฐ ๋นจ๋ผ์ง๋ค.
CPU ์บ์๋ ๋ ์ง์คํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก CPU ๋ด ์กด์ฌํ๋ ์ ์ฅ ๊ณต๊ฐ์ด์ง๋ง, ๋ ์ง์คํฐ๋ณด๋ค๋ ๋๋ฆฌ๊ณ ๋์ ํฌ๊ธฐ๊ฐ ๋ ํฌ๋ค. ๋ค๋ง ๋ ์ง์คํฐ์ ๋น๊ตํ์ ๋ ๋ ๋๋ฆฐ ๊ฒ์ด์ง CPU ์บ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก S-RAM์ผ๋ก ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์ D-RAM์ ์ฌ์ฉํ๋ ์ผ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋นํ๋ฉด ์ฑ๋ฅ์ ์ผ๋ก ํจ์ฌ ์ฐ์ํ๋ค. CPU ์บ์๋ ๋ค์ L1, L2, L3 ๋ฑ์ผ๋ก ๋๋๊ณ ์ซ์๊ฐ ์ปค์ง์๋ก ์ฑ๋ฅ์ ๊ฐ์ํ์ง๋ง ์ฉ๋์ด ์ปค์ง๋ค. CPU ์บ์๋ ์ผ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ค ์ค ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ค์ ์ ์ฌํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
2. ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ ๋ด ์ฝ๋ ์์ญ์ ๋ถ๋ณ์ฑ์ ๋ณด์ฅ๋์ด์ผ ํ๋๋ฐ OS ๋ ๋ฒจ์์ ์ด๋ฅผ ์ด๋ป๊ฒ ๋ณด์ฅํ๋์ง ์ค๋ช ํด์ฃผ์ธ์.
MMU๊ฐ ํด๋น ์ญํ ์ ์ํํ๋ค. MMU๋ ์ด ๋ฟ๋ง ์๋๋ผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋งคํ์ ์ง์ํ๊ณ , ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํ ๋น๋ ์ฃผ์ ๊ณต๊ฐ์ ๋์ด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์นจ๋ฒํ๋ ค๊ณ ํ ๋ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ์ญํ ์ ์ํํ๋ค.
Database
1. ํค์ ์๋ฏธ์ ์ข ๋ฅ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํค๋ ํํ์ ์๋ณํ ์ ์๋ ์์ฑ ํน์ ์์ฑ๋ค์ ์กฐํฉ์ ์๋ฏธํ๋ค.
์ด ๋ ํค๊ฐ ์ ์ผ์ฑ์ ๋ง์กฑํ๋ฉด ์ํผํค๊ฐ ๋๊ณ , ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ชจ๋ ๋ง์กฑํ๋ฉด ์ด๋ ํ๋ณดํค๊ฐ ๋๋ค.
ํ๋ณดํค ์ค ํ๋๋ฅผ ์ ํํ์ฌ ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด ๋ ๋ค๋ฅธ ๋๋จธ์ง ํ๋ณดํค๋ค์ ๋์ฒดํค๊ฐ ๋๋ค. ๊ธฐ๋ณธํค๋ NULL ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ์ค๋ณต ๊ฐ์ ๊ฐ์ง ์๋ ์๋ค. ์ด๋ฅผ ๊ฐ์ฒด๋ฌด๊ฒฐ์ฑ์ด๋ผ๊ณ ํ๋ค.
ํค์ ์ข ๋ฅ ์ค์ ์ธ๋ํค๋ ์กด์ฌํ๋๋ฐ, ์ด๋ ํ ์ด๋ธ(๋ฆด๋ ์ด์ ) ๊ฐ ๊ด๊ณ๋ฅผ ํํํ๊ธฐ ์ํ ์๋จ์ผ๋ก ์ฌ์ฉ๋๋ค. ํน์ ํ ์ด๋ธ ๋ด์ ์กด์ฌํ๋ ์ธ๋ํค๋ ํด๋น ํ ์ด๋ธ์ด ์ฐธ์กฐํ๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ก ์ธํด ํด๋น ํ ์ด๋ธ ๋ด ์ธ๋ํค ์นผ๋ผ์ ์ฐธ์กฐ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค ์นผ๋ผ์ ์๋ ๊ฐ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฅผ ์ฐธ์กฐ๋ฌด๊ฒฐ์ฑ์ด๋ผ๊ณ ํ๋ค.
2. ์ธ๋ฑ์ค๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ธ์.
์ธ๋ฑ์ค๋ ํน์ ํ ์ด๋ธ ๋ด ๊ฒ์ ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ์ ์งํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก B-Tree ๊ณ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ค์ ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ์ B*Tree๋ผ๊ณ ํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ ์ ํ ํ์ฉํ ๊ฒฝ์ฐ ๊ฒ์ ์ฑ๋ฅ์ ์ด์ ์ ์ฑ๊ธธ ์ ์์ง๋ง ์ถ๊ฐ์ ์ธ ์ ์ฅ ๊ณต๊ฐ์ด ํ์ํ๋ค๋ ์ ๊ณผ, DML ์คํ ์ ์ธ๋ฑ์ค์ ์ ๋ ฌ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ธฐ ์ํ ์ถ๊ฐ์ ์ธ ๋น์ฉ์ด ๋ ๋ค๋ ๋จ์ ๋ ์กด์ฌํ๋ค.
3. ํธ๋์ญ์ ์ ์ ์์ ACID์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
ํธ๋์ญ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํํ๋ ์ํธ์์ฉ์ ๋จ์์ด๋ค. ACID๋ ํธ๋์ญ์ ์ ์ฑ์ง์ ๋ํ๋ด๋ 4๊ฐ์ง ๋จ์ด์ ์๊ธ์๋ง์ ๋ฐ์ ๋ง๋ ๋ง์ด๋ค. ์ด๋ค์ ๊ฐ๊ฐ ์์์ฑ(Atomicity), ์ผ๊ด์ฑ(Consistency), ๋ ๋ฆฝ์ฑ(Isolation), ์ง์์ฑ(Durability)์ ์๋ฏธํ๋ค.
์์์ฑ์ด๋, ํ๋์ ํธ๋์ญ์ ์์ ์ํ๋๋ ์์ ์ ๊ฒฐ๊ณผ๋ All or Nothing์ด์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ผ๊ด์ฑ์ด๋, ํธ๋์ญ์ ์คํ ์ ํ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด๋๊ฒ ์ ํจํ ์ํ์ฌ์ผ ํ๋ค๋ ์ฑ์ง์ด๋ค.
๋ ๋ฆฝ์ฑ์ด๋, ํน์ ํธ๋์ญ์ ์ด ์คํ๋๋ ์์ค์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ด์ ๋ผ์ด๋ค ์ ์๋ ์ฑ์ง์ ์๋ฏธํ๋ค.
์ง์์ฑ์ด๋, ํธ๋์ญ์ ์ ์ํด ๋ณ๊ฒฝ๋ ๊ฒฐ๊ณผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์ง์ํด์ ๊ด๋ฆฌ๋์ด์ผ ํ๋ค๋ ์ฑ์ง์ด๋ค.
4. ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค์ ๋ํ ์ค๋ช ๊ณผ ๊ฐ ๊ฒฉ๋ฆฌ์์ค์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค์ ๋ฎ์ ๊ฒฉ๋ฆฌ์์ค ์์๋๋ก READ UNCOMMITED, READ COMMITED, REPEATABLE READ, SERIALIZABLE์ด ์กด์ฌํ๋ค.
๊ฐ์ฅ ๋ฎ์ ๊ฒฉ๋ฆฌ์์ค์ธ READ UNCOMMITED๋ ๊ฐ ํธ๋์ญ์ ๋ค์ด ์์ ์ค์ธ ๋ด์ฉ๋ค์ด ๋ชจ๋ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ก ์ธํด ์์ง ์ปค๋ฐ๋์ง ์์ ๋ด์ฉ์ด ์กฐํ๊ฐ ๋๋ Dirty Read ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๋ํ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์์ ํ ๋ด์ฉ์ด ๋์ค์ ์ปค๋ฐ๋์ด ๋ฐ๋ณต์ ์ธ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๊ฒ ๋๋ Non-Repeatable Read ๋ฌธ์ ๋ ๋ฐ์ํ๋ค. ๋ง์ง๋ง์ผ๋ก ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ํํ ๋ฐ์ดํฐ ์ถ๊ฐ ์์ ์ผ๋ก ์ธํด ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ๋ณต์ ์ธ SELECT ๋ฌธ์์ ์๋ ๋ ์ฝ๋๊ฐ ์กฐํ๋๋ ํ์์ธ Phantom Read ๋ฌธ์ ๋ ๋ฐ์ํ๋ค.
๋๋ฒ์งธ ๊ฒฉ๋ฆฌ์์ค์ธ READ COMMITED๋ ๊ฐ ํธ๋์ญ์ ์ด ํ ์ด๋ธ ๋ด ์ปค๋ฐ๋ ๋ด์ฉ๋ง์ ์ฝ์ด๋ด๋ ๊ฒฉ๋ฆฌ์์ค์ด๋ค. ์ปค๋ฐ๋ ๋ด์ฉ๋ง์ ์ฝ๊ธฐ ๋๋ฌธ์ Dirty Read ๋ฌธ์ ๋ ๋ฐ์ํ์ง ์์ง๋ง, Non-Repeatable Read์ Phantom Read ๋ฌธ์ ๋ ์ฌ์ ํ ๋ฐ์ํ๋ค.
์ธ๋ฒ์งธ ๊ฒฉ๋ฆฌ์์ค์ธ REPEATABLE READ๋ ํ์ ๊ฒฉ๋ฆฌ์์ค์์ ๋ฐ์ํ๋ Non-Repeatable Read ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค. ์ด๋ฅผ ์ํด ํด๋น ๊ฒฉ๋ฆฌ์์ค์์๋ MVCC๋ฅผ ์ด์ฉํ ์ค๋ ์ท์ ๊ด๋ฆฌํ๊ฒ ๋๋ค. ๋ง์ฝ ์ด๋ฏธ ์ปค๋ฐ์ด ๋์๋๋ผ๋ ์์ ๋ณด๋ค ํธ๋์ญ์ ID๊ฐ ํฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๋ฉด, ์ด๋ฅผ ์ธ๋ ๋ก๊ทธ์ ์ ์งํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋๋ ์์ ๋ณด๋ค ํธ๋์ญ์ ID๊ฐ ์์ ํธ๋์ญ์ ์์ ์ปค๋ฐํ ๋ด์ฉ๋ง์ ์ฝ๊ฒํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๋ค๋ง ํด๋น ๊ฒฉ๋ฆฌ์์ค์์๋ Phantom Read๋ ๋ฐ์ํ ์ ์๋ค.
๋ง์ง๋ง ๊ฒฉ๋ฆฌ์์ค์ธ SERIALIZABLE์ ์์์ ์ธ๊ธํ ๋ชจ๋ ๋ฌธ์ ๊ฐ ๋ฐฉ์ง๋๋ ๊ฒฉ๋ฆฌ์์ค์ด๋ค. ํ์ง๋ง ์ด๋ฅผ ์ํด ๋์์ฑ์ ๋ง์ด ํฌ์ํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฌ์ฉ๋์ง ์๋ ๋ฐฉ์์ด๋ค.
'๋ฉด์ ์ค๋น > ๋ฉด์ ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฉด์ ๋๋น ์์ ์ง๋ฌธ (Network) (0) | 2024.01.11 |
---|---|
JOIN - ๋ฉด์ ๋๋น (0) | 2024.01.02 |
์ด์ ํ์, ์ ๊ทํ - ๋ฉด์ ๋๋น (0) | 2024.01.01 |
๋ฉด์ ๋๋น ์ง๋ฌธ ์์ (์ด์์ฒด์ ) (0) | 2023.12.27 |