๐ CS/๐ Data Structure
AVL ํธ๋ฆฌ AVL ํธ๋ฆฌ (Adelson-Velsky and Landis tree)๋ ์ด์ง ํ์ ํธ๋ฆฌ๊ฐ ๋ฐ์ดํฐ ์ฝ์
์์๋ก ์ธํด ์ ํ์ ์ธ ํํ์ ํธ๋ฆฌ๊ฐ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ ์ค์ค๋ก ๊ท ํ์ ์ก๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ๋ ์์ ์๋ธ ํธ๋ฆฌ์ ๋์ด๋ ํญ์ ์ต๋ 1๋งํผ ์ฐจ์ด ๋๋ค๋ ํน์ง์ด ์๋ค. (๊ท ํ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข
) ๋ฐ์ดํฐ ์ฝ์
, ์ญ์ ์ ๊ท ํ์ด ํญ์ ๋ง๋๋ก ํธ๋ฆฌ ์ผ๋ถ๋ฅผ ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์ ์ํจ๋ค (๋ฆฌ๋ฐธ๋ฐ์ฑ). ๐น๊ฐ์ฅ ์ฒ์ ๋์จ ์๊ฐ ๊ท ํ ์ด์ง ํธ๋ฆฌ ๐นred-black tree๋ณด๋ค ๊ท ํ์ ํจ์ฌ ์ ์กํ ๐นred-black tree๋ณด๋ค ์ฝ์
, ์ญ์ ๊ฐ ๋๋ฆผ ๐น์๋ธ ํธ๋ฆฌ ๋์ด ์ฐจ์ด๊ฐ 1๋ณด๋ค ์ปค์ง๋ฉด ํ์ (๋ฆฌ๋ฐธ๋ฐ์ฑ) ํตํด ์ฐจ์ด ์ค์ ๐กํ์, ์ฝ์
, ์ญ์ ์๊ฐ ๋ณต์ก๋: O(logN) Balance Factor..
๐ CS/๐ Data Structure
๊ทธ๋ํ (Graph) ๊ทธ๋ํ๋ ์ ์ ๊ณผ ๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๋น์ ํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. ๐น์ ์ (V) (vertex) - ๊ทธ๋ํ ๋ด์ ํ๋์ ๊ฐ๋ณ์ ์์ ๐น๊ฐ์ (E) (edge) - ์ ์ ๊ณผ ์ ์ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ (ํ๋ฆ, ๊ด๊ณ ํํ) ๐น๊ฐ์ค์น(W) (weight) - ๊ฐ์ ๊ณผ ์ ์ ์ฌ์ด์ ๋๋ ๋น์ฉ ๐น์ฐจ์ (degree) - ์ ์ ์ ์ ์ฐ๊ฒฐ๋ ๊ฐ์ ์ ์ โฝout-degree: ๋ค๋ฅธ ์ ์ ์ผ๋ก ๋๊ฐ๋ ๊ฐ์ (์) โฝin-degree: ํน์ ์ ์ ์ผ๋ก ๋ค์ด์ค๋ ๊ฐ์ (์) โฝ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์์ ํ๋์ ๊ฐ์ ์ด ๋ ์ ์ ์ ์ธ์ ํ๋ฏ๋ก ๊ฐ์ ์์ ๋ ๋ฐฐ ๐ก ๋น์ ํ ์๋ฃ ๊ตฌ์กฐ ๋น์ ํ ์๋ฃ ๊ตฌ์กฐ๋ ์ผ๋ ฌ๋ก ๋์ดํ์ง ์๊ณ ์๋ฃ ์์๋ ๊ด๊ณ๊ฐ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํธ๋ฆฌ๋ ๊ทธ๋ํ๋ฅผ ๋งํ๋ค. ๋ฐฉํฅ ๊ทธ๋ํ(Diredted Gr..
๐ CS/๐ DB
์กฐ์ธ ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์ ๋ฌถ์ด ํ๋์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค. ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(MongoDB)์์๋ lookup์ด๋ ์ฟผ๋ฆฌ๋ก ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ฐ, ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋๋ก ์ฌ์ฉํ์ง ์๋๋ค. ์กฐ์ธ(๋
ผ๋ฆฌ์ ์กฐ์ธ)์ ์ข
๋ฅ ๋
ผ๋ฆฌ์ ์กฐ์ธ์ด๋ ์ฌ์ฉ์๊ฐ SQL๋ฌธ์ ์ด์ฉํด ์ํ๋ ๋ฐ์ดํฐ ๊ฒฐํฉ ๋ฐฉ์์ ๊ธฐ์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. Inner Join (๋ด๋ถ ์กฐ์ธ): ์ผ์ชฝ ํ
์ด๋ธ๊ณผ ์ค๋ฅธ์ชฝ ํ
์ด๋ธ์ ๋ ํ์ด ๋ชจ๋ ์ผ์นํ๋ ํ์ด ์๋ ๋ถ๋ถ๋ง ํ๊ธฐ Outer Join Left Join (์ผ์ชฝ ์กฐ์ธ): ์ผ์ชฝ ํ
์ด๋ธ์ ๋ชจ๋ ํ์ด ๊ฒฐ๊ณผ ํ
์ด๋ธ์ ํ๊ธฐ Right Join (์ค๋ฅธ์ชฝ ์กฐ์ธ): ์ค๋ฅธ์ชฝ ํ
์ด๋ธ์ ๋ชจ๋ ํ์ด ๊ฒฐ๊ณผ ํ
์ด๋ธ์ ํ๊ธฐ Full Outer Join (์ ์ฒด ์ธ๋ถ ์กฐ์ธ): ์กฐ์ธ ์กฐ๊ฑด์..
๐ CS/๐ DB
ํจ์์ ์ข
์(Functional Dependency) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์์ ์ ๊ทํ ๊ณผ์ ์ ์ดํด๋ณด๊ธฐ ์ , ํจ์์ ์ข
์ ๊ฐ๋
์ ๋ํด ๋จผ์ ์์๋ณด์. ๋ฆด๋ ์ด์
R(ํ
์ด๋ธ)์์ X์ Y๋ฅผ R์ ์์ฑ์ ๋ถ๋ถ์งํฉ์ด๋ผ๊ณ ํ ๋, X์ ๊ฐ ๊ฐ๊ฐ์ ๋ํด Y์ ๊ฐ์ด ์ค์ง ํ๋๋ก ๊ฒฐ์ ๋ ๋ Y๋ X์ ์ข
์๋๋ค๊ณ ํ๋ค. ์ฆ, ํ
์ด๋ธ์ ํ ํ๋๊ฐ ์งํฉ(X)์ด ๋ค๋ฅธ ํ๋๊ฐ ์งํฉ(Y)์ ๊ฒฐ์ ํ๋ ๊ด๊ณ๋ฅผ ๋งํ๋ค. ์ฌ๊ธฐ์ "๊ฒฐ์ ํ๋ค"๋ ์๋ฏธ๋ ๋ฌด์์ผ๊น? "์ ์ ์๋ค", "์ํฅ์ ๋ฏธ์น๋ค" ๋ผ๊ณ ๋ฐ์๋ค์ด๋ฉด ์ฝ๋ค. "X๊ฐ Y์ ๊ฒฐ์ ํ๋ค"๋ผ๋ ๋ป์ X์ ๊ฐ์ ์๋ฉด Y์ ๊ฐ์ ์ ์ ์๊ณ , X์ Y๋ ๊ด๊ณ๊ฐ ์์ด X์ ๊ฐ์ ์ํด Y์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ฐ ํจ์์ ์ข
์ ๊ด๊ณ๋ฅผ ํ์ดํ๋ฅผ ํตํด X→Y๋ผ๊ณ ํํํ๊ณ X๋ฅผ ๊ฒฐ์ ์..
๐ CS/๐ Network
HTTP HTTP(Hyper Text Transfer Protocol)๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํต์ ๊ท์ฝ์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์์ ๋์ํ๊ณ ์น ์๋น์ค ํต์ ์ ์ฌ์ฉ๋๋ค. HTTP/1.0๋ถํฐ HTTP/3๊น์ง ๋ฐ์ ํด ์๋ค. ๋ฌด์ํ์ฑ(stateless) - HTTP๋ ์์ฒญ์ ๋ํ ์ํ๋ฅผ ๊ฐ์ง์ง ์์ - ๊ฐ ์์ฒญ์ ๋
๋ฆฝ์ → ์์ฒญ ๊ฐ์ ์๋ก ์ํฅ ์ฃผ๊ณ ๋ฐ์ง ์์ - ์ํ(๋ก๊ทธ์ธ ์ ๋ณด ๋ฑ)๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ธ์ ์ด๋ ์ฟ ํค ์ฌ์ฉ ๋น์ฐ๊ฒฐ์ฑ(Connectionless) - ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋๋ง ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์ ์ก์ด ๋๋๋ฉด ์ฐ๊ฒฐ ๋๊น ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ - ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ ์น๋ธ๋ผ์ฐ์ - ์๋ฒ๋ ์์ฒญ ๋์์ธ ์๋ฒ ์ปดํจํฐ ์๋ฏธ ๐HTTP/1.0 ํ ์ฐ๊ฒฐ๋น ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค. ์๋ฒ๋ก๋ถํฐ ์ ..
๐ CS/๐ Network
๋คํธ์ํฌ ๊ธฐ๊ธฐ ์ฒ๋ฆฌ ๋ฒ์ ๋คํธ์ํฌ ๊ธฐ๊ธฐ๋ ๋คํธ์ํฌ ๊ณ์ธต๋ณ๋ก ์ฒ๋ฆฌ ๋ฒ์๋ฅผ ๋๋ ์ ์๋ค. ์์ ๊ณ์ธต ์ฒ๋ฆฌ ๊ธฐ๊ธฐ → ํ์ ๊ณ์ธต ์ฒ๋ฆฌ ๊ฐ๋ฅ ํ์ ๊ณ์ธต ์ฒ๋ฆฌ ๊ธฐ๊ธฐ → ์์ ๊ณ์ธต ์ฒ๋ฆฌ ๋ถ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต : L7๋ก๋๋ฐธ๋ฐ์(L7์ค์์น) ์ ์ก ๊ณ์ธต : L4๋ก๋๋ฐธ๋ฐ์(L4์ค์์น) ์ธํฐ๋ท ๊ณ์ธต: ๋ผ์ฐํฐ, L3์ค์์น ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต : L2์ค์์น, ๋ธ๋ฆฌ์ง ๋ฌผ๋ฆฌ ๊ณ์ธต: NIC, AP ๐ก ์ค์์น - ์ฌ๋ฌ ์ฅ๋น๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ ํต์ ์ ์ค์ฌ - ๋ชฉ์ ์ง๊ฐ ์ฐ๊ฒฐ๋ ํฌํธ๋ก๋ง ์ ๊ธฐ ์ ํธ๋ณด๋ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋คํธ์ํฌ ์ฅ๋น - ์๊ท๋ชจ ํต์ ์ ์ํ ํ๋ธ๋ณด๋ค ์ ์ก ์๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ์ฒ๋ฆฌ ๊ธฐ๊ธฐ L7๋ก๋๋ฐธ๋ฐ์(L7 ์ค์์น) ์์ ๋ถ์ L7๋ Layer7์ด๋ ๋ป์ผ๋ก OSI 7๊ณ์ธต์ 7๋ฒ์งธ ๊ณ์ธต์ธ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์์ ์ฌ์ฉ๋๋ ๊ธฐ..
๐ CS/๐ Network
TCP๋ ์ ๋ขฐ์ฑ์ ํ๋ณดํ๊ธฐ ์ํด ์ก์์ ์ ์ฌ์ด ์ฐ๊ฒฐ๊ณผ์ ๊ณผ ์ฐ๊ฒฐ ํด์ ๊ณผ์ ์์
์ ์งํํ๋ค. + ๊ธฐ์ด ์ง์ ์ ์ด ํ๋๊ทธ(์ฝ๋ ๋นํธ) ์ธ๊ทธ๋จผํธ ํค๋์ ์๋ ์์ญ์ผ๋ก TCP ์ฐ๊ฒฐ ํ์ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํ ๋นํธ์ด๋ค. 6๊ฐ์ ์ข
๋ฅ๊ฐ ์๋๋ฐ TCP ์ฐ๊ฒฐ ๋ฐ ํด์ ์์ ์๋ 3๊ฐ์ ์ข
๋ฅ๋ง ์ฌ์ฉ๋๋ค. ACK: Acknowledgement์ ์ฝ์๋ก “์๋ต”์ ์๋ฏธํ๋ ํ๋๊ทธ SYN: Synchronize์ ์ฝ์๋ก “์ฐ๊ฒฐ ์์ฒญ”์ ์๋ฏธํ๋ ํ๋๊ทธ FIN: Finish์ ์ฝ์๋ก “์ฐ๊ฒฐ ํด์ ์์ฒญ”์ ์๋ฏธํ๋ ํ๋๊ทธ ์ด๊ธฐ๊ฐ: 0 / ํ์ฑ ์: 1 ํฌํธ ์ํ ์ ๋ณด ๊ฐ ํธ์คํธ์ ํฌํธ ์ํ๋ฅผ ์๋ฏธ CLOSED : ํฌํธ๊ฐ ๋ซํ ์ํ LISTEN : ํฌํธ๊ฐ ์ด๋ฆฐ ์ํ๋ก ์ฐ๊ฒฐ ์์ฒญ ๋๊ธฐ ์ค SYN_SENT : SYN์์ฒญ์ ๋ณด๋ด๊ณ ..
๐ CS/๐ Network
๋คํธ์ํฌ ๊ณ์ธต๊ณผ ์ ์ก๊ณ์ธต ๋คํธ์ํฌ ๊ณ์ธต ์ค ์ ์ก ๊ณ์ธต์ ํด๋นํ๋ ํ๋กํ ์ฝ์๋ TCP์ UDP๋ ์ข
๋ฅ๊ฐ ์๋ค. ์ด ํ๋กํ ์ฝ์ ์ดํด๋ณด๊ธฐ ์ ์ ํ์ ๊ณ์ธต์ธ ๋คํธ์ํฌ ๊ณ์ธต์ ๋ํด ์ ์ ์๊ฐํด ๋ณด์. OSI 7 ๊ณ์ธต์์ 3 ๊ณ์ธต์ ํด๋นํ๋ ๋คํธ์ํฌ ๊ณ์ธต์ ๋
ผ๋ฆฌ์ ์ฃผ์์ธ IP๋ฅผ ์ด์ฉํด ํต์ ํ๋ค. IP์ ์ญํ ์ ์ฅ์น ๊ฐ์ ํต์ (Host to Host)๋ง์ ์ง์ํ๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์ฅ์น ์์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค์ด ํต์ ํ ๊ฒฝ์ฐIP๋ง์ ๊ฐ์ง๊ณ ๋ ํต์ ํ ์ ์๋ค. ๋ฐ๋ผ์ ์์ ๊ณ์ธต์ธ ์ ์ก๊ณ์ธต์์ ํฌํธ(port) ๋ฒํธ๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ์ํฉ์ ํด๊ฒฐํ๋ค. ๋ํ ๋คํธ์ํฌ ๊ณ์ธต์ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค. ์ด๋ ํจํท์ด ๋
๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋์ด ๋
๋ฆฝ์ ์ธ ๊ฒฝ๋ก๋ก ์ ๋ฌ๋๋ค๋ ์๋ฏธ์ด๊ณ ์์ ํ์ธ ๊ณผ์ ์ด ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ..
๐ CS/๐ Network
์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(Internet protocol suite)์ ์ธํฐ๋ท์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ ์ด์ฉ๋๋ ํต์ ํ๋กํ ์ฝ์ ๋ชจ์์ด๋ค. ์ด๋ฅผ ๋ณดํต TCP/IP 4๊ณ์ธต ๋ชจ๋ธ๊ณผ OSI 7๊ณ์ธต ๋ชจ๋ธ๋ก ์ค๋ช
ํ๋ค. ๐ก ํ๋กํ ์ฝ (protocol) - ์ปดํจํฐ ๋ด๋ถ ๋๋ ์ปดํจํฐ ์ฌ์ด์์ ๋ฐ์ดํฐ์ ๊ตํ ๋ฐฉ์์ ์ ์ํ๋ ๊ท์น ์ฒด๊ณ - ๊ธฐ๊ธฐ ๊ฐ ํต์ ์ ๊ตํ๋๋ ๋ฐ์ดํฐ์ ํ์์ ๋ํด ์ํธ ํฉ์๋ฅผ ์๊ตฌํ๋๋ฐ, ์ด๋ฐ ํ์์ ์ ์ํ๋ ๊ท์น์ ์งํฉ์ ํ๋กํ ์ฝ์ด๋ผ๊ณ ํ๋ค. ๋คํธ์ํฌ ๊ณ์ธต๊ตฌ์กฐ ์ปดํจํฐ ๊ฐ ์๋ก ํต์ ํ๊ธฐ ์ํด์ ํ๋์ ํ๋กํ ์ฝ๋ก๋ง ์ด๋ฃจ์ด์ง ์ ์๋ค. ํต์ ํ๋กํ ์ฝ์ ์งํฉ์ ํ๋กํ ์ฝ์ ๋คํธ์ํน ๋ฒ์์ ๋ฐ๋ผ ์ถ์ํ ๊ณ์ธต์ผ๋ก ๊ตฌ๋ถํ ์ ์์ผ๋ฉฐ ๋ํ์ ์ผ๋ก OSI 7๊ณ์ธต๊ณผ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ๋ก ํ๋กํ ์ฝ..
๐ CS/๐ Network
๋คํธ์ํฌ ๊ธฐ์ด ์ฉ์ด ๋คํธ์ํฌ๋? ๋คํธ์ํฌ๋ ์ปดํจํฐ ๋ฑ์ ์ฅ์น๋ค์ด ํต์ ๊ธฐ์ ์ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ์ฐ๊ฒฐ๋ง์ ์ง์นญํ๋ ์ฉ์ด๋ค. ๋คํธ์ํฌ๋ ๋
ธ๋(node)์ ๋งํฌ(link)๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ค. "๋ช ๊ฐ์ ๋
๋ฆฝ์ ์ธ ์ฅ์น๊ฐ ์ ์ ํ ์์ญ ๋ด์์ ์ ๋นํ ๋น ๋ฅธ ์๋๋ก ๋ฌผ๋ฆฌ์ ํต์ ์ฑ๋์ ํตํ์ฌ ์๋ก๊ฐ ์ง์ ํต์ ํ ์ ์๋๋ก ์ง์ํด ์ฃผ๋ ๋ฐ์ดํฐ ํต์ ์ฒด๊ณ" _ IEEE(๊ตญ์ ์ ๊ธฐ ์ ์ ๊ณตํํ) ๐ก ๋
ธ๋(node) ์ปดํจํฐ, ์๋ฒ, ๋ผ์ฐํฐ, ์ค์์น ๋ฑ์ ๋คํธ์ํฌ ์ฅ์น ๐ก๋งํฌ(link) ์ ์ ๋๋ ๋ฌด์ ์ฒ๋ฆฌ๋, ํธ๋ํฝ, ๋์ญํญ ์ฒ๋ฆฌ๋(throughput)์ด๋ ๋งํฌ ๋ด์์ ์ฑ๊ณต์ ์ผ๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ์ ์์ ๋งํ๋ค. ๋จ์๋ก๋ bps (bits per second)๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ด๋น ์ ์ก(์์ )๋ ๋นํธ ์๋ฅผ ๋ํ๋ธ๋ค..