ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Recent Posts
05-30 12:25

Today
Total

Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กComputer Science (26)

์—ฐ์˜ ๊ธฐ๋ก ๐Ÿช

์šด์˜์ฒด์ œ ๊ฐœ์š”

์šด์˜์ฒด์ œ์˜ ์—ญํ• ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.์ž์› ๊ด€๋ฆฌ ๋ฐ ํ• ๋‹นํ”„๋กœ์„ธ์Šค ๋ฐ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ์—ฌ๊ธฐ์„œ 1๋ฒˆ์˜ ์ž์›์€ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๋“ฑ์ด๋‹ค.CPU ๊ด€๋ฆฌ(CPU ์Šค์ผ€์ค„๋ง) : ์‹คํ–‰์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ๊ณต์ •ํ•˜๊ฒŒ ํ• ๋‹น๋ฐ›๋„๋ก ๊ด€๋ฆฌ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ : ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ ์ ˆํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ณ , ์ข…๋ฃŒ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ : ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๋‚ด๋ถ€ ์ •๋ณด๋ฅผ ํŒŒ์ผ ๋ฐ ํด๋” ๋‹จ์œ„๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ํ•ด์คŒ2๋ฒˆ ํ”„๋กœ์„ธ์Šค ๋ฐ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ๋Š” ์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ(ํ”„๋กœ์„ธ์Šค)์— ์ž์›์„ ํ• ๋‹นํ•˜๊ณ  ๋‚ด๋ถ€์— ์žˆ๋Š” ์Šค๋ ˆ๋“œ๋ผ๋Š” ์‹คํ–‰์˜ ๋‹จ์œ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ฆ‰ ์šด์˜์ฒด์ œ๋Š” ์ž์› ๊ด€๋ฆฌ์ž์ด๋‹ค. ์‹œ์Šคํ…œ ์ฝœ๊ณผ ์ด์ค‘ ๋ชจ๋“œ์•ž์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•ด์•ผํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์šด์˜์ฒด์ œ๋„ ์ผ์ข…์˜ ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ ๋•Œ๋ฌธ..

ํ”„๋ก์‹œ์™€ ์•ˆ์ •์ ์ธ ํŠธ๋ž˜ํ”ฝ

ํฌ์›Œ๋“œ ํ”„๋ก์‹œ vs ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—๋Š” ๋‹ค์–‘ํ•œ ์ค‘๊ฐ„์„œ๋ฒ„์™€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋“ค์ด ์กด์žฌํ•œ๋‹ค. ์ค‘๊ฐ„์„œ๋ฒ„์˜ ์œ ํ˜•์œผ๋กœ๋Š” ํฌ์›Œ๋“œ ํ”„๋ก์‹œ(ํ”„๋ก์‹œ), ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ(๊ฒŒ์ดํŠธ์›จ์ด)๊ฐ€ ์กด์žฌํ•œ๋‹ค.ํฌ์›Œ๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์•ž์„ ์˜๋ฏธํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์€ ์ธํ„ฐ๋„ท์˜ ์•ž๋‹จ์— ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ์ฃผ๋กœ ์บ์‹œ ์ €์žฅ, ํด๋ผ์ด์–ธํŠธ ์•”ํ˜ธํ™” ๋ฐ ์ ‘๊ทผ์ œํ•œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ธํ„ฐ๋„ท์œผ๋กœ ๋‚˜์•„๊ฐ€๊ธฐ ์ „ ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ„๋‹ค. ๋งŒ์•ฝ ์บ์‹ฑ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์ด๋ผ๋ฉด ์ธํ„ฐ๋„ท์„ ๊ฑฐ์ณ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ๊ณณ๊นŒ์ง€ ๊ฐˆ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ, ์ฆ‰ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ธํ„ฐ๋„ท์„ ๊ฑฐ์ณ์„œ ์˜จ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๋“ค์ด ์˜ค๋ฆฌ์ง„์„œ๋ฒ„์— ๋„๋‹ฌํ•˜๊ธฐ ์ „ ๊ฑฐ์ณ๊ฐ€๋Š” ๊ณณ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์บ์‹œ ์ €์žฅ์„ ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(๋ถ€ํ•˜ ๋ถ„์‚ฐ)๋กœ..

