Category: CE

0

์ปดํ“จํ„ฐ ๋ณด์•ˆ ๊ธฐ๋ง๊ณ ์‚ฌ ์ •๋ฆฌ

Diffieโ€“Hellman key exchangeMan-in-the-middle attack (Key exchange) Hash Functions๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ณผ์ •์€ ๋งŽ์€ ์ปดํ“จํŒ… ํŒŒ์›Œ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธด ๋ฐ์ดํ„ฐ์˜ ํ•ด์‰ฌ๊ฐ’์„ ๊ตฌํ•ด์„œ ์งง์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ ์€ ์ปดํ“จํŒ… ํŒŒ์›Œ๋กœ ๋†’์€ ๋ณด์•ˆ์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. Man-in-the-middle attack

0

Express.js ์Šคํ„ฐ๋””

์ด ๊ธ€์€ Express.js ํ™ˆํŽ˜์ด์ง€ ์—์„œ ์ œ๊ณตํ•˜๋Š” ํŠœํ† ๋ฆฌ์–ผ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์„ค์น˜Express.js๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € node.js์™€ NPM์ด ์„ค์น˜๋œ ์ƒํ™ฉ์—์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œˆ๋„์šฐ ๊ธฐ์ค€์œผ๋กœ Node.js ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์„ค์น˜ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ ค๋˜๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด express.js๋ฅผ ์„ค์น˜ํ•œ๋‹ค. 12

0

๊ธฐ์ดˆ DP์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

๋ฐฐ๋‚ญ ์•Œ๊ณ ๋ฆฌ์ฆ˜(a.k.a Knapsack problem)๋ฐฐ๋‚ญ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ๋ฌผ๊ฑด์ด ์ œํ•œ๋œ ๊ฐ€๋ฐฉ์— ์ตœ๋Œ€ํ•œ์˜ ๊ฐ€์น˜๋กœ ๋‹ด๋Š” ๋ฌธ์ œ์ด๋‹ค. Fractional Knapsack ๋ฌธ์ œ๋Š” ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์กฐ๊ฑด์—์„œ ์ชผ๊ฐค ์ˆ˜ ์žˆ์–ด์„œ ๊ฐ€๋Šฅํ–ˆ๋‹ค. ์•ž์„œ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ๋ฌผ๊ฑด์„ ์ตœ๋Œ€ํ•œ์˜ ๊ฐ€์น˜๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋‹ด๊ธฐ ์œ„ํ•ด์„œ๋Š” DP๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐํ•˜๊ฒŒ ๋œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜

0

64bit ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - Day 5

์ด ๊ธ€์€ โ€˜64๋น„ํŠธ ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - ํ•œ์Šนํ›ˆ ์ €์žโ€™์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ 64๋น„ํŠธ ์ „ํ™˜ ์ค€๋น„์„ ํ˜• ์ฃผ์†Œ์™€ 4๋‹จ๊ณ„ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•ํŽ˜์ด์ง•์— ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ํ…Œ์ด๋ธ”์€ 512๊ฐœ์˜ ์—”ํŠธ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๋‹ค์Œ ๋ ˆ๋ฒจ์—์„œ ์‚ฌ์šฉํ•  ํ…Œ์ด๋ธ”์˜ ๊ธฐ์ค€ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์ธ ํŽ˜์ด์ง€ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์—”ํŠธ๋ฆฌ๋Š” 2MB ํŽ˜์ด

0

64bit ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - Day 4

์ด ๊ธ€์€ โ€˜64๋น„ํŠธ ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - ํ•œ์Šนํ›ˆ ์ €์žโ€™์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. A20 ๊ฒŒ์ดํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ 1MB ์ด์ƒ ์˜์—ญ์— ์ ‘๊ทผํ•ด๋ณด์žIA-32e ๋ชจ๋“œ ์ปค๋„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋งต์™œ 1MB ์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•ด์„œ๋Š” ์•ž์„œ ๋ถ€ํŠธ ๋กœ๋”์— ์˜ํ•ด ์ปค๋„ ์ด๋ฏธ์ง€๊ฐ€ 0x10000 ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜๊ณ , 1MB ์ดํ•˜์˜ ์–ด๋“œ๋ ˆ์Šค ์ค‘์—์„œ ๋น„๋””์˜ค

0

64bit ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - Day 3

์ด ๊ธ€์€ โ€˜64๋น„ํŠธ ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - ํ•œ์Šนํ›ˆ ์ €์žโ€™์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. C์–ธ์–ด๋กœ ์ปค๋„์„ ์ž‘์„ฑํ•˜์ž์‹คํ–‰ ๊ฐ€๋Šฅํ•œ C ์ฝ”๋“œ ์ปค๋„ ์ƒ์„ฑ ๋ฐฉ๋ฒ•๋นŒ๋“œ ์กฐ๊ฑด๊ณผ ์ œ์•ฝ ์‚ฌํ•ญ์ง€๊ธˆ๊นŒ์ง€ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ๋‹จ์ผ ํŒŒ์ผ๋กœ NASM ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ง์ „ EntryPoint.s ์ฝ”๋“œ๋„ ๋‹จ์ผ ํŒŒ์ผ๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ณ , 512byte๋กœ

0

64bit ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - Day 2

์ด ๊ธ€์€ โ€˜64๋น„ํŠธ ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - ํ•œ์Šนํ›ˆ ์ €์žโ€™์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ๋กœ๋”ฉ ๊ตฌํ˜„์ฑ…์—์„œ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋  OS๋Š” ๋ถ€ํŠธ ๋กœ๋”, ๋ณดํ˜ธ ๋ชจ๋“œ ์ปค๋„, IA-32e ๋ชจ๋“œ ์ปค๋„๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ์„นํ„ฐ ๋‹จ์œ„๋กœ ์ •๋ ฌ๋˜ ํ•˜๋‚˜์˜ ๋ถ€ํŒ… ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด์ง€๋ฉฐ ๋‘ ๋ฒˆ์งธ ์„นํ„ฐ๋ถ€ํ„ฐ ์ฝ์–ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ณต์‚ฌํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋กœ๋”ฉ์ด ๋๋‚˜๊ฒŒ ๋œ๋‹ค. ์ฑ…์—์„œ ๊ตฌํ˜„ํ•˜๋Š” OS๋Š”

0

64bit ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - Day 1

์ด ๊ธ€์€ โ€˜64๋น„ํŠธ ๋ฉ€ํ‹ฐ์ฝ”์–ด OS ์›๋ฆฌ์™€ ๊ตฌ์กฐ - ํ•œ์Šนํ›ˆ ์ €์žโ€™์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ธ์ƒ์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ BootLoader๋ถ€ํŠธ ๋กœ๋”๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•œ๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ๋‹ค. ๋จผ์ € ๋ถ€ํŠธ ์„นํ„ฐ 512Byte์˜ ๋งˆ์ง€๋ง‰ 2Byte๋Š” ๋ฐ˜๋“œ์‹œ 0x55, 0xAA๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ์•„๋ž˜๋Š” ์„ธ์ƒ์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ถ€ํŠธ๋กœ๋”๋ฅผ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”

0

Merge sort algorithm

ํ•ฉ๋ณ‘ ์ •๋ ฌ(merge sort)ํ•ฉ๋ณ‘ ์ •๋ ฌ์€ ๋ถ„ํ• ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ๊ธธ์ด๊ฐ€ N์ธ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ธธ์ด๊ฐ€ 1์ธ ๋ฆฌ์ŠคํŠธ๋กœ ์ชผ๊ฐœ๊ณ  ๋‹ค์‹œ ์ชผ๊ฐœ์ง„ ๊ฐ๊ฐ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜๋ฉฐ ํ•ฉ๋ณ‘ํ•ด ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ, ์ค‘์•™ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ์ค‘์•™ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒ์ธก, ์šฐ์ธก์„ ๋‚˜๋ˆ  ์žฌ๊ท€ ํ˜ธ์ถœ๋œ๋‹ค. ์žฌ๊ท€ ์ข…๋ฃŒ ์กฐ๊ฑด์€ start < end์˜ ์กฐ๊ฑด์—

0

Quick sort algorithm

ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ํ€ต ์ •๋ ฌ์€ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ์ขŒ/์šฐ์— ์ž์‹ ๋ณด๋‹ค ํฐ/์ž‘์€ ๊ฐ’์„ ๋ชฐ๊ณ , ๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ์”ฉ ๋‚˜๋ˆ ๊ฐ€๋ฉฐ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ(ํ•ญ์ƒ ํ”ผ๋ฒ—์ด ๋ชจ๋“  ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ) O(n^2)๋ฅผ ๊ฐ€์ง€๋Š” ์ƒํ™ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ™•๋ฅ ์ ์œผ๋กœ ๊ทธ๋Ÿด ์ผ์€ ์ ๊ธฐ์— ํ‰๊ท ์ ์œผ๋กœ O(NlogN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. ๊ตฌํ˜„123456789101112131415161718