Selenium: Python์œผ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ

์…€๋ ˆ๋‹ˆ์›€์€ ์›น ํฌ๋กค๋ง์„ ํ•˜๊ฑฐ๋‚˜, ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์“ฐ์ด๊ณค ํ•œ๋‹ค. ๋˜ํ•œ, ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ์›น์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ์…€๋ ˆ๋‹ˆ์›€์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์„ค์น˜ 1. selenium ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ `pip`๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜ ํ™˜๊ฒฝ์€ Pycharm์„ ์‚ฌ์šฉํ•˜๊ณ  `venv`๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค. Pycharm ํ•˜๋‹จ์— `Terminal`์„ ํด๋ฆญ ํ•œ ํ›„์—, `pip install selenium`์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. web-driver ๊ฐ์ž ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์›น์— ๋”ฐ๋ผ, ์›น ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด์— ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ์›น ๋“œ๋ผ์ด๋ฒ„์™€ ํ˜„์žฌ..

์šฐ๋ถ„ํˆฌ: vim ์ž˜ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋  ์ผ์€ ์ž˜ ์—†์ง€๋งŒ, ๋‚˜์˜ ์ž…๋ง›์— ๋”ฐ๋ผ ํ™˜๊ฒฝ์„ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์žฌ๋ฐŒ๋Š” ์ผ์ด๋ฉด์„œ๋„ ๊ท€์ฐฎ์€ ์ผ์ด๋‹ค. vim์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ์˜ต์…˜๋“ค๊ณผ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ํ•œ ๋ฒˆ์— ๋ชจ์•„ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ •์˜ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜์‹œํ‚ค๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ์•„๋ž˜์˜ ์„ค๋ช…๋“ค์€ ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ ๊ฒƒ์ด๋‹ค. ์„ค์ •ํ•˜๊ธฐ $ git clone https://github.com/dirmathfl/vim-settings.git $ cd vim-settings $ tar xvf vim-settings.tar.gz $ cd vim-settings && cp -r . ~/. vim ์‹คํ–‰ ํ›„ `:PluginInstall`์„ ์ž…๋ ฅํ•˜๋ฉด, ํฌํ•จ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์ด ์ž๋™์œผ๋กœ ์„ค์น˜๋œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ Vundl..

k8s: ReplicaSets

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

k8s: Pod

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

k8s: ๊ตฌ์กฐ ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค์น˜ ํ•  ๋•Œ kubelet, kubeadam kubectl๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ์„ค์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ฒŒ ๋œ๋‹ค๋ฉด, ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ๊ตฌ์กฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ Master์™€ ๋‹ค์ˆ˜์˜ Worker ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ๋Š” local ํ™˜๊ฒฝ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ๋ฅผ ์ค‘์ ์œผ๋กœ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค. Master Node ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ ์›Œ์ปค ๋…ธ๋“œ๋ฅผ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋ฉฐ Pod๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ ์ ˆํ•œ Worker Node๋ฅผ ์Šค์ผ€์ค„๋งํ•˜๋Š” ์—ญํ•  ๋“ฑ๊ณผ ๊ฐ™์ด ์ „๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ์™€ Pod๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. (Pod : ..

git: I'm an early ๐Ÿค ์ ์šฉํ•˜๊ธฐ

์ž‘๋…„์— git action์ด ๋“ฑ์žฅํ•œ ์ดํ›„๋กœ ์žฌ๋ฏธ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋“ค์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค. ๊ทธ์ค‘ ํ•˜๋‚˜๋Š” action์„ ์‚ฌ์šฉํ•˜์—ฌ, ๋‚˜์˜ commit ์ •๋ณด์˜ ์‹œ๊ฐ„๋Œ€๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ๊ฐฑ์‹ ์‹œ์ผœ์ฃผ๋Š” I'm an early ๐Ÿค๋ผ๋Š” ํ”„๋กœ์ ํŠธ์ด๋‹ค. I'm an early ๐Ÿค? ์ผ์ฐ ์ผ์–ด๋‚˜๋Š” ์Šต๊ด€์„ ๊ฐ€์ง€๋Š” ์‚ฌ๋žŒ์„ ์˜๋ฏธํ•˜๋Š” ๋ง๋กœ, ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ง์ด๋‹ค. git์˜ productive-box๋ฅผ forkํ•˜๊ณ  gist ์ƒ์„ฑ ํ›„ action์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ cron์„ ํ†ตํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‚˜์˜ commit ์ •๋ณด์™€ ์‹œ๊ฐ„๋Œ€๋ฅผ ๊ฐ€์ ธ์™€ ๊ฐฑ์‹ ํ•ด์ฃผ๊ฒŒ ๋˜๋ฉฐ, ์ด๋ฅผ pinned ํ•œ๋‹ค๋ฉด ๋‚˜์˜ git profile์—์„œ ๋ฐ”๋กœ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค. ์ ์šฉ ๋ฐฉ๋ฒ• ์ ์šฉ ..

๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€