๐ŸŒฑ CS

์ธํ„ฐ๋„ท์˜ ํ†ต์‹  ๊ณ„์ธต์„ ๋‚˜ํƒ€๋‚ด๋Š” TCP/IP 5๊ณ„์ธต ๋ชจ๋ธ์—์„œ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต๊นŒ์ง€๋งŒ ํ•ด๋„ ์ธํ„ฐ๋„ท์ƒ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜ ๋ถˆ๋Šฅ ์ƒํƒœ์ธ ๊ฒฝ์šฐ, ํ˜น์€ ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์†Œ์‹ค๋˜๊ฑฐ๋‚˜ ์ˆœ์„œ๋Œ€๋กœ ์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ†ต์‹ ์ด ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์‚ฌํžˆ ๋ชฉ์ ์ง€ ์ปดํ“จํ„ฐ์— ๋„์ฐฉํ•˜๋”๋ผ๋„ ๊ฐ™์€ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์—์„œ ํ†ต์‹ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‘˜ ์ด์ƒ์ด๋ผ๋ฉด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์•ผํ• ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. TCP/IP์˜ ์ „์†ก ๊ณ„์ธต์—์„œ TCP/UDP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค. TCP ํ”„๋กœํ† ์ฝœ์€ ๋ฐ์ดํ„ฐ์˜ ๋„์ฐฉ ๋ณด์ฆ ๋ฐ ์ˆœ์„œ ๋ณด์žฅ์œผ๋กœ ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ TCP/UDP ํŒจํ‚ท์— ์ถœ๋ฐœ์ง€, ๋ชฉ์ ์ง€ PORT ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ตœ์ข… ๋„์ฐฉ์ง€ ํ”„๋กœ..
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ (virtual memory) ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ƒ์˜ ๊ณต๊ฐ„์„ ์ฐธ์กฐํ•˜์—ฌ ๋งˆ์น˜ ์ปค๋‹ค๋ž€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋งŽ์•„๋ณด์ด๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ! ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ถˆ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜์–ด, ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋‹ค. ๋ถˆ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ํŽ˜์ด์ง•(paging)๊ณผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ (segmentation)๊ธฐ๋ฒ•์ด ์žˆ๋‹ค. ํŽ˜์ด์ง• (paging) ํŽ˜์ด์ง•์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ page ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ page์™€ ๋™์ผํ•œ ํฌ๊ธฐ์˜ frame ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค. ํŽ˜์ด์ง•์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€..
push()์— ์‚ฌ์šฉํ•  Queue๋ฅผ q1, pop()์— ์‚ฌ์šฉํ•  Queue๋ฅผ q2๋ผ๊ณ  ํ•˜์˜€๋‹ค. [ push() ] q1.add()๋ฅผ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. [ pop() ] q1์—์„œ popํ•  1๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋†”๋‘๊ณ , ๋‚˜๋จธ์ง€ n-1๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ q2๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ q2๋กœ ์˜ฎ๊ฒจ์ง„๋‹ค. q1์— ๋‚จ์•„์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ q1.remove()ํ•˜์—ฌ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‹ค์Œ์— ์ง„ํ–‰๋  pop()์„ ์œ„ํ•ด q2๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์„ ๊ฒฝ์šฐ, q1๊ณผ q2์˜ ์ด๋ฆ„์„ swapํ•œ๋‹ค. ๊ตฌํ˜„ ์ฝ”๋“œ import java.util.LinkedList; import java.util.Queue; public class QueueStack { Queue q1; Queue q2;..
enqueue() ๊ตฌํ˜„์— ์‚ฌ์šฉํ•  Stack์„ inStack, dequeue() ๊ตฌํ˜„์— ์‚ฌ์šฉํ•  Stack์„ ๋‘ ๋ฒˆ์งธ outStack์œผ๋กœ ์„ ์–ธํ•˜์˜€๋‹ค. [ enqueue() ] inStack์— push()ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. [ dequeue() ] outStack์ด ๋น„์–ด์žˆ๋‹ค๋ฉด inStack์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ๊ฒฐ๊ณผ ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ outStack์˜ top์— ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. outStack.pop()์œผ๋กœ ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. outStack์ด ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด pop()์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ , outStack์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ์ถ”์ถœํ•˜๋ฉด inStack์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค. ๊ตฌํ˜„ ์ฝ”๋“œ import java.util.Stack; public class Stac..
HTTPS๋ž€? HTTPS์— SSL์„ ์‚ฌ์šฉํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTP๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. HTTPS๋Š” SSL๋กœ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. SSL ํ”„๋กœํ† ์ฝœ์ด๋ž€? SSL์€ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ ๋ณด์•ˆ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ๊ณต๊ฐœํ‚ค, ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. SSL์€ ์ธ์ฆ๊ธฐ๊ด€์œผ๋กœ๋ถ€ํ„ฐ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์‚ฌ์ดํŠธ๋Š” ์ธ์ฆ๊ธฐ๊ด€(CA)์— ์ž์‹ ์˜ ์ •๋ณด์™€ ๊ณต๊ฐœํ‚ค๋ฅผ ์ œ์ถœํ•œ๋‹ค. CA๋Š” ์ด ์ •๋ณด๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , CA์˜ ๋น„๋ฐ€ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์ดํŠธ์—๊ฒŒ ๋ฐœ๊ธ‰ํ•œ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์—๋Š” CA์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด CA๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์ดํŠธ ์ ‘์† ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์‚ฌ์ดํŠธ๋Š” S..
์„œ๋ฒ„๊ฐ€ ๋Š๋ ค์งˆ ๊ฒฝ์šฐ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ์ˆœ์ฐจ์ ์œผ๋กœ ์•Œ์•„๋ณด์ž 1. ์„œ๋ฒ„ ํ™•์žฅ : ์Šค์ผ€์ผ ์•„์›ƒ, ์Šค์ผ€์ผ ์—…2. DB ๋ณ‘๋ชฉ ํ•ด๊ฒฐ : Primary-Secondary DB, ์ž์ฃผ ์“ฐ๋Š” ๋ฐ์ดํ„ฐ ์บ์‹œ(Redis)  1. ์„œ๋ฒ„ ํ™•์žฅ1) ์Šค์ผ€์ผ ์•„์›ƒ(Scale Out)์„œ๋ฒ„ ์—ฌ๋Ÿฌ ๋Œ€๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•˜๋Š” '์ˆ˜ํ‰ ํ™•์žฅ' ๋ฐฉ๋ฒ•์ด๋‹ค.์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์— ๊ฑธ๋ฆฌ๋Š” ๋ถ€ํ•˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์ˆ˜์ ์œผ๋กœ ๋™๋ฐ˜๋˜์–ด์•ผ ํ•œ๋‹ค.์Šค์ผ€์ผ ์•„์›ƒ์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„ ํ•œ ๋Œ€๊ฐ€ ์žฅ์• ๋กœ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์„œ๋น„์Šค ์ œ๊ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.ํ•˜์ง€๋งŒ ๋ชจ๋“  ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”๊ฐ€ ์ ์€ ์›น ์„œ๋ฒ„์— ์ ํ•ฉํ•œ ๋ฐฉ์‹์ด๋‹ค. 2) ์Šค์ผ€์ผ ์—…(Scale Up)์„œ๋ฒ„์— CPU๋‚˜ RAM ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ..
OSI 7 ๊ณ„์ธต์ด๋ž€ ๊ตญ์ œํ‘œ์ค€ํ™”๊ธฐ๊ตฌ(ISO)์—์„œ ๊ฐœ๋ฐœํ•œ ๋ชจ๋ธ๋กœ, ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ๋””์ž์ธ๊ณผ ํ†ต์‹ ์„ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ์„ค๋ช…ํ•œ ๊ฒƒ์ด๋‹ค. ๊ณผ๊ฑฐ OSI 7 ๊ณ„์ธต๋ชจ๋ธ์€ ๊ฐ„๋žตํ™”๋œ TCP/IP 4 ๊ณ„์ธต ๋ชจ๋ธ๋กœ ๋Œ€์ฒด๋˜์—ˆ์ง€๋งŒ, ํ˜„๋Œ€์˜ ์ธํ„ฐ๋„ท์€ ์ข€ ๋” ์„ธ๋ถ„ํ™”๋œ TCP/IP 5 ๊ณ„์ธต์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ๊ณ„์ธต์€ ํ•˜์œ„ ๊ณ„์ธต์˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๊ณ  ์ƒ์œ„ ๊ณ„์ธต์—๊ฒŒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‘์šฉ ๊ณ„์ธต์˜ HTTP ํ”„๋กœํ† ์ฝœ์€ ์ „์†ก ๊ณ„์ธต์˜ TCP ํ”„๋กœํ† ์ฝœ๊ณผ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ IP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ์ž‘๋™ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ณ„์ธต์€ ์™œ ๋‚˜๋ˆ„๊ณ , ์™œ ์•Œ์•„์•ผ ํ• ๊นŒ? ๊ณ„์ธต์„ ๋‚˜๋ˆ„๋ฉด ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ ์ˆ˜ ์žˆ๊ณ , ํŠน์ •ํ•œ ๊ณณ์— ์ด์ƒ์ด ์ƒ๊ธฐ๋ฉด ๊ทธ ๋‹จ๊ณ„๋งŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ์ •์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์ดํ•ดํ•จ์œผ๋กœ์จ, ๋„คํŠธ์›Œํฌ ..
alreadykite
'๐ŸŒฑ CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก