์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ
0. ์๊ฐ ์์
0 - 1. CPU ์๊ฐ ์์
์ปดํจํฐ๋ ํ์ ๋ CPU๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋๋์ด ์ฌ์ฉํ๋ฏ๋ก, ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด CPU ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ์๊ฐ ์์์ ๊ด๋ฆฌํ๋ค. ๋๋ถ๋ถ OS๊ฐ ์ฃผ๊ดํ์ง๋ง, ์ฌ์ฉ์๋ก์ ์ ์๊ณ ์์ด์ผ ํ๋ค
0 - 2. ๋ฉ๋ชจ๋ฆฌ ์๊ฐ ์์
CPU์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ ์์์ ์ปดํจํฐ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ก๋๋์ด CPU๋ฅผ ํตํด ์ฐ์ฐํ๊ธฐ ๋๋ฌธ์, ์ฐ์ฐํ๋ ๋์ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ๊ฐ๋ฅํ ์๊ฐ์ด ํ๋ก๊ทธ๋จ์ ์๊ฐ ์์์ด ๋๋ค. ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ๋ ์ด ์๊ฐ ์์์ ์ต๋ํ ํจ์จ์ ์ผ๋ก ์ค์ด๊ธฐ ์ํ ๋ชฉ์ ์ด๋ค
- ํ๋ก๊ทธ๋จ์ ์๊ฐ ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ/์ฐ์ฐ์ ์ํํ๋ ๋์ ๋น 1๊ฐ์ ์ฐ์ฐ ๋จ์๋ก ๋๊ณ ์๋ค
=> ์ํ ์๊ฐ์ด ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก, ๊ธฐ๋ณธ ์ฐ์ฐ์ ์คํ ํ์๋ก ์๊ฐ ์์์ ํ๊ฐํ๋ ๊ฒ์ด๋ค
~ ๊ธฐ๋ณธ ์ฐ์ฐ์ ์ข ๋ฅ
๋ฐ์ดํฐ ์ ์ถ๋ ฅ : copy, move ๋ฑ
์ฐ์ ์ฐ์ฐ : add, multiply ๋ฑ
์ ์ด ์ฐ์ฐ : if, while ๋ฑ
- ๋ฉ๋ชจ๋ฆฌ ์๊ฐ ์์์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์ด ์๋ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ ๋ ฅ์ ํฌ๊ธฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํ์ฉํ๋ ์๋ชจ์๊ฐ์ ์๋ฏธํ๋ค
0 - 3. ๋คํธ์ํฌ ์๊ฐ ์์
๋ค๋ฅธ ์ปดํจํฐ์ ํต์ ํ๊ธฐ ์ํด ๋คํธ์ํฌ๋ง์ ์ฌ์ฉํด ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ OSI 7๊ณ์ธต์๋ ์ฌ๋ฌ ์๊ฐ ์์์ด ์กด์ฌํ๋ค. ํนํ ์๋ฒ๋ฅผ ๋ง๋ค์ด ์ด์ํ ๋์ ๋ค์ํ Timeout ์ค์ ์ ํ๊ฒ๋๋ฉฐ, ์ด๋ฅผ ํตํด ์๊ฐ ์์์ ๊ด๋ฆฌํ ์ ์๋ค. ๊ทธ ์ธ์๋ ๋คํธ์ํฌ์ ์ฌ๋ฌ ๊ณ์ธต์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์์์์ด ์ค์ ๋ ๊ณณ๋ ์๋ค
(1) ํ์์์
- ๋คํธ์ํฌ์์ ํ์์์์ ์ฅ์น๋ ํ๋ก๊ทธ๋จ์ด ์ฐ๊ฒฐ์ ์ค๋จํ๊ธฐ ์ ๊น์ง ์์๋๋ ์๋ต ์๊ฐ์ ์๋ฏธํ๋ค
- ๋คํธ์ํฌ ํต์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์์ ์์ค์ด๋ ์ ๋ฌ ์ง์ฐ ๋ฑ์ ์ด์ ๋ก ๋๊ธฐ๊ฐ ๋ฐ์ํ ์ ์์ด, ๋๊ธฐ๊ฐ ๋ฌดํ์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ํ์์์์ด ํ์ํ๋ค
(2) ํ์์์ ์ข ๋ฅ : ๋ณธ์ง์ด ํ์์์์ด๋ผ๋ ๊ฒ์ด ์ค์
- ์ปค๋ฅ์ ํ์์์
- ์ธ์ ํ์์์
- ์๋ฒ ํ์์์
- DNS ํ์์์ ๋ฑ
(3) ํ์์์์ด ํ์ํ ์ด์
1. ์ง์์ ์ธ ์ฐ๊ฒฐ ์๋ ๋ฐฉ์ง
- ์ฅ์น ๊ฐ ์ฐ๊ฒฐ ์ ๋ฌธ์ ๊ฐ ์์ด ์๋ต ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์๋ค. ํ์์์์ ์ํด ์ฐ๊ฒฐ ํด์ ๋ฐ ์ค๋ฅ๋ฅผ ์๋ ค์ค ๋ฌธ์ ์ํฉ์ ์ธ์งํ ์ ์๋ค
2. ๋ฆฌ์์ค ๊ณ ๊ฐ ๋ฐฉ์ง
- ํ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ์ปค๋ฅ์ ์ ์์ฑํ๋ค. ๊ทธ๋ฌ๋ ํ ์ปค๋ฅ์ ์์ ๋๊ธฐ๊ฐ ์ง๋์น๊ฒ ๊ธธ์ด์ง๋ฉด ํ ๋น ๋ฐ์ ์๊ฐ ์์์ ๋ชจ๋ ์ฌ์ฉํ๊ฒ ๋๊ณ , ํ๋ก๊ทธ๋จ ์ ์ฒด ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ๋ฐฉ์งํ๋ ๊ฒ์ด ํ์์์์ด๋ค
3. ๋ณด์ ๊ฐํ
- ์ธ์ ์ด ๋ถํ์ํ๊ฒ ์ค๋ ์ฐ๊ฒฐ๋๋ ์ํ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. ๋ก๊ทธ์ธ ์ธ์ ํ์์์์ด ๋ํ์ ์ธ ์๋ก, ์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ ๋์ ์ผ์ ์๊ฐ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋๊ณ ๋ก๊ทธ์์๋๋ ํ์์์์ด ๊ทธ ์์๋ค
1. ์๊ฐ๋ณต์ก๋
1 - 1. ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ๋ฒ
๋น ์ค ํ๊ธฐ๋ฒ : ์๊ฐ๋ณต์ก๋ ํจ์์์ ์๋์ ์ผ๋ก ๋ถํ์ํ ์ฐ์ฐ์ ์ ๊ฑฐํด ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์์ ์กฐ๊ธ ๋ ๊ฐํธํ๊ฒ ํ ๋ชฉ์ ์ผ๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ํ๊ธฐํ๋ ๋ฐฉ๋ฒ
- ๋น ์ค : ์ํ ์ ๊ทผ
- ๋น ์ค๋ฉ๊ฐ : ํํ ์ ๊ทผ
- ๋น ์ธํ : ํ๊ท
~ ๊ฐ ํ๊ธฐ๋ฒ์ ์๊ฐ๋ณต์ก๋๋ฅผ ์ต์ , ์ต์ , ํ๊ท ์ผ๋ก ๊ณ์ฐํ๋ค. ๋ถํ์ํ ์ฐ์ฐ์ด๋ ์์๊ฐ์ ์ ์ธํ๊ณ ํฐ ํ๋ฆ์ธ ์ถ์ธ๋ง ํ๊ธฐํด ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค
* O(1) : ์ผ์ ํ ๋ณต์ก๋๋ผ๊ณ ํ๋ฉฐ, ์๊ฐ๋ณต์ก๋๋ ์ ๋ ฅ๊ฐ๊ณผ ์๊ด์ด ์๋ค
function O_1_algorithm(arr, index) {
return arr[index];
}
let arr = [1, 2, 3, 4, 5];
let index = 1;
let result = O_1_algorithm(arr, index);
console.log(result); // 2
~ arr์ ๊ธธ์ด์ ์๊ด์์ด, ์ฃผ์ด์ง ์ธ๋ฑ์ค์ ๊ฐ์ ๋ฐ๋ก ์ ๊ทผ์ ๊ฐ์ ์ป๊ธฐ ๋๋ฌธ์ด๋ค
* O(n) : ์ ํ ๋ณต์ก๋๋ผ๊ณ ํ๋ฉฐ, ์ ๋ ฅ๊ฐ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์๊ฐ๋ณต์ก๋๋ ๊ฐ์ ๋น์จ๋ก ์ฆ๊ฐํ๋ค
function O_n_algorithm(n) {
for (let i = 0; i < n; i++) {
// do something for 1 second
}
}
function another_O_n_algorithm(n) {
for (let i = 0; i < 2n; i++) {
// do something for 1 second
}
}
- O_n_algorithm(n)์ ์ ๋ ฅ๊ฐ 1 ์ฆ๊ฐ์๋ง๋ค ์คํ์๊ฐ์ด 1์ด ์ฆ๊ฐํ๋ค
- another_O_n_algorithm(n)์ 1 ์ฆ๊ฐ์๋ง๋ค ์คํ์๊ฐ 2์ด ์ฆ๊ฐํ์ง๋ง O(2n)์ด ์๋๋ผ O(n)์ด๋ค
~ ๊ฐ์ ๋น์จ๋ก ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ๋ ์ฆ๊ฐ ๊ฐ์ ๊ด๊ณ์์ด O(n)์ด๋ค
* O(log n) : ๋ก๊ทธ ๋ณต์ก๋, ๋น ์ค ํ๊ธฐ๋ฒ ์ค O(1) ๋ค์์ผ๋ก ๋น ๋ฅด๋ค
void Logarithmic(n){
i = 1; //1
while(i<n){
printf(i);
i = i * 2; // 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ผ๋ก ์ปค์ง๋๋ค.
}
}
~ ์ ๋ ฅ๊ฐ n์ด ์ปค์ง ๋๋ง๋ค i๋ 2์ ๊ฑฐ๋ญ ์ ๊ณฑ์ผ๋ก ์ปค์ง๊ธฐ ๋๋ฌธ์ log n๋งํผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ O(log n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค
* ๋ํ์ ์ธ O(log n) ์๊ณ ๋ฆฌ์ฆ : ์ด์งํ์
- BST๋ผ๊ณ ํ๋ฉฐ, ์ํ๋ ๊ฐ์ ํ์ํ ๋ ๋ ธ๋๋ฅผ ์ด๋ํ ๋๋ง๋ค ๊ฒฝ์ฐ์ ์๋ ์ ๋ฐ์ผ๋ก ์ค์ด๋ ๋ค
~ ๋ฐ๋ณต ํ์๊ฐ 2์ ๊ฑฐ๋ญ์ ๊ณฑ๋งํผ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค
* O(n^2) : 2์ฐจ ๋ณต์ก๋๋ผ๊ณ ํ๋ฉฐ, ์ ๋ ฅ๊ฐ์ด ์ฆ๊ฐํ ๋๋ง๋ค n^2 ๋น์จ๋ก ์ฆ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค
~ ์ ๋ ฅ๊ฐ 1์ผ๋ 1์ด ์์๋๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ ๋ ฅ๊ฐ์ 5๋ก ํ์๋ 25์ด๊ฐ ์์๋๋ ๊ฒฝ์ฐ
function O_quadratic_algorithm(n) {
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
// do something for 1 second
}
}
}
function another_O_quadratic_algorithm(n) {
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
for (let k = 0; k < n; k++) {
// do something for 1 second
}
}
}
}
~ ๋ ๋ฒ์งธ ํจ์์ ๊ฒฝ์ฐ์๋ ์์๊ฐ 1์ด๋ฏ๋ก n^3๋ ๋ชจ๋ O(n2)๋ก ํ๊ธฐํ๋ค
* O(2^n) : ๊ธฐํ๊ธ์์ ๋ณต์ก๋๋ผ๊ณ ํ๋ฉฐ, ๋น ์ค ํ๊ธฐ๋ฒ ์ค ๊ฐ์ฅ ๋๋ฆฌ๋ค. ์ด ๊ฒฝ์ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ ์ง๋ ๊ฒ์ ๊ณ ๋ฏผํ๋ ๊ฒ์ด ์ข๋ค
function fibonacci(n) {
if (n <= 1) {
return 1;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
1 - 2. ์๋ฃ๊ตฌ์กฐ๋ณ ์๊ฐ๋ณต์ก๋
1) Array : ๋ฐ์ดํฐ์ ์์๊ฐ ์๋ค, ๋ฐ์ดํฐ์ ์๊ฐ ๊ณ ์ ์ผ ๋ ์ฃผ๋ก ์ฌ์ฉ
- O(1) : i๋ฒ์จฐ ๋ฐ์ดํฐ ์์ธ์ค
- O(n) : ๋ฐ์ดํฐ์ ์ฝ์ /์ญ์ , ์ธ๋ฑ์ค ์์ด ๋ฐ์ดํฐ ํ์
2) ArrayList : ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ์ ์ฒด ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ์ด์ง๋ง, ํฌ๊ธฐ๋ฅผ ๋๋ฆด ๊ฒฝ์ฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค(= Dynamic Array)
- O(1) : i๋ฒ์งธ ๋ฐ์ดํฐ ์์ธ์ค
- O(n) : (๋์ง์ ์ ์ ์ธํ๊ณ ) ๋ฐ์ดํฐ ์ฝ์ /์ญ์ , ๋ฐ์ดํฐ ํ์
3) Queue : ๋ฐฐ์ด์ ๋นํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค
- O(1) : ๋ฐ์ดํฐ ์ถ๊ฐ add, append/ poll(pop)
- O(n) : i๋ฒ์งธ ๋ฐ์ดํฐ์ ์ ๊ทผ/์ฝ์ /์ญ์ , ๋ฐ์ดํฐ ํ์
4) Deque : ์ ์ชฝ์์ ๋ฐ์ดํฐ ์ฝ์ /์ญ์ ๊ฐ๋ฅ ํ, ํ์ ์คํ์ ๊ตฌํํ ์ ์๋ค
- O(1) : ๋ฐ์ดํฐ์ add, append/ poll(pop)
- O(n) : i๋ฒ์งธ ๋ฐ์ดํฐ ์ ๊ทผ/์ฝ์ /์ญ์ , ๋ฐ์ดํฐ ํ์
5) Stack : ํฐ๋ฆฐ๋ ๋กฌ(ํ๋ฌธ) ๋ฌธ์ ๊ฐ ์์๋ก ์๋ค, ํจ์์ ํธ์ถ์ ๋ด๋ถ์ ์ผ๋ก ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด ๋์
- O(1) : ๊ฐ์ฅ ์์ ์๋ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ/์ญ์ , ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ ์ฝ์
- O(n) : i๋ฒ์งธ ๋ฐ์ดํฐ์ ์ ๊ทผ/์ฝ์ /์ญ์ , ๋ฐ์ดํฐ ํ์
cf) ์๋ฃ๊ตฌ์กฐ ๋น๊ตํ
Data Structure | Average Case | Worst Case | ||||
Search | Insert | Delete | Search | Insert | Delete | |
Array | O(n) | |||||
Sorted Array | O(log n) | O(n) | O(n) | O(log n) | O(n) | O(n) |
Linked List | O(n) | O(1) | O(1) | O(n) | ||
Doubly Linked List | O(n) | O(1) | O(1) | O(n) | ||
Stack | O(n) | O(1) | O(1) | O(n) | ||
Hash Table | O(1) | O(1) | O(1) | O(n) | O(n) | |
Binary Search Table | O(log n) | O(log n) | O(log n) | O(n) | O(n) | |
B-Tree | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) |
Red-Black tree | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) |
AVL Tree | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) | O(log n) |
1 - 3. ์๊ณ ๋ฆฌ์ฆ๋ณ ์๊ฐ๋ณต์ก๋
- ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ ๋ฐ ์ฐ์ฐ(์ฐ์ , ๋์ , ๋น๊ต, ์ด๋)๋ค์ด ๋ช ๋ฒ ์ด๋ฃจ์ด์ง๋ ์ง ์๊ฐ๋ณต์ก๋๋ก ํํ
- ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๋ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์คํ์๊ฐ์ด ๋ค๋ฅด๋ฉฐ ์ต์ , ํ๊ท , ์ต์ ์ ๊ฒฝ์ฐ๋ก ๋๋ ์ ์๋ค
(1) ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ณ ์๊ฐ๋ณต์ก๋
- ์ฝ์ ์ ๋ ฌ(Insertion Sort)
์ฅ์ : ์ต์ ์ด O(n), ๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ถ๋ก ์ฌ์ฉ๋ ๋งํผ ํจ์จ์ ์ด๋ค
๋จ์ : ์ต์ ์ ๊ฒฝ์ฐ O(n^2)๋ก ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ฑ๋ฅ ํธ์ฐจ๊ฐ ์ฌํ๋ค
- ์ ํ ์ ๋ ฌ(Selection Sort)
์ฅ์ : ์ ํ ์ ๋ ฌ ๋ฐ ๋ฒ๋ธ ์ ๋ ฌ๊ณผ ๊ฐ์ด ๊ตฌํ์ด ์ฝ๋ค. ๊ตํ์ด ๋ง์ด ๋ฐ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๋ ํจ์จ์ ์ด๋ค. ๋ฒ๋ธ ์ ๋ ฌ๊ณผ ๊ฐ์ด O(n^2)๋ผ๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง, ๋ฒ๋ธ ์ ๋ ฌ๋ณด๋ค๋ ์กฐ๊ธ ๋ ๋น ๋ฅด๋ค
๋จ์ : O(n^2)๋ผ๋ ์๊ฐ๋ณต์ก๋
- ๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort)
์ฅ์ : ์ธ์ ํ ๊ฐ๋ง ๊ณ์ ๋น๊ตํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ์ฝ๊ณ ์ฝ๋๊ฐ ์ง๊ด์ ์ด๋ค
๋จ์ : ๋นํจ์จ์ ์ด๋ค. ์ต์ ๊ณผ ์ต์ ๋ชจ๋ O(n^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค
- ํต ์ ๋ ฌ(Quick Sort)
์ฅ์ : ๊ธฐ์ค๊ฐ(Pivot)์ ์ํ ๋ถํ ์ ํตํด ๊ตฌํํ๋ ์ ๋ ฌ๋ก, ๋ถํ ๊ณผ์ ์์ logN๋งํผ ์๊ฐ์ด ์์๋๊ณ ์ ๊ณผ์ ์ด NlogN์ผ๋ก ์๊ฐ๋ณต์ก๋๊ฐ ํจ์จ์ ์ธ ํธ์ด๋ค
๋จ์ : ๊ธฐ์ค๊ฐ์ ๋ฐ๋ผ ์๊ฐ๋ณต์ก๋๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค. ์ผ๋ฐ์ ์ผ๋ก NlogN์ด์ง๋ง, ์ต์ ์ธ ๊ฒฝ์ฐ(ํผ๋ฒ์ ๋ฐฐ์ด์ ์ต์๊ฐ์ด๋ ์ต๋๊ฐ์ผ๋ก ์ ํํ ๊ฒฝ์ฐ) O(n^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค
- ๋ณํฉ ์ ๋ ฌ(Merge Sort)
์ฅ์ : ์ฟฝ ์ ๋ ฌ๊ณผ ์ ์ฌํ๊ฒ ์๋ณธ ๋ฐฐ์ด์ ๋ฐ์ฉ ๋ถํ ํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ถํ ํ๋ ๊ณผ์ ์์ logN๋งํผ ์์๋๋ค. ํต ์ ๋ ฌ๊ณผ๋ ๋ค๋ฅด๊ฒ ํผ๋ฒ์ ์ค์ ํ์ง ์๊ณ ๋ฌด์กฐ๊ฑด ์ ๋ฐ์ ๊ธฐ์ค์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ํผ๋ฒ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ ํ๊ฐ ์์ด ํญ์ O(NlogN)์ ์ ๋ ฌ ์ค ์ค์ํ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค
๋จ์ : ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถ๊ฐ๋ก ํ์ํ๋ค. ์์ ๋ฐฐ์ด์ ์๋ณธ ๋ฐฐ์ด์ ๊ณ์ ์ฎ๊ธฐ๋ฉด์ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์
์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์์ ๊ฒฝ์ฐ์๋ ๋ณํฉ ์ ๋ ฌ์ ์์ ์ฌ์ฉํ ์ ์๋ค
(2) ์๊ฐ๋ณต์ก๋๋ณ ์๊ณ ๋ฆฌ์ฆ
N : ๋ฌธ์ ์ ์ฃผ์ด์ง ๋ฐ๋ณต ๋ณ์(๋ฐ์ดํฐ)
-> ํ๋ก๊ทธ๋๋จธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กฐ๊ธ ์ฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ๊ฒฝํฅ์ด ์๋ค
2. ์๊ฐ์์์ ํ๊ณ
2 - 1. CPU ์๊ฐ์์์ ํ๊ณ
- Logical Processor๋ 4๊ฐ + Cores ์ซ์์ ์ฐจ์ด๋๋ ์ด์ : ํ์ดํผ ์ฐ๋ ๋ฉ
- ํ๋ก์ธ์ค๋ ํ์ฌ 251๊ฐ
- ์ฐ๋ ๋๋ 3312๊ฐ ๋์์ค
- ํ์ ๋ L.P ์์์ ๋ค์์ ํ๋ก์ธ์ค์ ์ฐ๋ ๋๊ฐ ๋์ํ ์ ์๋ ๊ฒ์ ์ด์์ฒด์ ๊ฐ CPU๋ฅผ ๊ฐ์ํ์์ผ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค
* ํ๋ก์ธ์๊ฐ ํ๊ณ์ธ ์ํฉ์์
- ํ๋์ ํ๋ก์ธ์์์ ๋ฉํฐ์ฐ๋ ๋ ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋ ํ๋ก์ธ์๋ ์๋ถํ ์ ํตํด CPU๊ฐ ์ฌ๋ ค๊ฐ์ธ ๋ฏํ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ค
- ์ค๋ ๋ ๊ฐ ๋ฌธ๋งฅ ๊ตํ์ ํตํด ๋ฒ๊ฐ์ ์คํํ๋ฉฐ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ฉฐ, ์ค์ผ์ค๋ง์ด๋ผ๊ณ ํ๋ค
https://cdaosldk.tistory.com/288
CS ๊ฐ์ 3. ํ๋ก์ธ์ค ์๋ช ์ฃผ๊ธฐ์ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ
์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ 0. ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค 0-1. ํ๋ก๊ทธ๋จ์ด ์ ์ฅ๋์ด ์๋ ๊ณณ : ๋ณด์กฐ ๊ธฐ์ต์ฅ์น 0-2. ํ๋ก๊ทธ๋จ์ด ๋ก๋ฉ๋๋ ๊ณณ : ์ฃผ ๊ธฐ์ต์ฅ์น 0-3. ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์ฃผ์ฒด : ํ๋ก์ธ์ค 0-4. ์์ ์
cdaosldk.tistory.com
(1) ์ค์ผ์ค๋ง์ ๋จ์
https://cdaosldk.tistory.com/264
CS ๊ฐ์ 2. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ
์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ 1. CU์ ํต์ฌ ๊ธฐ๋ฅ : ์ค์ผ์ค๋ง 1) ์ค์ผ์ค๋ง ์๊ฐ - ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์ฃผ์ฒด = ํ๋ก์ธ์ค ex) ์นดํก ์คํ - ์์ ์ ์ฒ๋ฆฌํ๋ ์ฃผ์ฒด = ์ค๋ ๋ ex) ์นดํก ๋ฉ์ธ์ง ์ก์์ CPU๋ฅผ ์ ์ฌ์ฉํ
cdaosldk.tistory.com
(2) ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ํ๊ฐ๊ธฐ์ค : ๊ธฐ์กด ๋ธ๋ก๊ทธ ์ฐธ์กฐ
(3) ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ : ๊ธฐ์กด ๋ธ๋ก๊ทธ ์ฐธ์กฐ
2 - 2. ๋ฉ๋ชจ๋ฆฌ ์๊ฐ์์์ ํ๊ณ
1์ด ๋์ : ์ผ๋ฐ์ ์ธ ์ปดํจํฐ๊ฐ ์ฝ 1 ~ 5์ต๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํด ์ฐ์ฐ์ ์ํ ํ ์ ์๋ ์๊ฐ
- ํ๋ก๊ทธ๋จ์ ์๊ฐ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ ๋ฐ ์ฐ์ฐ ์ํํ๋ ๋์์ 1๊ฐ์ ์ฐ์ฐ ๋จ์๋ก ๋๋ค
- ์ํ ์๊ฐ์ด ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ ์ฐ์ฐ์ ์คํ ํ์๋ก ์ํ ์๊ฐ์ ํ๊ฐํ๋ค
๊ธฐ๋ณธ ์ฐ์ฐ
1) ๋ฐ์ดํฐ ์ ์ถ๋ ฅ : copy, move ๋ฑ
2) ์ฐ์ ์ฐ์ฐ : add, multiply ๋ฑ
3) ์ ์ด ์ฐ์ฐ : if, while ๋ฑ
- ์๊ฐ๋ณต์ก๋๋ ์ ๋ ฅ์ ํฌ๊ธฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๊ด๊ด๊ณ, ์๊ฐ๋ณต์ก๋๋ ์๊ฐ์ด๊ณผ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ณ์ฐํ๋ค
- O(1)์ ์์ ์๊ฐ, O(logn)์ ๋ก๊ทธ ์๊ฐ, O(n)์ ์ ํ ์๊ฐ, O(nlogn)์ด๋ O(n^2)๊ฐ์ด ๊ณฑ์ ์ผ๋ก ํํ๋๋ ๊ฒ์ ๋คํญ ์๊ฐ,
O(2^n)์ ์ง์ ์๊ฐ, O(N!)์ ํฉํ ๋ฆฌ์ผ ์๊ฐ์ด๋ค
- n์ด 25์ด์์ธ ๊ฒฝ์ฐ ์ง์ ์๊ฐ์ ์๊ฐ์ด๊ณผ(์ผ๋ฐ์ ์ผ๋ก 1 ~ 5์ด)๋ฅผ ํต๊ณผํ๊ธฐ ์ด๋ ต๋ค
- n์ด 11 ์ดํ๊ฐ ์๋๋ผ๋ฉด ํฉํ ๋ฆฌ์ผ๋ ์๊ฐ์ด๊ณผ๋ฅผ ํต๊ณผํ๊ธฐ ์ด๋ ต๋ค. n์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ์๊ฐ๋ณต์ก๋๋ฅผ ๋๋ต ํ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค
+ ์ผ๋ฐ์ ์ธ ์ฝ๋ฉ ํ ์คํธ์์(์๊ฐ์ ๋ํด ๋ช ์ํ์ง ์์ ๊ฒฝ์ฐ)
~ ์ ํ์๊ฐ : ์ฝ 1 ~ 5์ด, ์ ํ ์๊ฐ์ ์ธ์ด๋ง๋ค ๋ค๋ฅด๋ฏ๋ก, ์๊ฐ๋ณต์ก๋๊ฐ ์ค์ํ๋ค
~ ์๊ฐ๋ณต์ก๋์ ์ฐ์ฐ๋์ด 1์ต ์ด์์ด๋ฉด ๊ฑฐ์ ํ์คํ๊ฒ ์๊ฐ ์ด๊ณผ
- ์ผ๋ฐ์ ์ธ ์ปดํจํฐ ์ฑ๋ฅ : 1์ด์ ์ฝ 1์ต ํ ์ฐ์ฐ ๊ฐ๋ฅ, 0.1์ด์ ์ฝ ์ฒ๋ง ํ ์ฐ์ฐ ๊ฐ๋ฅ
cf) log1000 = 10, log2000 = 11, log1000000 = 20
2 - 3. ๋คํธ์ํฌ ์๊ฐ์์์ ํ๊ณ
- Connection Timeout
- Socket Timeout
- Read Timeout
TCP๋ ์ฐ๊ฒฐ์งํฅ ํ๋กํ ์ฝ๋ก ์ฐ๊ฒฐ์ ์๋ฆฝํ ํ ๊ทธ ์ฐ๊ฒฐ์ ํตํด ๋ฐ์ดํฐ๊ฐ ์ก์์ ๋๋ค.
์ฐ๊ฒฐ์งํฅ ํ๋กํ ์ฝ ์๋๋ฐฉ์
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ IP์ ํฌํธ๋ฅผ ์ด์ฉํด ์๋ฒ์ ์ปค๋ฅ์ ์ ์์ฒญํ๋ค
2. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ปค๋ฅ์ ์์ฒญ์ ์๋ฝ ์๋ต์ ์ ์กํ๋ค
3. ์ฐ๊ฒฐ์ด ์๋ฆฝ๋๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์์ฒญ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค
4. ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ์์ฒญ๋ฐ์ดํฐ์ ๋ํด ์ฒ๋ฆฌํ ํ, ์๋ต์ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ๋ค
(1) Connection TImeout
- ์น ๋ธ๋ผ์ฐ์ ๋ 3 way handshake ๋ฐฉ์์ผ๋ก ์๋ฒ์ ์ฐ๊ฒฐ์ ๋งบ๋๋ค. ์ด ๊ณผ์ ์ ์์๋ ์๊ฐ์ Connection Time์ด๋ผ๊ณ ํ๋ฉฐ, ์ด ์๊ฐ์ ์ด๊ณผํ๋ ๊ฒ์ด Connection Timeout์ด๋ค
+ ์์ธ 1 - ๋ฐฉํ๋ฒฝ์์ ์ปค๋ฅ์ ์์ฒญ์ ๋ง์ ๊ฒฝ์ฐ
ํด๋ผ์ด์ธํธ์ IP๊ฐ ๋ฐฉํ๋ฒฝ์ ํ์ฉ๋์ด ์์ง ์์ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ค๋ฅ๋ก ๋๋ถ๋ถ์ Connection Timeout์ ์ฌ๊ธฐ์ ๋ฐ์ํ๋ค
+ ์์ธ 2 - ์๋ฒ๊ฐ ๋๋ฌด ๋ฐ๋น ์ปค๋ฅ์ ์์ฒญ์ ๋ฐ๊ธฐ ํ๋ค๊ฑฐ๋ ์์ฒญ์ ๋ฐ์์ด๋ ์๋ต์ ์ค ์ ์๋ ์ํ
์๋ฒ์ ๋ฆฌ์์ค๊ฐ ๋ถ์กฑํด ์๋ต์ ์ฃผ์ง ๋ชปํ๋ ๊ฒฝ์ฐ
+ ์์ธ 3 - ์ปค๋ฅ์ ํ์ ์ปค๋ฅ์ ์ด ๋ชจ๋ ์ฌ์ฉ์ค์ธ ๊ฒฝ์ฐ
๋ชจ๋ ์ฌ์ฉ์ค์ผ ๋ ๊ฐ๋ ๋ฐ์ํ๋ ์ค๋ฅ๋ก, ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์ด์์๋ค๋ฉด ์ปค๋ฅ์ ํ์ ํฌ๊ธฐ๋ฅผ ๋๋ ค์ผ ํ๋ค
(2) Socket Timeout
- ๋ณดํต ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๋งบ์ ํ ์ฌ๋ฌ ๊ฐ์ ํจํท์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค. ๊ฐ ํจํท ์ ์ก ์ ์๊ฐ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ์ด ์๊ฐ์ ์๊ณ์น๋ฅผ ๋๋ ๊ฒ์ด Socket Timeout์ด๋ค.
Socket Timeout์ Target์ ์ ์ฒด ์๋ต์๊ฐ์ด ์๋ ๊ฐ๋ณ ์๋ต์๊ฐ์ด๋ค
(3) Read Timeout
- ์ฝ์ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ง๋ฃ๋๋ฉด ๋ฐ์ํ๋ timeout์ผ๋ก, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์์ ์ฑ๊ณตํ์ง๋ง ์์ฒญ์ ๋ํ ์๋ต์ด ์๊ฐ์ ๋๊ธฐ๊ฒ ๋๋ค. ์ด ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ํ ์ค๋ฅ๋ก ํ๋จํ๊ณ , ์๋ฒ๋ ์์ฒญ์ ๊ณ์ ์ํํ๊ณ ์์ผ๋ฏ๋ก ์์ฒญ์ ์ฑ๊ณต์ผ๋ก ํ๋จํ๋ค. ๊ทธ๋ก ์ธํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์ฑํฌ๊ฐ ๋ง์ง ์์ ๋ฌธ์ ๋ก ์ด์ด์ง ํ๋ฅ ์ด ๋๋ค
+ ์์ธ 1 : ์๋ฒ์์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ
์๊ฐ ์์์ ์์ธ์ ๋ค์ํ ์ ์๋ค. SQL ์ฟผ๋ฆฌ, ๋ฝ, ํ๋ก๊ทธ๋จ์ด๋ ๊ทธ ๋ฐ์ ๋ค๋ฅธ ์๋ฒ์ ์ธํฐํ์ด์ค ์ค ์๋ต์ด ์ค์ง ์๋ ๋ฑ์ ์์ธ์ด ์๋ค
+ ์์ธ 2 : ์๋ฒ์ ๋ฐ์ดํฐ ๋๋ ์กฐํ
๋ถ๊ฐํผํ๊ฒ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๊ฒฝ์ฐ, Read Timeout์ ๋๋ ค์ค์ผ ํ๋ค. ๋ํ ์ด ๊ฒฝ์ฐ OOM์ ๋ง๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ ๋๋ ค์ผ ํ๋ค
+์์ธ 3 : ๋คํธ์ํฌ ๋์ญํญ
๋๋ฌผ๊ฒ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋คํธ์ํฌ ๋์ญํญ์ด ์ข์ ๊ฒฝ์ฐ ๋ณ๋ชฉ ํ์์ผ๋ก ์๋ต์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค
* Connection Timeout๊ณผ Socket Timeout์ ๋ชจ๋ ํ์ํ๋ค. ๋ ๊ฐ์ง Timeout์ ์ค์ ํ์ง ์์ผ๋ฉด URL ์ ์ ์ ๋ฌดํ ๋๊ธฐ๊ฐ ๋ฐ์ํ ์ ์๋ค
+ ๊ทธ ์ธ ๋คํธ์ํฌ ์ค๋ฅ
- ์ปค๋ฅ์ ํ(์๊ฐ ์์ ํ๊ณ) : ์ปค๋ฅ์ ์ ๋งบ์ ๋๋ง๋ค ์์๋๋ ์์์ ์ ์ฝํ๊ธฐ ์ํด ์ฌ์ฉํ๋๋ฐ, ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ ๋ฑ์ ๋ฐ๋ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค
๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ์ค๋ฅ
~ Connection Refused : ํด๋ผ์ด์ธํธ๊ฐ IP์ ํฌํธ๋ฅผ ์ด์ฉํด ์ปค๋ฅ์ ์ ์์ฒญํ๋๋ฐ ์์ฒญ์ด ๋ค์ด๊ฐ ์๋ฒ์ ํด๋น ํฌํธ๋ฒํธ๋ฅผ Listenํ๋ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค
์์ธ 1 - ํด๋ผ์ด์ธํธ์์ IP๋ ํฌํธ๋ฅผ ์๋ชป ์๊ณ ์๋ ๊ฒฝ์ฐ
์์ธ 2 - ์๋ฒ๊ฐ ์ค์ง๋์๊ฑฐ๋ ์ฌ ๊ธฐ๋์ค์ธ ๊ฒฝ์ฐ
~ Too Many Open Files
ํ์ผ์ ์ด๊ฑฐ๋ ๋คํธ์ํฌ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ด ์์ผ์ ์ด ๋ FIle Descriptor๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ์์ผ์ ํ์ฉ๋ ๊ฒ๋ณด๋ค ๋ง์ด ์ด๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. isof๋ pfiles ๋ช ๋ น์ ์ด์ฉํด ํ์ธํ ์ ์๋ค
์์ธ 1 - ulimit์ open files ๊ฐ์ด ๋๋ฌด ์๋ค ~ open files ๊ฐ์ด 1024 ๋ฑ์ผ๋ก ๋๋ฌด ์์ผ๋ฉด ํ์ผ๊ณผ ์์ผ์ ์ด ์ ์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ulimit ๋ช ๋ น์ผ๋ก ์กฐ์ ๊ฐ๋ฅํ๋ค
์์ธ 2 - ํ์ผ์ด๋ ์์ผ์ ์ฐ ํ ๋ซ์ง ์์์ ๋ ~ ์ด๊ณ ๋์ ๋ซ์ง ์๋ ๊ฒฝ์ฐ open files์ ๊ฐ์ ๊ณ์ ๋นํจ์จ์ ์ผ๋ก ์ฐจ์งํ๊ฒ ๋๋ฉฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค
์์ธ 3 - ์งง์ ์๊ฐ ์์ ์ง๋์น๊ฒ ๋ง์ ์์ผ์ ์ด๊ณ ๋ซ์ ๋ ~ ํ๋กํ ์ฝ(ํนํ HTTP)์ ๋ฐ๋ผ ์ปค๋ฅ์ ์ด OS์์ ๋์ด์ง๋ ๋ฐ ์๊ฐ์ด ์์๋๋ค. ์ฆ, ํ๋ก๊ทธ๋จ์์ ์ฐ๊ฒฐ์ ๋ซ์๋ OS์์ ์ค์ ๋ก ๋ซํ๊ธฐ ๊น์ง ์๊ฐ์ด ์์๋๋ฏ๋ก, OS์ ์ด๋ฐ ์ฐ๊ฒฐ์ด ์์ผ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๊ธฐ์ํด ์ปค๋ฅ์ ํ์ ํ์ฉํ๋ค
'๊ฐ๋ฐ๊ณต๋ถ > CS๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS ๊ฐ์ 11. ๊ณต๊ฐ ์์๊ณผ ๊ณต๊ฐ ๋ณต์ก๋ (1) | 2023.11.30 |
---|---|
CS ๊ฐ์ 10. HTTP/HTTPS (1) | 2023.11.27 |
CS ๊ฐ์ 9. OSI 7๊ณ์ธต (0) | 2023.11.22 |
CS ๊ฐ์ 8. ์๋ฃ๊ตฌ์กฐ์ ๋์๊ณผ ํ์ฉ (0) | 2023.11.13 |
CS ๊ฐ์ 7. ์๋ฃ์ ์ ์ฅ๊ณผ ํํ (0) | 2023.11.10 |