์‘์šฉ๊ณ„์ธต - HTTP์˜ ์‘์šฉ(์ฟ ํ‚ค, ์บ์‹œ, ์ฝ˜ํ…์ธ  ํ˜‘์ƒ, ์ธ์ฆ, ๋ณด์•ˆ)

์ฟ ํ‚ค์•ž์„œ HTTP๋Š” ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ํ–ˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์„ ๋‘ ๋ฒˆ ๋ณด๋‚ด๋„ ๋ณ„๊ฐœ์˜ ์š”์ฒญ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์›น์‚ฌ์ดํŠธ์—์„œ ๋‹คํฌ๋ชจ๋“œ๋ฅผ ์ผฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ดํ›„ ์ด ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ๋‹คํฌ๋ชจ๋“œ๋กœ ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฐ ์ •๋ณด๋Š” ์„œ๋ฒ„์ธก์—์„œ Set-Cookie: mode=dark ํ—ค๋”๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฅผ ๋ฐ›์•„ ์ €์žฅํ•ด๋‘”๋‹ค.์ดํ›„ ๊ฐ™์€ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๋ฐ›์•˜๋˜ ์ฟ ํ‚ค๊ฐ’์„ ์ „๋‹ฌํ•œ๋‹ค. ์ฟ ํ‚ค๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ์ด๋ฉด ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ „๋‹ฌํ•œ๋‹ค. (Cookie : mode=dark; message=test; . . .)์œ„์—์„œ ๋ดค๋“ฏ์ด ์ฟ ํ‚ค๋Š” ์ด๋ฆ„=๊ฐ’ ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜๋Š”๋ฐ, ๊ทธ ์™ธ์—๋„ ๋„๋ฉ”์ธ๊ณผ ๊ฒฝ๋กœ, ์œ ํšจ๊ธฐ๊ฐ„๊ณผ ๊ฐ™์€ ..

์‘์šฉ๊ณ„์ธต - HTTP

DNS ์„œ๋ฒ„๋„คํŠธ์›Œํฌ ์ƒ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•  ๋•Œ์—๋Š” IP์ฃผ์†Œ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ๋Š” ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ณ  ์‚ฌ๋žŒ์ด ๋ณด๊ธฐ์—๋„ ์ข‹์ง€ ์•Š๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋„๋ฉ”์ธ ๋„ค์ž„์„ ์‚ฌ์šฉํ•œ๋‹ค. www.google.com ๊ฐ™์€ ๊ฒƒ์„ ๋„๋ฉ”์ธ ๋„ค์ž„์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.๊ทธ๋Ÿฌ๋ฉด IP์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๋งคํ•‘์‹œ์ผœ์ฃผ๋Š” ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ด์ง€๋Š”๋ฐ, ์ด๋ฅผ DNS ์„œ๋ฒ„๋ผ๊ณ  ํ•œ๋‹ค. ์œ„์—์„œ ๋ดค๋‹ค์‹œํ”ผ ๋„๋ฉ”์ธ์€ ๊ณ„์ธต์ ์œผ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋‹ค. ์ด ์ ์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์˜ IP๋ฅผ ์ฐพ์„ ๋•Œ ๊ณ„์ธต์ ์œผ๋กœ ์งˆ์˜ํ•œ๋‹ค. ๋„๋ฉ”์ธ ๋„ค์ž„์„ IP๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ๋จผ์ € www.google.com ์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๋‹ค. ๊ฐ€์žฅ ๋จผ์ € ๋กœ์ปฌ์—์„œ ์ฐพ๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œˆ๋„์šฐ์—๋Š” C:\Windows\System32\drivers\etc ๋””๋ ‰ํ† ๋ฆฌ์— ho..

์ „์†ก๊ณ„์ธต - TCP์™€ UDP

ํŒจํ‚ท์˜ ์ตœ์ข… ๋ชฉ์ ์ง€๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์ด๋Š” IP์ฃผ์†Œ+ํฌํŠธ ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์œผ๋กœ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์†ก๊ณ„์ธต์€ ์ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ณ„์ธต์ด๋‹ค.ํฌํŠธ ๋ฒˆํ˜ธํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ด 16๋น„ํŠธ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๊ทธ๋ž˜์„œ 0~2^16-1๊นŒ์ง€ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.0~1023์›ฐ๋…ธ์šด ํฌํŠธ1024~49151๋“ฑ๋ก๋œ ํฌํŠธ49152~65535๋™์  ํฌํŠธ์›ฐ๋…ธ์šด ํฌํŠธ๋Š” ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํฌํŠธ์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด FTP(20, 21), SSH(22), TELNET(23), DNS(53), DHCP(67, 68), HTTP(80), HTTPS(443) ๋“ฑ์ด ์žˆ๋‹ค.๋˜ ๋“ฑ๋ก๋œ ํฌํŠธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” MySQL(3306), Redis(6379), MSSQL(1433)๋“ฑ์ด ์žˆ๋‹ค.๋งˆ์ง€๋ง‰์œผ๋กœ ๋™์  ํฌํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๋กœ์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ..

