๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    ๋„์ปค ์ปค๋„ ๋””๋ฒ„๊น… #1

    ๋„์ปค ์ปค๋„ ๋””๋ฒ„๊น… #1

    ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹ค์ œ๋กœ ๊ฐœ๋ณ„์ ์ธ ์ปจ์…‰์ด ์•„๋‹Œ ๋ฆฌ๋ˆ…์Šค์˜ cgroup, namespace๋“ฑ์˜ ๊ฒฐํ•ฉ์ฒด์ด๋‹ค. ๋ณดํ†ต์˜ hypervisor๋Š” os ๋‚˜ ์ปค๋„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฐ€์ƒํ™”๋กœ ํ˜ธ์ŠคํŠธ์˜ ์ปค๋„์„ ๊ณต์œ ํ•œ๋‹ค. cgroup(control group)์€ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ์ž์›์„ ์ˆ˜์ง‘, ์ œํ•œํ•œ๋‹ค. namespace๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ ํ”„๋กœ์„ธ์Šค ์ž์›์„ ๊ฒฉ๋ฆฌํ•œ๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹œ system call ๋ถ„์„ strace๋ฅผ ์ด์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์‹œ containerd(๋„์ปค ๋Ÿฐํƒ€์ž„)์˜ ํ”„๋กœ์„ธ์Šค ์ถ”์  $ strace -f -p `pidof containerd` -o strace_log $ docker run -itd --name busybox_1 --rm busybox 1. containerd..

    KVM ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ ๊ตฌ์„ฑ

    KVM ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ ๊ตฌ์„ฑ

    ์ปค๋„ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒ ๋จธ์‹ (KVM)์€ ๋ฌผ๋ฆฌ์  Linux ์‹œ์Šคํ…œ์— ์„ค์น˜ํ•˜์—ฌ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋ฌผ๋ฆฌ์  ์‹œ์Šคํ…œ๊ณผ CPU ์‚ฌ์ดํด, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•œ๋‹ค. KVM์€ Linux์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” Linux ์šด์˜ ์ฒด์ œ ๊ตฌ์„ฑ ์š”์†Œ์ด๋‹ค. KVM ์„ค์น˜ ์‚ฌ์ „ ํ™˜๊ฒฝ ๊ตฌ์„ฑ Lab Setup Manufacturer: eSlim Korea Operating System: CentOS Linux 7 (Core) processor-version: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz Kernel: Linux 3.10.0-1160.el7.x86_64 ์‚ฌ์ „ ํ™˜๊ฒฝ ์ฒดํฌ 1. Processor ๊ฐ€์ƒํ™” ์ง€์› ..

    [HTB/Crypto] Weak RSA

    flag.enc๋ฅผ decryptํ•˜๊ณ  flag๋ฅผ ํš๋“ํ•˜๋Š” ๋ฌธ์ œ 1. Weak_RSA.zip ํŒŒ์ผ ์ •์ ๋ถ„์„ โ”Œโ”€โ”€(root๐Ÿ’€kali)-[/backup/workspace/htb/crypto] โ””โ”€# file Weak_RSA.zip 80 โจฏ Weak_RSA.zip: Zip archive data, at least v2.0 to extract, compression method=deflate โ”Œโ”€โ”€(root๐Ÿ’€kali)-[/backup/workspace/htb/crypto] โ””โ”€# unzip Weak_RSA.zip Archive: Weak_RSA.zip [Weak_RSA.zip] flag.enc password: inflating: flag.enc inflating: key.pub โ”Œโ”€โ”€(root๐Ÿ’€kali)-[/b..

    Scalable Network Programming

    ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ Scalable ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ์ฃผ์ œ์ด๋‹ค. ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ๊ณผ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค€๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ์˜ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. 1. TCP ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP GET ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฐ„๋‹จํ•œ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ Error handling ์—†์ด ๊ตฌํ˜„ HTTP ํ—ค๋”๋ฅผ ํฌํ•จํ•˜์—ฌ ์ตœ๋Œ€ 4k๊นŒ์ง€๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ. char buf[4096]; int len; int fd=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in si; si.sin_family=PF_INET; inet_aton("127.0.0.1",&si.sin_addr); si.s..

    ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ Hazelcast ์บ์‹œ ํด๋Ÿฌ์Šคํ„ฐ๋ง

    ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ Hazelcast ์บ์‹œ ํด๋Ÿฌ์Šคํ„ฐ๋ง

    In-Memory Data Grid In-Memory Data Grid (IMDG)๋ž€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ์บ์‹ฑ ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ์ˆ ์ด๋‹ค. IMDG ๋Š” ๋‹ค์ˆ˜์˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ˜•์„ฑํ•˜๊ณ , ์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์บ์‹ฑํ•œ๋‹ค. IMDG๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ํ’€: IMDG๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ ํ’€์„ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ’€์€ ๋ฐ์ดํ„ฐ์˜ ๋น ๋ฅธ ์ ‘๊ทผ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์ ์žฌ ๋ฐ ์บ์‹ฑ: IMDG๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ฑฐ๋‚˜ ์บ์‹ฑํ•˜์—ฌ ๋น ๋ฅธ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ ๋ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. IMDB ๊ธฐ๋Šฅ: IMDG๋Š” In-Memo..

    [Jenkins] ์  ํ‚จ์Šค ์„ค์น˜ & ๋นŒ๋“œ ์„ค์ • ์„ธํŒ…

    [Jenkins] ์  ํ‚จ์Šค ์„ค์น˜ & ๋นŒ๋“œ ์„ค์ • ์„ธํŒ…

    ๐ŸŒˆ ์  ํ‚จ์Šค๋ž€ ์  ํ‚จ์Šค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ ์ง€์†์  ํ†ตํ•ฉ(conticuous integration) ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํˆด์ด๋‹ค. ๋‹ค์ˆ˜์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ๋ฒ„์ „ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ž ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ  ์˜์—ญ์— ์žˆ๋Š” Git๋“ฑ์˜ ์ €์žฅ์†Œ์— ๋นˆ๋ฒˆํžˆ ์—…๋กœ๋“œํ•จ์œผ๋กœ์จ ์ง€์†์  ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ค€๋‹ค. ๐Ÿš€ ์  ํ‚จ์Šค ์„ค์น˜ jenkins๋ฅผ ๊ตฌ๋™ํ•  ํฌํŠธ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 8080์ด์ง€๋งŒ ์‚ฌ์šฉ์ค‘์ผ ํ™•๋ฅ ์ด ๋†’์•„์„œ 80์œผ๋กœ ํ•ด์คฌ๋‹ค. jdk๊ฐ€ ์„ค์น˜๋œ java home ๊ฒฝ๋กœ ์„ค์ • ์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด localhost:80์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค. Set up ์•„๋ž˜ ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€ initialAdminPassword๋ฅผ ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์—ด๊ณ  ์ž…๋ ฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค. C:\ProgramData\Jenkins\.jenkins\s..

    [Python/ MQTT] MQTT – Pub/Sub ๋ชจ๋ธ ๊ตฌํ˜„

    [Python/ MQTT] MQTT – Pub/Sub ๋ชจ๋ธ ๊ตฌํ˜„

    MQTT๋ž€ MQTT๋Š” M2M, IOT๋ฅผ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ์„œ ์ตœ์†Œํ•œ์˜ ์ „๋ ฅ๊ณผ ํŒจํ‚ท๋Ÿ‰์œผ๋กœ ํ†ต์‹ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ MQTT๋Š” HTTP, TCP ๋“ฑ์˜ ํ†ต์‹ ๊ณผ ๊ฐ™์ด ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์ด ์•„๋‹Œ Broker, Publisher, Subscriber ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. MQTT ํŠน์ง• Client MQTT์˜ broker์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ฒƒ์„ ๋งํ•œ๋‹ค. Broker Broker๋Š” ๋ชจ๋“  ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ , ํ•„ํ„ฐ๋ง, ๋ฉ”์„ธ์ง€ ๊ตฌ๋…ํ•˜๋Š” ์‚ฌ๋žŒ์„ ๊ฒฐ์ •, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์—ญํ•  Subscribe topic์„ ๊ตฌ๋…ํ•˜์—ฌ topic์œผ๋กœ publish๋œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค. Topic MQTT์˜ topic์€ ์Šฌ๋ž˜์‹œ(/)๋ฅผ ๋ถ„๋ฆฌ ๋ฌธ์ž๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํด๋” ๋ฐ ํŒŒ์ผ๊ณผ ์œ ์‚ฌํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ex) /api/update/์Šน์ฃผ/๋น„๋ฐ€๋ฒˆํ˜ธ..

    [Algorithms] 1์ผ 1Algorithms 9์ผ์ฐจ (746. Min Cost Climbing Stairs)

    746. Min Cost Climbing Stairs ๋น„์šฉ[i]์ด ๊ณ„๋‹จ์—์„œ i๋ฒˆ์งธ ๋‹จ๊ณ„์˜ ๋น„์šฉ์ธ ์ •์ˆ˜ ๋ฐฐ์—ด ๋น„์šฉ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋ฉด ํ•œ ๊ณ„๋‹จ ๋˜๋Š” ๋‘ ๊ณ„๋‹จ์„ ์˜ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๊ฐ€ 0์ธ ๋‹จ๊ณ„์—์„œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ธ๋ฑ์Šค๊ฐ€ 1์ธ ๋‹จ๊ณ„์—์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋‹ฅ ๊ผญ๋Œ€๊ธฐ์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ๋น„์šฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Input, Output Input: cost = [10,15,20] Output: 15 Explanation: ์ธ๋ฑ์Šค 1์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. - 15๋ถˆ์„ ๋‚ด๊ณ  2๊ณ„๋‹จ์„ ์˜ฌ๋ผ๊ฐ€๋ฉด ์ •์ƒ์— ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋น„์šฉ์€ 15์ž…๋‹ˆ๋‹ค. Input: cost = [1,100,1,1,1,100,1,1,100,1] Output: 6 Explanation: ์ธ๋ฑ์Šค 0์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. - 1์„ ์ง€๋ถˆํ•˜๊ณ  ๋‘ ๊ณ„๋‹จ์„ ์˜ฌ..

    [Algorithms] 1์ผ 1Algorithms 8์ผ์ฐจ (509. Fibonacci Number)

    [Algorithms] 1์ผ 1Algorithms 8์ผ์ฐจ (509. Fibonacci Number)

    509. Fibonacci Number ์ผ๋ฐ˜์ ์œผ๋กœ F(n)์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์ด๋ผ๊ณ  ํ•˜๋Š” ์ˆ˜์—ด์„ ํ˜•์„ฑํ•˜๋ฏ€๋กœ ๊ฐ ์ˆ˜๋Š” 0๊ณผ 1์—์„œ ์‹œ์ž‘ํ•˜๋Š” ์•ž์˜ ๋‘ ์ˆ˜์˜ ํ•ฉ์ž…๋‹ˆ๋‹ค. F(0) = 0, F(1) = 1 F(n) = F(n - 1) + F(n - 2), for n > 1. n์ด ์ฃผ์–ด์ง€๋ฉด F(n)์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. Input, Output Input: n = 2 Output: 1 Explanation: F(2) = F(1) + F(0) = 1 + 0 = 1. Input: n = 3 Output: 2 Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2. Input: n = 4 Output: 3 Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3..