jenkins ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žŠ์–ด๋ฒ„๋ ธ์„ ๋•Œ ๋กœ๊ทธ์ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
ยท
์—๋Ÿฌ๋ชจ์Œ์ง‘
ci/cd์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์—ด์‹ฌํžˆ jenkins ์„ค์น˜ํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹ค์Šตํ•ด๋ณด๊ณ  ๋‹ค์Œ๋‚  ์ „๋‚  ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•ด๋ณธ jenkins ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ์ƒ๊ฐ์ด ์•ˆ๋‚œ๋‹ค. ๋ญ..๋ญ์˜€๋”๋ผ ๋‚ด ์‚ฌ์šฉ์ž ์ •๋ณด์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ ...! ์„ค๋งˆ์„ค๋งˆ ๋‹ค์‹œ ๊ณ„์ •๊ฐ€์ž…์„ ํ•ด์•ผํ•˜๋‚˜ ์•„์ฐ”ํ•ด์ง€๋Š” ์ˆœ๊ฐ„ ! https://www.jenkins.io/doc/book/system-administration/admin-password-reset-instructions/ Reset the Jenkins administrator password Jenkins โ€“ an open source automation server which enables developers around the world to reliably build, test, and deploy the..
DevOps CI/CD๋ž€ ๋ฌด์—‡์ธ๊ฐ€, ์ง€์†์ ์ธํ†ตํ•ฉ ์ง€์†์ ์ธ ๋ฐฐํฌ
ยท
TIL/devops
ci ๐Ÿ’ก ์ง€์†์ ์ธ ํ†ตํ•ฉ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•จ. ์ถฉ๋Œ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. cd ๐Ÿ’ก ์ง€์†์ ์ธ ๋ฐฐํฌ ci ํ†ตํ•ฉ๋œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ ๋ฒ„์ „์„ ๋ช…์‹œํ•˜์—ฌ ๋ฒ„์ „๊ด€๋ฆฌ ์šฉ์˜ ci cd ์ข…๋ฅ˜ - jenkins - travis CI - circleCl - github actions - etc ci cd ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€? ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œ ํ…Œ์ŠคํŠธ ๋ฐฐํฌ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์ถ”์ง„ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๊ณผ์ •์—์„œ ์•ˆ์ •์ ์ด๊ณ  ์‹ ๋ขฐ์„ฑ ๋†’์€ ์„œ๋น„์Šค ์ œ๊ณต์„ ์œ„ํ•ด ๋„์›€์„ ์ค€๋‹ค. ci/cd ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ž๋™ํ™” ๊ฐœ๋…์ •๋„๋กœ ์–„ํŒํ•˜๊ฒŒ ์•„๋Š” ์ •๋„์˜€๋‹ค. ์ด๋ฒˆ๊ธฐํšŒ์— ๊ถ๊ธˆํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ๊ณ  ์ง์ ‘ ํ•ด๋ณด๋Š” ๊ฒฝํ—˜์ดci/cd ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ž๋™ํ™”์— ๋Œ€ํ•ด ์–ด๋ ดํ’‹์ด ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ,..
node express์™€ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์‹คํ–‰
ยท
TIL
Express Node.js ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ Node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ํด๋ž˜์Šค์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ express ์„ค์น˜ $ npm install express --save package.json ์— express ๋ชจ๋“ˆ์ด ์ถ”๊ฐ€๋œ๋‹ค. Express ์˜ˆ์ œ https://expressjs.com/ko/starter/hello-world.html Express "Hello World" ์˜ˆ์ œ Hello world ์˜ˆ์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์•ฑ์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ Express ์•ฑ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์•ฑ์€ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋œ ์•ฑ์ด๋ฉฐ Express ์ƒ์„ฑ๊ธฐ๋ฅผ ํ†ตํ•ด ์–ป๊ฒŒ ๋˜๋Š” ์•ฑ๊ณผ๋Š” ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์ด ์˜ˆ์ œ expressjs.com app.js ํŒŒ์ผ ์ƒ์„ฑ const e..
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค minikube ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
ยท
TIL/devops
๊ณต์‹์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š” https://minikube.sigs.k8s.io/docs/start/ minikube start minikube is local Kubernetes minikube.sigs.k8s.io install - wsl ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์œ„์™€ ๊ฐ™์€ ์„ค์ •์œผ๋กœ ๋‹ค์šด๋กœ๋“œ minikube start $ minikube start ๐Ÿ˜„ minikube v1.32.0 on Ubuntu 22.04 (amd64) โœจ Using the docker driver based on existing profile ๐Ÿ‘ Starting control plane node minikube in cluster minikube ๐Ÿšœ Pulling base image ... ๐Ÿƒ Updating the running ..
[๋„์„œ] ๋ณ„๋น›์ด ์šฐ๋ฆฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ๋“ค
ยท
๋…์„œ
์‹œ์ž‘ํ•˜๋ฉฐ - ์ž ๋“ค๊ธฐ ์ „์— ๋งˆ์Œ์œผ๋กœ ๋– ๋‚˜๋Š” ์šฐ์ฃผ์—ฌํ–‰ ์šฐ์ฃผ๋กœ ๋‚˜๊ฐ€ ๋Œ€์ง€๋ฅผ ์ƒ๊ฐํ•˜๋‹ค ๋ณ„ํ•˜๋Š˜์— ๋‚˜๊ฐ€ ๋ณด๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ 1 - ๋ฌผ ์šฐ๋ฆฌ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ 2 - ๊ณต๊ธฐ์™€ ์ƒ๋ช… ์ง€์ƒ์˜ ๋ณ„ํ•˜๋Š˜ ๋ฐคํ•˜๋Š˜์— ๊ทธ๋ฆฌ๋Š” ์ผ๋Ÿฌ์ŠคํŠธ ํƒœ์–‘๊ณผ ๋‹ฌ์ด ์žˆ๋Š” ์„ธ๊ณ„ ์ง€๊ตฌ ๋‹ฌ์˜ ๋œป๋ฐ–์˜ ์„ฑ์žฅ๊ณผ์ • ๋‹ฌ์˜ ์ฐจ๊ณ  ๊ธฐ์›€ ๊ทธ๋ฆฌ๊ณ  ์›”์‹ ํƒœ์–‘ ์šฐ์ฃผ์˜ ์‹œ๊ฐ„ํ‘œ ๋ฉ€๋ฆฌ ๋ณด๋ฉด ๊ณผ๊ฑฐ๋ฅผ ์•ˆ๋‹ค ๋ฉ€๋ฆฌ ๋ณด๊ณ  ์ž์‹ ์„ ์•ˆ๋‹ค ํ•˜๋Š˜์—์„œ ์˜จ ์„ ๋ฌผ ๋ณ„๋˜ฅ๋ณ„์— ์†Œ์›์„ ์šฐ์ฃผ๋ฅผ ๋– ๋‹ค๋‹ˆ๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ฐ”์œ„ ํ•˜๋Š˜์—์„œ ๋ฐ”์œ„๊ฐ€ ๋–จ์–ด์ง€๋ฉด ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ ์ธ์ƒ์€ ๋‹น์‹ ์ด ์ฃผ์ธ๊ณต์ธ ์ด์•ผ๊ธฐ ์šฐ์ฃผ์—์„œ ๋ณด๋Š” ๋‚˜ ๋ณ„์˜ ์‹ ๋น„ ์ง€๊ตฌ์˜ ์‹ ๋น„ ์ƒ๋ช…์˜ ์‹ ๋น„ ๋ณ„์˜ ์šด๋ช… ์ง€๊ตฌ์™€ ์ธ๊ฐ„์˜ ์šด๋ช… ๋ณ„์—์„œ ์˜จ ๊ทธ๋Œ€ ์ˆ˜์ง ๋ฐฉํ–ฅ์œผ๋กœ์˜ ์—ฌํ–‰ ํ˜„์‹ค๊ณผ ๊ณต์ƒ์˜ ๋‹ฌ ์—ฌํ–‰ ๋งˆ์Œ์œผ๋กœ ๋– ๋‚˜๋Š” ์šฐ์ฃผ์—ฌํ–‰ ํƒœ์–‘๊ณ„ ๋ฐ–์œผ๋กœ์˜ ์—ฌํ–‰ ์€ํ•˜๊ณ„๋กœ์˜..
2์›”ํšŒ๊ณ  5
ยท
TIL/ํšŒ๊ณ 
์–ด๋Š๋ง ํŒŒ์ด๋„ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์•ž๋‘๊ณ  ์žˆ๋‹ค. ๋‘๊ทผ๋‘๊ทผ ์–ด๋Š ํŒ€์— ์–ด๋Š ์ฃผ์ œ๊ฐ€ ๋˜๋”๋ผ๋„ ๋‚˜์˜ ์—ญํ• ์„ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ณ ์‹ถ๋‹ค. ๊พธ์ค€ํžˆ ์ธ๊ฐ• ๋“ค์œผ๋ฉฐ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๊ณ  ์ˆ˜์—… ๋‚ด์šฉ๋„ ๋ณต๊ธฐํ•˜๊ณ  ์žˆ๋‹ค. ์ž๋ฐ” ๊ฐ ์žƒ์ง€ ์•Š๊ธฐ (๊ฐ์ด๋ผ๋Š”๊ฒŒ ์žˆ์„๊นŒ์‹ถ์ง€๋งŒ) ! 2๋‹ฌ์ด๋ผ๋Š” ๊ธฐ๊ฐ„์€ ๊ฒฐ์ฝ” ๊ธธ์ง€ ์•Š๊ธฐ์— ์„ฑ์‹คํ•˜๊ฒŒ ํŒ€์›๋“ค๊ณผ ํ”Œ์ ์„ ์ด์–ด๊ฐ€๊ณ  ์‹ถ๋‹ค.
[ํผ์˜จ๊ธ€] ๋ˆˆ์— ๋„๋Š” ์ŠคํŽ™์ด ๋  ์ˆ˜ ์žˆ๋Š”, ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ(๊ธฐ์—ฌ์ž) ๋˜๋Š”๋ฒ• ๊ฐ„๋‹จ ์ •๋ฆฌ[์ œ๋กœ์ดˆ๋‰ด์Šค]
ยท
์ฐธ๊ณ ์ž๋ฃŒ
https://youtu.be/7uxCmXAA5Zw?si=QNNjAjK4Jwj2jpBy ์ „์— ์„ ์ƒ๋‹˜๊ป˜์„œ ๋ง์”€ํ•˜์‹  ๋‚ด์šฉ ์ค‘ ์˜คํ”ˆ ์†Œ์Šค์— ๊ด€ํ•œ ๋‚ด์šฉ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ด€๋ จํ•˜์—ฌ ๋”ฑ ๋งž๋Š” ์˜์ƒ์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. (์ œ๋กœ์ดˆ๋‹˜ ์ด๋ฏธ ๊ตฌ๋…์ค‘์ด์˜€์–ด์š”!) ์ด์Šˆ์™€ ํ’€๋ฆฌํ€˜ ๋“ฑ ๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ƒ์„ธํžˆ ๋‚˜์™€์žˆ์–ด ์ฐธ๊ณ ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์–ด์จŒ๋“ , ์„ ์ƒ๋‹˜์ด ํ•˜์‹  ๋ง๊ณผ ๋™์ผํ•˜๊ณ  ๋˜ ์ค‘์š”ํ•˜๋‹ค ์ƒ๊ฐํ•ด์„œ ์ด๋ ‡๊ฒŒ ๊ธฐ๋กํ•ด ๋‘  !
2์›”ํšŒ๊ณ  4
ยท
TIL/ํšŒ๊ณ 
๐ŸŒฑ ๋ฐฐ์šด๊ฒƒ docker compose nGrinder test load testing with ngrinder: ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค์ • ํ›„, compose.yml์—์„œ cpus์™€ memory๋ฅผ ์กฐ์ •ํ•ด๊ฐ€๋ฉด์„œ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ Kubernetes Minikube ์„ค์น˜ ๋ฐ Dashboard figlet ์ข‹์•˜๋˜ ์  ๋ฌธ์ œํ•ด๊ฒฐ ๊ณผ์ • ๋„์ปค์™€ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๊ฐ€์„ค์„ ์„ธ์šฐ๊ณ  ์ž‘์—…ํ•˜๋Š” ์žฌ๋ฏธ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฌผ๋ก  ์•„์ง ๋ถ€ํ•˜์˜ ์ •ํ™•ํ•œ ์ง€์ ์„ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ํ•˜๊ธฐ์—” ์–ด๋ ค์› ์œผ๋‚˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ด์‹ฌํžˆ ์‰ฌ๊ธฐ ์ˆ˜์—…์—๋Š” ์ •๋ง ์ง‘์ค‘ํ•ด์„œ ์—ด์‹ฌํžˆ ํ•˜๊ณ  ๊ทธ ์™ธ์ ์œผ๋กœ๋Š” ์ •๋ง ์‰ฌ์—ˆ๋‹ค. ์ง€๋‚œ์ฃผ์— ๋งํ•œ ๊ฐ„๋‹จํ•œ ๋…์„œ๋„ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ด์‹ฌํžˆ ๋ฌผ๋ฆฌ์น˜๋ฃŒ๋„ ๋‹ค๋‹ˆ๋ฉด์„œ ํ‡ด๊ทผ ํ›„ ์˜ค๋กฏํžˆ ๋‚˜๋ฅผ ๋Œ๋ดค๋‹ค. ์ž ๋„ ํ‘น์ž๊ณ  ์Šค์Šค๋กœ๋ฅผ ๋…๋ คํ•˜๋Š” ์ฃผ๊ฐ„์ด..
๋ž˜๋‹ˆ