๋„คํŠธ์›Œํฌ ๊ณ„์ธต - IP

IP ์ฃผ์†Œ๋ž€ํ”„๋ ˆ์ž„์— ๋ชฉ์ ์ง€์™€ ์†ก์‹ ์ง€์˜ MAC ์ฃผ์†Œ๊ฐ€ ์žˆ์—ˆ๋“ฏ์ด, IP ํŒจํ‚ท ํ—ค๋”์—๋„ ์†ก์‹ ์ง€, ์ˆ˜์‹ ์ง€์˜ IP ์ฃผ์†Œ ํ•„๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ์ด IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชฉ์ ์ง€๊นŒ์ง€ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„์ด๋‹ค.IPv4 vs IPv6IPv4๋Š” 32๋น„ํŠธ๋กœ 2^32๊ฐœ์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.IPv6๋Š” 128๋น„ํŠธ์ด๋ฏ€๋กœ ์ด 2^128๊ฐœ์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.IPv4 192.168.1.1IPv62001:0230:abcd:ffff:0000:0000:ffff:1111IPv4 ํŒจํ‚ท ํ—ค๋”์—๋Š” ์‹๋ณ„์ž, ํ”Œ๋ž˜๊ทธ, ๋‹จํŽธํ™” ์˜คํ”„์…‹์ด ์žˆ๋‹ค.์‹๋ณ„์ž : ์–ด๋–ค ํŒจํ‚ท์ด ๋‹จํŽธํ™” ๋œ ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„ํ•ด์ค€๋‹ค. ๊ฐ™์€ ์กฐ๊ฐ์—์„œ ๋‚˜์˜จ ํŒจํ‚ท๋“ค์€ ์‹๋ณ„์ž๊ฐ€ ๊ฐ™๋‹ค.ํ”Œ๋ž˜๊ทธ : 3๋น„ํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” 0์ด๊ณ  DF(Don’t fragme..

๋ฌผ๋ฆฌ, ๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต - ์ด๋”๋„ท, NIC, ํ—ˆ๋ธŒ, ์Šค์œ„์น˜

์ด๋”๋„ท์ด๋ž€?์ด๋”๋„ท(Ethernet) ์€ ๋ฌผ๋ฆฌ ๊ณ„์ธต๊ณผ ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์—์„œ์˜ ๊ทœ๊ฒฉ์„ ์ •์˜ํ•ด ๋‘” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์—์„œ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„์ธ ํ”„๋ ˆ์ž„์˜ ๊ตฌ์กฐ๋ผ๊ฑฐ๋‚˜, MAC์ฃผ์†Œ์˜ ๊ตฌ์กฐ ๋“ฑ์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค.ํ˜„๋Œ€ ๋Œ€๋ถ€๋ถ„์˜ LAN์€ ์ด๋”๋„ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•ž์„œ ๋งํ•œ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•ด ๋จผ์ € ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.์ด๋”๋„ท ํ‘œ์ค€์— ๋”ฐ๋ฅด๋ฉด ํ”„๋ ˆ์ž„์€ ํ”„๋ฆฌ์•ฐ๋ธ”, ์Šคํƒ€ํŠธ ํ”„๋ ˆ์ž„ ๋”œ๋ฆฌ๋ฏธํ„ฐ, ๋ชฉ์ ์ง€ MAC ์ฃผ์†Œ, ์†ก์‹ ์ง€ MAC ์ฃผ์†Œ, ์ƒ์œ„๊ณ„์ธต์ •๋ณด/๋ฐ์ดํ„ฐ ๊ธธ์ด, ํŽ˜์ด๋กœ๋“œ, FCS(Frame Check Sequence)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.ํ”„๋ฆฌ์•ฐ๋ธ”์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž์˜ ํด๋Ÿญ(ํƒ€์ด๋จธ)๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์ˆ˜์‹ ์ž๋Š” ํ”„๋ฆฌ์•ฐ๋ธ”์„ ํ†ตํ•ด ์†ก์‹ ์ž์˜ ํด๋Ÿญ์„ ํŒŒ์•…ํ•˜๊ณ  ๋™๊ธฐํ™”ํ•œ๋‹ค.์Šคํƒ€ํŠธ ํ”„๋ ˆ์ž„ ๋”œ๋ฆฌ๋ฏธํ„ฐ(SFD, Start Fram..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ด ๊ธ€์€ ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šตํ•˜๋ฉฐ ์ด๋ ‡๊ฒŒ ์งœ๋ฉด ์™œ ์•ˆ๋ ๊นŒ?๋ฅผ ๊ณ ๋ฏผํ•œ ๊ณผ์ •์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๊ฐ€ ์ฒ˜์Œ์ด๋ผ๋ฉด ์•„๋ž˜ ๋งํฌ์—์„œ ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ตํžŒ ํ›„ ๊ธ€์„ ์ฝ์œผ์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.https://blog.encrypted.gg/1035 [์‹ค์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜] 0x1C๊ฐ• - ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋ฒˆ์—๋Š” ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ํ”Œ๋กœ์ด๋“œ, ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งŒ ๋‹ค๋ฃจ๊ณ  ๋‚˜๋ฉด ๋‚˜๋ฆ„ ๊ธธ์—ˆ๋˜ ๊ทธ๋ž˜ํ”„ ํŒŒํŠธ๊ฐ€ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ๋Š” ๋ˆˆ์œผ๋กœ ํ•œ ๋ฒˆblog.encrypted.gg ์ตœ๋‹จ๊ฑฐ๋ฆฌํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ๊ฐ„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•œ ํŽธ์ด๋‹ค.NxNํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ํฐ ๊ฐ’(INF)์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.๊ฐ ์ •์ ๊ฐ„์˜ ..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] LCS, Longest Common Subsequence

๊ฐœ์š”LCS(Longest Common Subsequence)๋Š” ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ, ๋‘ ๋ฌธ์ž์—ด ์‚ฌ์ด ๊ณตํ†ต๋˜๋Š” ๋ถ€๋ถ„์„ ๋งํ•œ๋‹ค. ์ฆ‰ ๋ฌธ์ž์—ด์˜ ์ƒ๋Œ€์ ์ธ ์ˆœ์„œ๋งŒ ๊ฐ™์œผ๋ฉด ๋œ๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐœ์˜ ๋ฌธ์ž์—ด์ด ์žˆ์„ ๋•ŒLCS๋Š” ABCCE์ด๋‹ค. ์ด๋Ÿฐ LCS๋Š” DP๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ตฌํ•œ๋‹ค.๊ณผ์ •๋จผ์ € AABCCDE์™€ A์˜ ๊ณตํ†ต๋ถ€๋ถ„์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ํ‘œ์—๋Š” ํ˜„์žฌ๊นŒ์ง€ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต๋ถ€๋ถ„์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ‘œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋œ๋‹ค. (A๋Š” ๊ธธ์ด๊ฐ€ 1์ด๋‹ˆ ์ตœ๋Œ€ ๊ณตํ†ต๋ถ€๋ถ„์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค.)์ด์ œ AABCCDE์™€ AB์˜ ์ตœ์žฅ๊ณตํ†ต๋ถ€๋ถ„์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด๋ณด๋„๋ก ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋  ๊ฒƒ์ด๋‹ค.์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ณตํ†ต๋˜๋Š” ๋ถ€๋ถ„์ธ B๊ฐ€ ๋‚˜์™”์„ ๋•Œ์ด๋‹ค. ์ €๊ณณ์€ AAB์™€ AB์˜ LCS์˜ ๊ธธ์ด๋ฅผ ๊ธฐ๋กํ•œ ๋ถ€๋ถ„์ธ๋ฐ AB..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฌดํ–ฅ๊ทธ๋ž˜ํ”„ ์‚ฌ์ดํด dfs

dfs๋ฅผ ์‘์šฉํ•˜์—ฌ ๋ฌดํ–ฅ๊ทธ๋ž˜ํ”„์—์„œ์˜ ์‚ฌ์ดํด์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์ด๋‹ค.  ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ์ ์„ ํ•˜๋‚˜์”ฉ ์ˆœํšŒํ•˜๋ฉฐ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋ˆˆ์œผ๋กœ ๋ด์„œ๋Š” 2 3 5 ์‚ฌ์ดํด์ด ์กด์žฌํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” 1์—์„œ๋ถ€ํ„ฐ dfs๋ฅผ ํ•˜๋ฉฐ ๋ฐ”๋กœ ์‚ฌ์ดํด์„ ์ฐพ๊ฒŒ ๋œ๋‹ค.dfs ๊ฐ€์žฅ ์•„๋ž˜ path.pop_back()์€ 4์™€ ๊ฐ™์ด ์‚ฌ์ดํด์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ธ์ ‘ํ•œ ๋…ธ๋“œ๊ฐ€ ์ „์— ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋ฐ–์— ์—†์„ ๋•Œ์˜ ๊ฒฝ์šฐ์ด๋‹ค.#include #include #include using namespace std;vector> graph; // ๊ทธ๋ž˜ํ”„ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธvector> edges; // ๊ฐ„์„  ์ •๋ณดvector visited;vector path;b..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ€ต์ •๋ ฌ

ํ€ต์ •๋ ฌ์€ ์ˆซ์ž ํ•˜๋‚˜(pivot)๋ฅผ ๊ณจ๋ผ์„œ ์˜ฌ๋ฐ”๋ฅธ ์ž๋ฆฌ์— ๋„ฃ์–ด๊ฐ€๋ฉฐ ์ •๋ ฌ์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋•Œ ๋ฐฐ์—ด์„ ์ชผ๊ฐœ๊ฐ€๋ฉฐ ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข…์ ์ธ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(nlogn)์ด๋‹ค. ๋™์ž‘ ๊ณผ์ •์ด๋ก ์ ์ธ ๋‚ด์šฉ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ์–ด๋–ค์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•˜์ž. ์•„๋ž˜์™€ ๊ฐ™์ด {5, 4, 1, 7, 6, 2} ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ๋งจ ์™ผ์ชฝ์„ ํ”ผ๋ด‡์œผ๋กœ ์žก๊ณ  left์™€ right๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ๊ฐ ์ง€์ •ํ•œ๋‹ค.์—ฌ๊ธฐ์„œ์˜ left๋Š” pivot๋ณด๋‹ค ์ž‘์•„์•ผํ•˜๊ณ , right๋Š” pivot๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค. ์ด์ œ left๋ฅผ ํ•˜๋‚˜์”ฉ ์˜ฎ๊ธฐ๋ฉฐ 5๋ณด๋‹ค ํฐ ์ˆ˜๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋‚˜์˜ค๋Š” ์ง€์ ์„ ์ฐพ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.right๋Š” pivot๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด๋ฏธ pivot๋ณด๋‹ค ์ž‘๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์—ฌ๊ธฐ์„œ ๋ฉˆ์ถฐ์ค€๋‹ค.์ด์ œ left์™€ right๊ฐ€..

ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ LAN ์–ด๋Œ‘ํ„ฐ์˜ ๋™์ž‘

์•ž์„œ Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ์˜ Socket, Connect, Write, Read, Close ๋™์ž‘์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘๋“ค์„ ๋’ท๋‹จ์—์„œ ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ LAN ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์ €๋ฒˆ์—” Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊นŒ์ง€ ์‚ดํŽด๋ดค์œผ๋‹ˆ ํ”„๋กœํ† ์ฝœ ์Šคํƒ ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. TCP์™€ UDP๋Š” ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. TCP๋Š” ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ฉ”์ผ ๋“ฑ์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•˜๊ณ , UDP๋Š” DNS ์„œ๋ฒ„์— ๋Œ€ํ•œ ์กฐํšŒ์™€ ๊ฐ™์€ ์งง์€ ์ œ์–ด์šฉ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•œ๋‹ค. (์˜์ƒ ์ „์†ก์—๋„ ์‚ฌ์šฉ๋œ๋‹ค.)์•„๋ž˜์— ์žˆ๋Š” IP ๋‹ด๋‹น์€ ํŒจํ‚ท์˜ ์†ก์ˆ˜์‹ ์„ ์ œ์–ดํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค. ๋‚ด๋ถ€์— ์žˆ๋Š” ARP ํ”„๋กœํ† ์ฝœ์€ IP ์ฃผ์†Œ์— ๋Œ€์‘ํ•˜๋Š” ์ธํ„ฐ๋„ท์˜ MAC ์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ•  ๋•Œ, ICMP๋Š” ํŒจํ‚ท ์šด๋ฐ˜ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ..

PC์—์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€: ํŒจํ‚ท์˜ ์—ฌ์ • (2)

์ง€๋‚œ ๊ธ€์—์„œ๋Š” BAS๊ฐ€ ์…€์„ ํ•ฉ์ณ ํŒจํ‚ท์œผ๋กœ ๋ณต์›ํ•œ ๋’ค PPP ํŒจํ‚ท์„ ์ถ”์ถœํ•˜๊ณ , ํ„ฐ๋„๋ง์šฉ ํ—ค๋”๋ฅผ ๋ถ™์—ฌ ์†ก์‹ ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ์‚ดํŽด๋ดค์—ˆ๋‹ค. ๊ทธ๋•Œ์˜ ๊ณผ์ •์„ ๋ณต๊ธฐํ•ด๋ณด๋ฉด MAC์™€ PPPoE๊ฐ€ BAS์— ์ „๋‹ฌ๋˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— BAS์—์„œ ๋ฒ„๋ ค์ง„๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด ๊ณผ์ •์— ๋Œ€ํ•ด ์ข€ ๋” ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.์šฐ์„  BAS ์—ญํ• ์€ ํฌ๊ฒŒ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์ด๋‹ค.1. ๋ณธ์ธ ํ™•์ธ๊ณผ ์„ค์ •๊ฐ’ ํ†ต์ง€2. ํ„ฐ๋„๋ง์„ ์ด์šฉํ•œ ํŒจํ‚ท ์šด๋ฐ˜์•ž์„  ๊ทธ๋ฆผ์— ๋‚˜์˜จ ๋™์ž‘์€ 2๋ฒˆ ์—ญํ• ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด๋‹ค.ADSL์ด๋‚˜ FTTH ์•ก์„ธ์Šค ํšŒ์„ ์€ ์ตœ์ดˆ์— ํ”„๋กœ๋ฐ”์ด๋”(KT, SKT ๋“ฑ)๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹นํ•œ ์ธํ„ฐ๋„ท ์ ‘์†์šฉ ์‚ฌ์šฉ์ž๋ช…๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•ด ๋กœ๊ทธ์ธ์„ ํ•ด์•ผ ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. BAS๋Š” PPPoE๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. PPPoE๋Š” PPP๋ผ๋Š” ๋ฐฉ์‹์„ ADS..

PC์—์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€: ํŒจํ‚ท์˜ ์—ฌ์ • (1)

์•ž์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์ถœํ•ด์ค€๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์†ก์ถœ๋œ ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ์ธํ„ฐ๋„ท๊นŒ์ง€ ์†ก์ถœ๋˜๋Š”์ง€ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.๊ฐœ์š”๋จผ์ € ์ง‘์—์„œ ์ธํ„ฐ๋„ท์œผ๋กœ ๋‚˜๊ฐ€๊ธฐ๊นŒ์ง€์˜ ์ „์ฒด์ ์ธ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.ํด๋ผ์ด์–ธํŠธ์—์„œ ๋งŒ๋“  ํŒจํ‚ท์€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™”ํ•˜๋ฉฐ ํ”„๋กœ๋ฐ”์ด๋”(ISP : KT, SKT ๋“ฑ)์— ๋„์ฐฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ์ขŒ์ธก ๋์— ์žˆ๋Š” ์ธํ„ฐ๋„ท ์ ‘์†์šฉ ๋ผ์šฐํ„ฐ๋Š” ํŒจํ‚ท ์†ก์‹ ๊ณผ ํŒจํ‚ท ์ค‘๊ณ„ ๋™์ž‘์„ ํ•œ๋‹ค.ํŒจํ‚ท ์ค‘๊ณ„๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์—์„œ ๋“ค์–ด์˜จ ํŒจํ‚ท์„ ๋ชฉ์ ์ง€๋กœ ์ „๋‹ฌํ•˜๋Š” ์ค‘๊ฐ„ ์—ญํ• ์ด๊ณ , ํŒจํ‚ท ์†ก์‹ ์€ ์ž์‹ ๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์žฅ์น˜๊ฐ€ ์ƒ์„ฑํ•œ ํŒจํ‚ท์„ ๋ฐ›์•„ ๋„คํŠธ์›Œํฌ๋กœ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด๋‹ค.ํŒจํ‚ท ์ค‘๊ณ„ ๋™์ž‘์€ ์ด๋”๋„ท์˜ ๋ผ์šฐํ„ฐ์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•  ๊ณณ์€ ํŒจํ‚ท ์†ก์‹  ๋™์ž‘์ด๋‹ค. ์ด๋”๋„ท์—์„œ์˜ ํŒจํ‚ท ์†ก์‹ ์˜ ์ฃผ ๋ชฉ์ ์€ ..

๋ธŒ๋ผ์šฐ์ €์— google.com์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”.

๋ธŒ๋ผ์šฐ์ €์— google.com์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด์„ธ์š”. ๋ผ๋Š” ์งˆ๋ฌธ์€ ๊ธฐ์ˆ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•ด๋ดค๋‹ค๋ฉด ํ•œ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„๋ฒ•ํ•œ ์งˆ๋ฌธ์ด๋‹ค. ์ด์— ๋‚ด๋ถ€ ๋™์ž‘์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค. ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋งŽ์€ ์ผ๋“ค์ด ์ผ์–ด๋‚œ๋‹ค. 1. URL ์ž…๋ ฅ: ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•œ๋‹ค. 2. ๋„๋ฉ”์ธ ์ด๋ฆ„ ์ถ”์ถœ: ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž…๋ ฅํ•œ URL์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ถ”์ถœํ•œ๋‹ค.3. DNS ์ฟผ๋ฆฌ ์ „์†ก: ๋ธŒ๋ผ์šฐ์ €๋Š” DNS ๋ฆฌ์กธ๋ฒ„์— ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜์—ฌ ํ•ด๋‹น IP ์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•œ๋‹ค. 4. IP ์ฃผ์†Œ ์ˆ˜์‹ : DNS ๋ฆฌ์กธ๋ฒ„๊ฐ€ ๋„๋ฉ”์ธ ์ด๋ฆ„์— ๋Œ€ํ•œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 5. ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ: ์ด์ œ ๋ธŒ๋ผ์šฐ์ €๋Š” IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์„œ๋ฒ„์™€์˜ TCP/IP ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] B- Tree์™€ ์ธ๋ฑ์Šค์˜ ์ดํ•ด

์ด ๊ธ€์€ ์•„๋ž˜ ๊ธ€์„ ์ฝ์œผ๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ๊ณผ, ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•œ ์ ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.https://mangkyu.tistory.com/286 [MySQL] B-Tree๋กœ ์ธ๋ฑ์Šค(Index)์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹(๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜)์— ๋”ฐ๋ผ B-Tree ์ธ๋ฑ์Šค, Hash ์ธ๋ฑ์Šค, Fractal ์ธ๋ฑ์Šค ๋“ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ B-Tree ๊ตฌ์กฐ๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— B-Tree ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ธ๋ฑ์Šค์˜ ๋™์ž‘mangkyu.tistory.com  B- Tree๋Š” BinaryTree(์ž์‹์ด 2๊ฐœ์ธ ํŠธ๋ฆฌ)์—์„œ ๊ฐœ๋…์„ ํ™•์žฅํ•ด n๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.DB์—๋Š” ํŽ˜์ด์ง€๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ํŽ˜์ด์ง€๋ž€ ๋””์Šคํฌ์™€ ๋ฉ”๋ชจ๋ฆฌ(๋ฒ„ํผํ’€)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ด๋‹ค. ์ธ๋ฑ์Šค์™€ PK, ํ…Œ..

์ปดํŒŒ์ผ ๊ณผ์ •

์ด ๊ธ€์—์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง  ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ป๊ฒŒ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค. ๋จผ์ € ์•„๋ž˜์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. #include #define MAX 5 int main(){ printf("hello world\n"); //hello world๋ฅผ ์ถœ๋ ฅ int a = MAX; return 0; } ์ดํ›„ ์šฐ๋ฆฌ๊ฐ€ gcc hello.c ๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด a.outํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด a.outํŒŒ์ผ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ชฉ์  ํŒŒ์ผ(executable object file)์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ธฐ์—๋Š” hello.cํŒŒ์ผ์ด ๋ฐ”๋กœ a.outํŒŒ์ผ๋กœ ๋ณ€ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง€์ง€๋งŒ ์‚ฌ์‹ค ๋‚ด๋ถ€์ ์œผ๋กœ ์ „์ฒ˜๋ฆฌ, ์ปดํŒŒ์ผ, ์–ด์…ˆ๋ธ”๋ฆฌ, ๋งํ‚น ๊ณผ์ •์„ ๋ชจ๋‘ ๊ฑฐ์นœ ๊ฒƒ์ด๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ๊ทธ ๊ณผ์ •์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ์ „์ฒ˜๋ฆฌ(h..

์ˆœ์ฐจํšŒ๋กœ vs ์กฐํ•ฉํšŒ๋กœ(feat ํ”Œ๋ฆฝํ”Œ๋กญ)

๐Ÿ”– ํ‚ค์›Œ๋“œ ์ˆœ์ฐจํšŒ๋กœ, ์กฐํ•ฉํšŒ๋กœ, ํ”Œ๋ฆฝํ”Œ๋กญ ๐Ÿ“Œ์ˆœ์ฐจํšŒ๋กœ(Sequential Circuits)์™€ ์กฐํ•ฉํšŒ๋กœ(Comninational Circuits) ์ˆœ์ฐจํšŒ๋กœ๋Š” ์ถœ๋ ฅ์ด ํ˜„์žฌ์˜ ์ž…๋ ฅ๊ณผ ์ด์ „์˜ ๋…ผ๋ฆฌํšŒ๋กœ ์ƒํƒœ์˜ ์กฐํ•ฉ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋Š” ๋…ผ๋ฆฌํšŒ๋กœ, ์กฐํ•ฉํšŒ๋กœ๋Š” ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋ฉด ๋ฐ”๋กœ ์ถœ๋ ฅ์ด ๋‚˜์˜ค๋Š” ํšŒ๋กœ์ด๋‹ค. ์•ž์„œ ์ˆœ์ฐจํšŒ๋กœ๋Š” ์ด์ „์˜ ๋…ผ๋ฆฌํšŒ๋กœ ์ƒํƒœ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด ์ด์ „์˜ ๊ฐ’์„ ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค. ์ด๋•Œ ์ด ๊ธฐ์–ต์†Œ์ž๋กœ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ”Œ๋ฆฝํ”Œ๋กญ์ด๋‹ค. ์ฆ‰ ์ˆœ์ฐจํšŒ๋กœ๋Š” ์กฐํ•ฉํšŒ๋กœ+๊ธฐ์–ตํšŒ๋กœ์ธ ๊ฒƒ์ด๋‹ค. ์กฐํ•ฉ ๋…ผ๋ฆฌํšŒ๋กœ์˜ ํ˜„์žฌ ์ถœ๋ ฅ๊ฐ’์€ ๊ธฐ์–ตํšŒ๋กœ์— ์ €์žฅ๋˜๊ณ  ์ด ์ €์žฅ๋œ ๊ฐ’์€ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์œ„ํ•ด ํ”ผ๋“œ๋ฐฑ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์กฐํ•ฉ ๋…ผ๋ฆฌํšŒ๋กœ์˜ ์ž…๋ ฅ ๋‹จ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ๐Ÿ“Œํ”Œ๋ฆฝํ”Œ๋กญ ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ํ”Œ๋ฆฝ ํ”Œ๋กญ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์•Œ์•„..

[C++ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต(Divide and conquer)

๊ฐœ๋… ๋ถ„ํ• ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‘˜ ์ด์ƒ์˜ ๋ถ€๋ถ„๋ฌธ์ œ๋กœ ๋‚˜๋ˆˆ ๋’ค ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์„ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ๋ณ‘ํ•ฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ข…๋งŒ๋ถ์˜ ํ‘œํ˜„์„ ๋นŒ๋ฆฌ์ž๋ฉด ๊ฐ๊ฐœ ๊ฒฉํŒŒ ๋ผ๊ณ  ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ ์˜ˆ์ œ๋ฅผ ๋ณด๋„๋ก ํ•˜์ž. ์˜ˆ์ œ 1 : ์ˆ˜์—ด์˜ ํ•ฉ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด๋ฅผ ๋‹จ์ˆœ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. #include using namespace std; int recursiveSum(int N) { if (N == 1) { return N; } else { return recursiveSum(N - 1) + N; } } int main() { int A; cin >> A; cout > A; cout