Loading...
2023. 7. 17. 21:58

[Network] Rate Limit๊ณผ Throttling ์ดํ•ด

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

2020. 11. 21. 18:42

[Kubernetes] 4. Minikube๋กœ ์‹œ์ž‘ํ•˜๋Š” kubernetes

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์ด๋ฅผ ๋งˆ์Šคํ„ฐ์™€ ๊ฐ ๋…ธ๋“œ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถฐ์•ผ ํ•˜์ง€๋งŒ ์ด๋Š” ์‹ค์ œ ์„œ๋น„์Šคํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‹ค ์„œ๋น„์Šคํ•ด๋ณด๊ธฐ ์ „์— ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. AWS์˜ EKS, GCP์˜ GKE ๋“ฑ ํด๋ผ์šฐ๋“œ ๋ฒค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง์ ‘ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ฒดํ—˜ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ๋ฒค๋”์˜ ๊ฐ’๋น„์‹ผ ๋น„์šฉ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋งˆ์Šคํ„ฐ, ๋…ธ๋“œ์˜ ํ•˜๋“œ์›จ์–ด ์žฅ๋น„๋ฅผ ์ง์ ‘ ๊ตฌ์ž…ํ•˜๋Š” ๊ฒƒ์€ ๋น„์šฉ์ ์œผ๋กœ ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Minikube๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ตœ์ƒ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ๋กœ ์šฐ๋ฆฌ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒดํ—˜ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์ผ๋ จ์˜ ๋งˆ์Šคํ„ฐ, ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ ..

2020. 11. 18. 21:49

[Kubernetes] 3. Controller๋กœ ๋” ๋‚˜์•„๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

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

2020. 11. 14. 17:44

[Kubernetes] 2. Kubernetes ๊ธฐ๋ณธ ๊ตฌ์„ฑ๊ณผ ๊ฐ์ฒด(object)

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Kubernetes์™€ Container Deployment์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉฐ ์ปจํ…Œ์ด๋„ˆ๋กœ ์„œ๋น„์Šค ๋ฐฐํฌํ•˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •๊ณผ Docker Swarm ๋“ฑ์˜ ๋‹ค๋ฅธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด๊ณผ ์–ด๋–ค ์ ์ด ๋‹ค๋ฅธ์ง€ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ์„ ํ™•์ธํ•˜๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์šด์˜ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์ ํ•ฉํ•œ์ง€, ์ฐจํ›„ ๋ฏธ๋ž˜ ์šด์˜ ๋Œ€์ฑ…์œผ๋กœ ์‚ฌ์šฉํ• ๋งŒํ•œ์ง€๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ ๋ ค ๋Œ€์ƒ์œผ๋กœ ์„ ์ •ํ•˜์…จ๋‹ค๋ฉด ์ด ๊ธ€์„ ๊ณ„์† ์ฝ์œผ๋ฉฐ Kubernetes๋ฅผ ์ง์ ‘ ๊ณต๋ถ€ํ•ด๋ณด๊ณ , ์‚ฌ์šฉํ•ด๋ณด์‹œ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”. Kubernetes์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ Kubernetes๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ Docker์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์ค‘์•™์˜ Docker Engine์ด ์ž๋ฆฌ์žก๊ณ  ์žˆ์–ด, ์ด ์—”์ง„์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ƒ์„ฑํ•˜๋Š”..

2020. 11. 7. 22:37

[Kubernetes] 1. Container Deployment์™€ Kubernetes

์ €์—๊ฒŒ ์žˆ์–ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” Docker Swarm์„ ์ง€๋‚˜ ์ด์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋˜ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ด์ง์„ ํ•œ ํšŒ์‚ฌ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋˜์–ด ์ฃผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด ๋•Œ๋ถ€ํ„ฐ Docker Swarm ๋ณด๋‹ค๋Š” Kubernetes๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ์ด ์ž์ฃผ ์ƒ๊ฒจ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ Docker๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋งŒ Kubernetes์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฅด๊ณ , ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„๋“ค์—๊ฒŒ ๋“œ๋ฆฌ๋Š” ๊ธ€์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. Container Deployment์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ์˜ค๊ธฐ๊นŒ์ง€.. Kubernetes๋Š” Go ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Google์—์„œ ๊ฐœ๋ฐœํ•˜์—ฌ 2014๋…„์— ๊ณต๊ฐœ๋œ Container Orchestration to..

