๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€46

[๋ฐฑ์ค€] 1799. ๋น„์ˆ ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์™„์ „ ํƒ์ƒ‰์„ ํ†ตํ•ด ์ตœ๋Œ€ ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ์ค‘๊ฐ„์— ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ n์˜ ์ตœ๋Œ€๊ฐ’์ด 100์ด๊ณ  (๋ชจ๋“  ์ ์— ๋Œ€ํ•ด ๋†“๋Š” ๊ฒฝ์šฐ/ ๋†“์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) * (๋†“์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์–‘ ๋Œ€๊ฐ์„ ์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ)๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด O(2^n * n)์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ•์€ N-Queens์—์„œ ๋ชจ๋“  ํ–‰๋ ฌ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น idx์—๋Š” ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค๋ฉด ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฌถ์–ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผ์„ ํ•ด๋ดค๋‹ค. N-Queens์—์„œ queen์€ ๊ฐ€๋กœ,์„ธ๋กœ๋ฅผ ๊ฐˆ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ด๋กœ ์ธํ•ด ํ•˜๋‚˜์˜ ํ–‰์— ํ€ธ์„ ๋†“์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ™์€ ํ–‰์—๋Š” ํ€€์ด ์กด์žฌํ•˜์ง€ ๋ชปํ•˜๋Š” ์„ฑ์งˆ์„ ์ด์šฉํ–ˆ์—ˆ๋‹ค. ์ด.. 2021. 3. 7.
Pinpoint Agent Helm Chart ์ž‘์„ฑํ•˜๊ธฐ ์ž‘๋…„ 8์›”๋ถ€ํ„ฐ ์ง„ํ–‰ํ–ˆ๋˜ Pinpoint Helm Chart ์ค‘ Agent์— ๋Œ€ํ•œ Helm Chart ์ œ์ž‘ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Introduction Pinpoint Agent๋Š” Java, Go, NodeJS, C ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์— ๋Œ€ํ•œ agent๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Java Agent์— ๋Œ€ํ•ด Helm Chart ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Java Agent๋Š” ์‹คํ–‰์„ ์œ„ํ•œ jar ํŒŒ์ผ๊ณผ ์ ์šฉํ•  config๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. jar ํŒŒ์ผ๊ณผ config option์„ target application์„ ์‹คํ–‰ํ•  ๋•Œ ๋ถ€์ฐฉํ•จ์œผ๋กœ์จ data๋ฅผ ์ˆ˜์ง‘, collector๋กœ ์ „์†กํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, application๊ณผ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ์— agent๋ฅผ ์œ„.. 2021. 3. 6.
[๋ฐฑ์ค€] 1967. ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„ ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ ์‹œ๋„ํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ 1๋ฒˆ์˜ ์ž์‹๋…ธ๋“œ๋“ค์„ ์‹œ์ž‘์ ์œผ๋กœ ์žก์•„ DFS๋ฅผ ํ†ตํ•ด ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์™ผ์ชฝ ์ž์‹๊ณผ์˜ ๊ฑฐ๋ฆฌ, ์˜ค๋ฅธ์ชฝ ์ž์‹๊ณผ์˜ ๊ฑฐ๋ฆฌ, ๋ถ€๋ชจ์™€์˜ ๊ฑฐ๋ฆฌ ์ค‘์— ์ƒ์œ„ 2๊ฐœ์˜ ๊ฐ’์„ ๊ณจ๋ผ ์ตœ๋Œ€๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ตœ๋Œ€๊ฐ’์ด 1๋ฒˆ์˜ ๋‹ค๋ฅธ ์ค„๊ธฐ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€(notCompleted), ์•„๋‹ˆ๋ฉด ์ด๋ฏธ ์™„์„ฑ๋œ ์ง€๋ฆ„์ธ์ง€(completed) ํŒ๋ณ„ํ•˜๋Š” flag๋ฅผ ํ†ตํ•ด ์ตœ๋Œ€ ์ง€๋ฆ„์„ ๊ตฌํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์ด ์ž˜๋ชป๋œ ์ด์œ ๋Š” ๋จผ์ € ๋ฌธ์ œ์—์„œ ์ด์ง„ ํŠธ๋ฆฌ๋ผ๋Š” ์กฐ๊ฑด์ด ์—†๋Š”๋ฐ ์ด์ง„ํŠธ๋ฆฌ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ํ’€์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๊ณ , ๋˜ํ•œ ์œ„์˜ ๊ทธ๋ž˜ํ”„์—์„œ 4-7 : 100 / 4-8 : 100์œผ๋กœ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ ์™ผ์ชฝ ์ค„๊ธฐ์˜ ์ตœ๋Œ€๊ฐ’์ด 200์ด ๋‚˜์™€์•ผํ•˜๋Š”๋ฐ 4์˜ ๋ถ€๋ชจ๋…ธ๋“œ์ธ 2๊ฐ€ ์ž์‹์ด ํ•˜๋‚˜๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์— 200 + 5๋กœ ๊ฐฑ์‹ ๋˜๋Š” ๋ฌธ์ œ.. 2021. 3. 6.
[Kubernetes Best Practice] 9. ๋„คํŠธ์›Œํ‚น, ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ, ์„œ๋น„์Šค ๋ฉ”์‹œ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋„คํŠธ์›Œํฌ ๊ทœ์น™ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋Š” ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ์ด ์ฑ…์—์„œ๋Š” ๋„คํŠธ์›Œํฌ์˜ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์„ค๋ช…์€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ํ†ต์‹  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด.. 2021. 3. 5.
[Kubernetes Best Practice] 8. ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์Šค์ผ€์ค„๋Ÿฌ Kubernetes Master Node์— ์กด์žฌํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž์˜ ๋ฆฌ์†Œ์Šค ์ œ์•ฝ์— ์ตœ์ ํ™” ๋˜๋„๋ก Pod์„ ๋ฐฐ์น˜ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ๋…ผ๋ฆฌ ์กฐ๊ฑด ๋ฐ ์šฐ์„  ์ˆœ์œ„ ๊ธฐ๋ฐ˜์˜ ์Šค์ฝ”์–ด.. 2021. 3. 1.
[Kubernetes Best Practice] 6. ๋ฒ„์ „, ๋ฆด๋ฆฌ์Šค, ๋กค์•„์›ƒ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—…๊ทธ๋ ˆ์ด๋“œ, ๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ๋งŽ์€ ์–ด๋ ค์›€์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ํ•˜์‹œ์ฝ”ํ”„ ๋…ธ๋งˆ๋“œ์™€ ๊ฐ™์€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋Š” ๋Ÿฐํƒ€์ž„์— ์ž๋™ํ™” ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ.. 2021. 3. 1.