๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋์ปค ์ปค๋ ๋๋ฒ๊น #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)์ ๋ฌผ๋ฆฌ์ 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 ์บ์ ํด๋ฌ์คํฐ๋ง
In-Memory Data Grid In-Memory Data Grid (IMDG)๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ถ์ฐ ์บ์ฑ ์ํํธ์จ์ด ๊ธฐ์ ์ด๋ค. IMDG ๋ ๋ค์์ ๋ฌผ๋ฆฌ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ํ์ฑํ๊ณ , ์ด ํด๋ฌ์คํฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์บ์ฑํ๋ค. IMDG๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค. ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ํ: IMDG๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋์ฉ๋์ ๋ฉ๋ชจ๋ฆฌ ํ์ ํ์ฑํ ์ ์๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ๊ณผ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅ์ผ ํ๋ค. ๋ฐ์ดํฐ ์ ์ฌ ๋ฐ ์บ์ฑ: IMDG๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ฑฐ๋ ์บ์ฑํ์ฌ ๋น ๋ฅธ ์๋ต ์๊ฐ์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ํ ์ค์๊ฐ ์ ๊ทผ ๋ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค. IMDB ๊ธฐ๋ฅ: IMDG๋ In-Memo..
[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 ๋ชจ๋ธ ๊ตฌํ
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)
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..