2020. 6. 14. 21:53

[Docker] HAProxy๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ์ง€๋‚œ ํฌ์ŠคํŠธ์— ์ด์–ด HAProxy๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. What is HAProxy ? ์ด๋ฆ„๋งŒ ๋†“๊ณ  ๋ณด๋ฉด ํ”„๋ก์‹œ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ธ ๋“ฏ ๋ณด์ž…๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๋‹ค. HAProxy์˜ ๋ณธ๋ž˜ ๊ธฐ๋Šฅ์€ Reverse Proxy ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๊ณ , ๋ณธ๋ž˜๋Š” High Availbility Proxy์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐ€์ง€๊ณ  TCP / HTTP Load Balancer๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. nginx๋ž‘ ๋‹ค๋ฅธ ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”? nginx์—์„œ๋„ ๋ฌผ๋ก  Reverse Proxy, Load Balancer ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ HAProxy๋Š” ์—ฌ๊ธฐ์— Active Health Check ๊ธฐ๋Šฅ์„ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (nginx์—์„œ๋„ Active Health Ch..

2020. 6. 10. 12:25

[Docker] nginx web server๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

์ตœ๊ทผ ๋“ค์–ด, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•˜๋ ค ๋…ธ๋ ฅํ•˜๋ฉด์„œ๋„ ๊ฐ€๋”์€ Docker๋ฅผ ๋‹ค์‹œ ๋Œ์•„๋ณด๋Š” ๊ฒฝํ–ฅ์ด ๋งŽ์•„์กŒ์Šต๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ๊ทธ ์ค‘์—์„œ๋„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์€ ์—ฌ๋Ÿฌ๋ชจ๋กœ ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ 100๊ฐœ ์ด์ƒ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Docker Compose, Docker Swarm์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค๋Š” ์ . ์ด ๋ถ€๋ถ„์€ ์ˆ˜๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๋งŽ์ด ๋œ์–ด์ฃผ์—ˆ๊ณ , ๊ทธ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์šด์˜์„ ๋งŽ์ด ์„ ํ˜ธํ–ˆ๋˜ ์ ์ด ๊ธฐ์–ต์— ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ์„œ๋ก ์„ ์ ‘๊ณ , ์ด์ œ ๋ณธ๋ก ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ณด์ฃ . ์ด์ „์— ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์— ๋Œ€ํ•œ ๊ธ€์„ ์˜ฌ๋ ธ๋˜ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์€ ์‹ค๋ฌด์—์„œ ๋งŽ์ด ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์ด์ง€๋งŒ ์ด๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ญ์‹œ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์•Œ๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ..

2020. 6. 2. 11:17

[Network] Load Balancing (๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ)์˜ ๊ฐœ๋…๊ณผ ์ดํ•ด

์ฒ˜์Œ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ , ์ด๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐ๊นŒ์ง€ ๋งŽ์€ ํ•™์Šต ์‹œ๊ฐ„์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด Servlet, JSP, Spring์„ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ๊ณ , ๋‚˜์•„๊ฐ€์„œ๋Š” ๋” ๋‚˜์€ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด Flask, Django, Nest.js ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์ฃ . ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ฒ„ ๊ณต๋ถ€๋Š” ์ด๊ฒƒ์ด ๋์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๋ฅผ ์ธํ„ฐ๋„ท์— ์„œ๋น„์Šคํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ฒƒ์„ ๊ณ ๋ฏผํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ 10, 100๋ช…๋งŒ ์ ‘์†ํ•ด์„œ ๋๋‚  ์ผ์ด๋ผ๋ฉด ๊ทธ๋ƒฅ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ , ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๋๋‚  ์ผ์ด์ง€๋งŒ, ๋งŒ์•ฝ ์ˆ˜์‹ญ๋งŒ ๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค์ด ๋‚ด ์„œ๋ฒ„์— ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ์š”? ๋งŒ์•ฝ, ์„œ๋ฒ„๊ฐ€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, 1๋งŒ ๋ช… ์•„๋‹ˆ..

2020. 5. 26. 10:55

[Linux] GRUB Command Line์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ๋ˆ…์Šค ์ˆ˜๋™ ๋ถ€ํŒ…ํ•˜๊ธฐ

์–ด์ œ, ๊ณ„์† ์‚ฌ์šฉํ•˜๋˜ Ubuntu 18.04 LTS๋ฅผ 20.04 LTS ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ์˜ ๊ณ„ํš์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ–ˆ๋˜ IDE ๋„๊ตฌ, vim๊ณผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ๋“ฑ์„ ๋ชจ๋‘ ์ •๋ฆฌํ•˜๊ณ , ์‚ดํŽด๋ณด๋‹ˆ ๊ทธ๋‹ค์ง€ ๋งŽ์€ ์„ค์ • ๊ฐ’์ด ์ ์šฉ๋˜์–ด ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ–ˆ๋˜ ๋…ธํŠธ๋ถ์„ ์ฒ˜๋ถ„ํ•˜๊ณ  ์ƒˆ๋กœ PC๋ฅผ ๊ตฌ์ž…ํ•œ ๊ฒƒ์ด ์–ด๋Š ๋ง 3๊ฐœ์›” ์ •๋„ ๋˜์–ด๊ฐ”๋Š”๋ฐ, ๊ทธ ๋•Œ๋ฌธ์— 20.04 ๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ๊ธฐ์กด์˜ 18.04๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ฐ„๋‹จํ•œ ์…‹ํŒ…๋งŒ ํ•˜๊ณ  ์ž„์‹œ ๋ฐฉํŽธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ ๊ฑฐ์˜ ๋ชจ๋“  ์…‹ํŒ…์„ ๋‹ค์‹œํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๊ฐํ•˜๊ฒŒ ์ƒˆ๋กœ ์„ค์น˜๋ฅผ ํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน๊ณ , Ubuntu Official ํ™ˆํŽ˜์ด์ง€์—์„œ Ubuntu Desktop 20.04 iso ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ , iodd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ฆฐ ์„ค์น˜๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค...

2018. 12. 31. 13:10

๋ฆฌ๋ˆ…์Šค์—์„œ Unix ODBC๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

์•ˆ๋…•ํ•˜์„ธ์š”. 2018๋…„์˜ ์—ฐ๋ง์ด ๋‹ค๊ฐ€์™”์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ 2018๋…„์˜ ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŠธ๋กœ ์šฐ๋ถ„ํˆฌ์—์„œ Unix ODBC๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. What is ODBC?Unix ODBC๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์—, ODBC๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ODBC๋Š” Open DataBase Connectivity์˜ ์•ฝ์ž๋กœ ์šฐ๋ฆฌ ๋ง๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐœํ˜• ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ธํ„ฐํŽ˜์ด์Šค๋ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋งˆ๋””๋กœ ๋งํ•˜์ž๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ณต๊ฐœํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๊ฒƒ์ด์ฃ .ODBC๋Š” Microsoft์—์„œ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‰ฝ๊ฒŒ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค(API)์ž…๋‹ˆ๋‹ค. ๋ณธ๋ž˜ ์šฐ๋ฆฌ๊ฐ€ ์ƒˆ๋กœ์šด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค..

Netplan - ์šฐ๋ถ„ํˆฌ(๋ฆฌ๋ˆ…์Šค) ๋„คํŠธ์›Œํฌ ์„ค์ •

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์“ด์ง€ ์–ด๋Š ๋ง 3๊ฐœ์›”์ด ๋˜์–ด ๊ฐ€๋„ค์š”. ๋งŽ์€ ์ •๋ณด๋“ค์„ ๋‚จ๊ธฐ๊ณ  ๊ณต์œ ํ•˜๊ณ ์ž ๋ธ”๋กœ๊ทธ ํ™œ๋™์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์ง€๋งŒ ๊ณต๊ต๋กญ๊ฒŒ๋„ ๋ชจ์ž๋ฅธ ์‹œ๊ฐ„ ๋•ํƒ์— ์ด์ œ๋Š” ์ด ํ™œ๋™๋„ ์ ์ฐจ ์ค„์–ด๊ฐ€๊ณ  ์žˆ๋„ค์š”. ํ•˜์ง€๋งŒ ๋ธ”๋กœ๊ทธ ํ™œ๋™์˜ ์ค‘๋‹จ ๊ณ„ํš์€ ์—†์œผ๋‹ˆ, ์•ž์œผ๋กœ๋„ ๊ณ„์† ๋งŽ์€ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์ €๋Š” ๋ฐ์Šคํฌํ†ฑ๊ณผ ์„œ๋ฒ„ ๋ชจ๋‘ CentOS๊ฐ€ ์•„๋‹Œ Ubuntu Server OS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์•„์˜ˆ CentOS๋ฅผ ๋ฐฐ์ œํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์•„๋ฌด๋ž˜๋„ PC ์šด์˜์ฒด์ œ๋ฅผ Ubuntu๋กœ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ CentOS์— ๋น„ํ•ด์„œ ๋” ํŽธํ•œ ๋Š๋‚Œ์ด ์žˆ๋‹ค๊ณ  ํ•ด์•ผ ํ• ๊นŒ์š”.. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ์šฐ๋ถ„ํˆฌ 18.04 ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ์กฐ๊ธˆ ๋ฐ”๋€ ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ ๋„คํŠธ์›Œํฌ ์„ค์ •๋ณดํ†ต ๋ฆฌ๋ˆ…์Šค์—์„œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ..

2018. 1. 22. 20:08

Intel CPU Spectre ํŒจ์น˜(Retpoline) ์™€ ํ…Œ์ŠคํŠธ

์ง€๋‚œ Meltdown ์ทจ์•ฝ์  ํŒจ์น˜๋ฅผ ํ†ตํ•ด์„œ System Call ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ 4๋ฐฐ์˜ ์„ฑ๋Šฅ์ด ํ•˜๋ฝ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ทจ์•ฝ์ ์€ Intel CPU์—์„œ๋งŒ ์กด์žฌํ•˜๋Š” ์ทจ์•ฝ์ ์ด๋ฉฐ Kernel Page Table Isolation (KPTI) ํŒจ์น˜๋ฅผ ํ†ตํ•ด ์ทจ์•ฝ์ ์„ ๊ณ ์น  ์ˆ˜ ์žˆ์—ˆ๊ณ , AMD ๋ฐ ARM ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ์˜ํ–ฅ์ด ์—†์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Spectre ์ทจ์•ฝ์ ์€ ์ด์ „ ํฌ์ŠคํŠธ์—์„œ๋„ ์„ค๋ช…ํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์„ค๋ช…๋“œ๋ฆฌ์ž๋ฉด, A ํ”„๋กœ๊ทธ๋žจ์ด B ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์นจ๋ฒ”ํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์œผ๋กœ, ํฌ๊ฒŒ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์˜ OS๊ฐ€ Host OS์˜ ์ฃผ์†Œ ๋ฒ”์œ„๊นŒ์ง€ ์นจ๋ฒ”ํ•  ์ˆ˜๋„ ์žˆ๋Š” ๋งค์šฐ ๋ฌด์„œ์šด ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ Intel CPU ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, AMD, ARM CPU์—๋„ ์ทจ์•ฝ์ ์ด..

2018. 1. 5. 17:06

Intel CPU Meltdown ์ทจ์•ฝ์  ํŒจ์น˜ 2์ฐจ ํ…Œ์ŠคํŠธ์™€ ๋งˆ๋ฌด๋ฆฌ

1์ฐจ ํ…Œ์ŠคํŠธ์— ์ด์–ด์„œ 2์ฐจ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. 2์ฐจ ํ…Œ์ŠคํŠธ๋Š” 1์ฐจ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ File I/O ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์›น ์„œ๋ฒ„, DBMS, ๊ทธ๋ฆฌ๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋””์˜ค ์ธ์ฝ”๋”ฉ๊ณผ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๋“ฑ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์‚ฌํ•ญ- SQLite I/O Test (only HDD)- FLAC Audio Encoding- Opus Codec Encoding- nginx Benchmark- GCC Compile Test- File I/O Test ํ…Œ์ŠคํŠธ๋Š” ์ด 6๊ฐ€์ง€๋กœ ์ง„ํ–‰ํ•˜์˜€์œผ๋ฉฐ ๊ทธ ์ค‘ ๋งˆ์ง€๋ง‰ File system Test๋Š” ์–ด์ œ ์ง„ํ–‰ํ–ˆ๋˜ 4000๋ฒˆ์˜ ํŒŒ์ผ ์ƒ์„ฑ์„ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. SQLite์˜ DBMS ํ…Œ์ŠคํŠธ๋Š” ์ €์˜ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ์ƒ HDD์—์„œ๋งŒ ์ง„ํ–‰..

2018. 1. 4. 17:32

Intel CPU ๋ณด์•ˆ ์ทจ์•ฝ์  ํŒจ์น˜๋กœ ์ธํ•œ ์„ฑ๋Šฅ ๊ฐ์†Œ์™€ 1์ฐจ ํ…Œ์ŠคํŠธ

์•ˆ๋…•ํ•˜์„ธ์š”. 2018๋…„ ์ฒซ ํฌ์ŠคํŒ…์ด๋„ค์š”. ๋ชจ๋‘๋“ค ์ƒˆํ•ด ๋ณต ๋งŽ์ด ๋ฐ›์œผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ƒˆํ•ด๋ถ€ํ„ฐ ๋ญ”๊ฐ€ ํฐ ์ผ์ด ํ„ฐ์ง„ ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ธํ…”์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ์—์„œ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์–ด ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค๋ฅผ ํฌํ•จํ•œ ์œˆ๋„ ์šด์˜์ฒด์ œ Redstone 3 ๋ฒ„์ „๋„ ํŒจ์น˜ ์กฐ์น˜๊ฐ€ ๋‚ด๋ ค์ง„ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ํŒจ์น˜๋ฅผ ํ•œ ๋’ค์— ์„ฑ๋Šฅ์ด 30% ๊ฐ์†Œํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ๋Š”๋ฐ์š”. ์–ด๋–ค ์ทจ์•ฝ์ ์ด๊ณ , ์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์กฐ๊ธˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Meltdown, Spectre ์ด๋ฒˆ ์ทจ์•ฝ์ ์˜ ์ด๋ฆ„์€ ์œ„์™€ ๊ฐ™์€ ๋‘ ๊ฐœ ์ด๋ฆ„์˜ ์ทจ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ด ์ทจ์•ฝ์ ์€ ๊ตฌ๊ธ€์˜ ๋ณด์•ˆ๊ธฐ์ˆ ํŒ€์ธ Project zero ํŒ€์— ์˜ํ•ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.. Meltdown ์ทจ์•ฝ์ ์€ Intel CPU์— ์ ์šฉ๋œ OoOE(๋น„์ˆœ์ฐจ์  ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ) ๊ธฐ์ˆ ์˜ ๋ฒ„๊ทธ๋ฅผ ..

2017. 8. 28. 10:52

Linux์—์„œ MQTT Broker, Mosquitto ์„ค์น˜

MQTT๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด๋ ค ํ•˜์‹œ๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด, ๋จผ์ € ์•„๋ž˜์˜ ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. MQTT ํ”„๋กœํ† ์ฝœ ๊ฐœ๋…๊ณผ ์ดํ•ด ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ MQTT์— ๋Œ€ํ•œ ๊ฐœ๋…๊ณผ ๊ฐ„๋‹จํ•œ ํŠน์ง•์„ ์†Œ๊ฐœํ•ด ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” MQTT Broker๋ฅผ ์„ค์น˜ํ•ด์„œ, ์ด๋ฅผ ๊ตฌ๋™ํ•ด๋ณด๊ณ  ์„œ๋น„์Šค๋ฅผ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. MQTT Broker์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ๋ณดํŽธ์ ์ด๊ณ  ๋ฌด๋‚œํ•œ mosquitto๋ฅผ ์„ค์น˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Mosquitto ์„ค์น˜ ๋ฆฌ๋ˆ…์Šค์—์„œ Mosquitto๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฆฌ๋ˆ…์Šค์˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์žˆ๋Š” Mosquitto ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ sudo apt install mosquitto ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜์—ฌ ์œ„ ๋ช…๋ น์–ด๋ฅผ ํƒ€์ดํ•‘ํ•ฉ๋‹ˆ๋‹ค. $ sudo systemctl ..

2017. 8. 26. 15:57

MQTT ํ”„๋กœํ† ์ฝœ ๊ฐœ๋…๊ณผ ์ดํ•ด

์•ˆ๋…•ํ•˜์„ธ์š”. ์š”์ฆ˜ ์กธ์—… ์ค€๋น„๊ฐ€ ํ•œ์ฐฝ์ด์–ด์„œ, (ํ•‘๊ณ„์ง€๋งŒ.. ใ…œใ…œ) ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์ž์ฃผ ๋ชป์“ฐ๊ฒŒ ๋˜๋Š”๊ตฐ์š”. MQTT ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. MQTT๋Š” ์ œ๊ฐ€ ํ˜„์žฌ ์กธ์—… ์ž‘ํ’ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ธ๋ฐ์š”. ์ฒ˜์Œ์—๋Š” XMPP ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜, ๊ต์ˆ˜๋‹˜์˜ ์กฐ์–ธ์œผ๋กœ MQTT ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. MQTT๋Š” ๋ฌด์—‡์ผ๊นŒ, XMPP๋ž‘ ์ฐจ์ด๋Š”?์ œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ์—์„œ XMPP ๊ด€๋ จ ํฌ์ŠคํŠธ๋ฅผ ๋ณด์‹  ๋ถ„์ด์‹œ๋ผ๋ฉด, ์ด ๊ธ€๋„ ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ์ œ๊ฐ€ ์ฑ„ํŒ… ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด XMPP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. XMPP๋Š” ์˜ˆ์ „ Google Talk ๊ณผ Facebook Messenger ์—์„œ ์‚ฌ์šฉํ•œ ์ฑ„ํŒ… ํ”„๋กœํ† ์ฝœ๋กœ ํ˜„์žฌ๋Š” Hangouts ์„œ๋น„์Šค๋Š” XMPP์™€ ํ˜ธํ™˜..

2017. 4. 9. 23:32

๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ - Socket

๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ธฐ ์ „์—๋Š” Socket ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ดํ•ดํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ๋Œ€๋ถ€๋ถ„ ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๋ฐ”๋กœ ์ด ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ง€์š”. ์˜ค๋Š˜์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋‹ค๊ฐ€๊ฐ€๋Š” ๋„คํŠธ์›Œํฌ ์ฒซ ๊ฑธ์Œ์ธ ์†Œ์ผ“์— ๋Œ€ํ•ด ์‹œ์ž‘ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Network Socket ์†Œ์ผ“์ด๋ผ๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์ด์ œ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด๋ผ๋ฉด, ํ•œ ๋ฒˆ ์ฏค์€ ๋“ค์–ด๋ดค์„ ๋ฒ•ํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ์†Œ์ผ“์€ ๋ณดํ†ต ๋„คํŠธ์›Œํฌ ์†Œ์ผ“์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์š”์ฆ˜์—๋Š” ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•œ ํ†ต์‹ ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท ์†Œ์ผ“์ด๋ผ๊ณ ๋„ ์ด์•ผ๊ธฐ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ”๋กœ ์ด ์†Œ์ผ“์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. BSD UNIX ์šด์˜์ฒด์ œ์—์„œ ์ฒ˜์Œ ์†Œ๊ฐœ ๋œ ์†Œ..

2017. 4. 8. 00:18

Linux๋กœ ์‹œ์ž‘ํ•ด๋ณด๋Š” ๊ฐ„๋‹จํ•œ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์•„์ง ์†Œ์ผ“์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋ชจ๋ฅด์‹œ๊ฒ ๋‹ค๊ตฌ์š”? ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Socket ํฌ์ŠคํŠธ๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์–ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ - Socket BSD Unix Socket ๊ตฌ์„ฑ์œ ๋‹‰์Šค์—์„œ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ๋Š” ํŒŒ์ผ๋กœ ํ•˜์—ฌ๊ธˆ ํ†ต์‹ ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์œ ๋‹‰์Šค์˜ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์€ ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ read, write ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅํ•˜๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ Unix Programming์—์„œ ํŒŒ์ผ์„ ์ƒˆ๋กœ ์—ด ๋•Œ, open ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. open ํ•จ์ˆ˜๋Š” int ํ˜• ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์ด ๋ฐ˜ํ™˜ ๊ฐ’์€ File descripter Index์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ์ถœ์ฒ˜: (ํ•œ๊ตญ์†Œํ”„ํŠธ์›จ์–ด์ง„ํฅ์› ์ €, Network Programmi..