2์›”ํšŒ๊ณ  4
ยท
TIL/ํšŒ๊ณ 
๐ŸŒฑ ๋ฐฐ์šด๊ฒƒ docker compose nGrinder test load testing with ngrinder: ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค์ • ํ›„, compose.yml์—์„œ cpus์™€ memory๋ฅผ ์กฐ์ •ํ•ด๊ฐ€๋ฉด์„œ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ Kubernetes Minikube ์„ค์น˜ ๋ฐ Dashboard figlet ์ข‹์•˜๋˜ ์  ๋ฌธ์ œํ•ด๊ฒฐ ๊ณผ์ • ๋„์ปค์™€ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๊ฐ€์„ค์„ ์„ธ์šฐ๊ณ  ์ž‘์—…ํ•˜๋Š” ์žฌ๋ฏธ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฌผ๋ก  ์•„์ง ๋ถ€ํ•˜์˜ ์ •ํ™•ํ•œ ์ง€์ ์„ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ํ•˜๊ธฐ์—” ์–ด๋ ค์› ์œผ๋‚˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ด์‹ฌํžˆ ์‰ฌ๊ธฐ ์ˆ˜์—…์—๋Š” ์ •๋ง ์ง‘์ค‘ํ•ด์„œ ์—ด์‹ฌํžˆ ํ•˜๊ณ  ๊ทธ ์™ธ์ ์œผ๋กœ๋Š” ์ •๋ง ์‰ฌ์—ˆ๋‹ค. ์ง€๋‚œ์ฃผ์— ๋งํ•œ ๊ฐ„๋‹จํ•œ ๋…์„œ๋„ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ด์‹ฌํžˆ ๋ฌผ๋ฆฌ์น˜๋ฃŒ๋„ ๋‹ค๋‹ˆ๋ฉด์„œ ํ‡ด๊ทผ ํ›„ ์˜ค๋กฏํžˆ ๋‚˜๋ฅผ ๋Œ๋ดค๋‹ค. ์ž ๋„ ํ‘น์ž๊ณ  ์Šค์Šค๋กœ๋ฅผ ๋…๋ คํ•˜๋Š” ์ฃผ๊ฐ„์ด..
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ž€, ๊ฐ„๋‹จํ•œ ์šฉ์–ด์ •๋ฆฌ ๋ฐ ๋„์ปค์™€ ์ฐจ์ด์ 
ยท
TIL/devops
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ž€(Kubernetes) ? ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„๋‹จํ•œ ์šฉ์–ด์ •๋ฆฌ ์šฉ์–ด ๋œป ์ปจํ…Œ์ด๋„ˆ ์•ฑ์ด ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ๊นŒ์ง€ ๊ฐ์‹ธ์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒฉ๋ฆฌ ๊ธฐ์ˆ  ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋„๊ตฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋„๊ตฌ ์ค‘ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๊ฒƒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ•˜๋Š” ๋„๊ตฌ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ฑธ์นœ ์ปจํ…Œ์ด๋„ˆ ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ ์„ค์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ํ–‰์œ„ ์ปจํ…Œ์ด๋„ˆ๋ž€? ๊ตฌ๋™ํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ๊นŒ์ง€ ๊ฐ์จ์„œ, ์–ด๋””๋“  ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ . ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ํ™˜๊ฒฝ์˜ ๋ณ€ํ™” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ๋„์ปค ๋น„๊ต ๋„์ปค ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ชฉ์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ ์—ฌ๋Ÿฌ ๋Œ€์˜ ..
Docker, ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๊ฐ„๋‹จํ•œ ์‹คํ–‰ ๋ช…๋ น์–ด
ยท
TIL/๋„์ปค
๐Ÿ“Œ๋„์ปค๋ž€? ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํŒจํ‚ค์ง€ํ™”ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ชจ๋“  ์ข…์†์„ฑ์„ ํฌํ•จํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ๊ด€๋ฆฌ ๊ฐ€๋Šฅ โœ” ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ? 1. ์ž์› ๊ณต์œ  ๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋™์ผํ•œ ๋จธ์‹ ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ํ™˜๊ฒฝ ๊ฒฉ๋ฆฌ ๊ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜์—ฌ ์ƒํ˜ธ ๊ฐ„์˜ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ์œ ์—ฐ์„ฑ ๊ฐ€์ƒ ๋จธ์‹  ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 4. ์„ฑ๋Šฅ ํ–ฅ์ƒ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 5. ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ ๊ฐ€..
2์›”ํšŒ๊ณ  3
ยท
TIL/ํšŒ๊ณ 
๐ŸŒฑ ๋ฐฐ์šด๊ฒƒ Docker ๐Ÿ™„์•„์‰ฌ์šด์  ๋‚˜ํƒœํ•จ๊ณผ ๋ฌด๊ธฐ๋ ฅํ•จ ์ด๋ฒˆ์ฃผ๋Š” ์ •๋ง ๋‚˜ํƒœํ•˜๊ณ  ๋ฌด๊ธฐ๋ ฅํ–ˆ๋‹ค. ๊พธ์ค€ํžˆ ํ•˜๊ธฐ๋กœ ํ–ˆ๋˜ ๊ฐœ์ธ๊ณต๋ถ€๋ฅผ ์ด๋ฒˆ์ฃผ์—๋Š” ๋ชปํ–ˆ๋‹ค. ์‚ฌ์‹ค ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•„ ๋ฏธ๋ค˜๋‹ค. ์ด๋ฒˆ์ฃผ๋Š” ๋Š˜ํ”ผ๊ณคํ–ˆ๊ณ  ์กธ๋ ธ๋‹ค. ์Šค์Šค๋กœ ์ƒ๊ฐํ–ˆ์„ ๋•Œ ์ง€๊ธˆ์€ ์‰ฌ์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค. ํœด์‹์ด ํ•„์š”ํ•  ๋• ์‰ฌ์–ด์•ผํ•œ๋‹ค. ๊ฐœ์„ ํ• ์  ๋ฆฌํ”„๋ ˆ์‰ฌ๊ฐ€ ํ•„์š”ํ•ด ๋‹ค์Œ์ฃผ๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋“ค์„ ๋‚ด๋ ค๋†“๊ณ ์ž ํ•œ๋‹ค. ์ง€๊ธˆ์€ ์‰ฌ์–ด๊ฐ€์•ผ ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ณต๋ถ€ ์™ธ์ ์ธ ์žฌ๋ฏธ๋กœ ํ™˜๊ธฐ๋ฅผ ์‹œ์ผœ์•ผ๊ฒ ๋‹ค. ๐Ÿš€์•ž์œผ๋กœ ๊ฐ€๋ฒผ์šด ์ฑ… ํ•œ๊ถŒ ๋‚ด ๋‚ด๋ฉด์„ ์ฑ™๊ธฐ๊ณ ์ž ํ•œ๋‹ค. ๊ฑด๊ฐ•์‹ ํ•™์› ๋‹ค๋‹ˆ๋ฉด์„œ ๋งค์ผ ์‚ฌ๋จน๊ฑฐ๋‚˜ ์ธ์Šคํ„ดํŠธ๋กœ ๋ผ๋‹ˆ๋ฅผ ๋จน์œผ๋‹ˆ ์ด๊ฒƒ๋„ ์•„๋งˆ ์ปจ๋””์…˜์— ์˜ํ–ฅ์ด ์žˆ์ง€ ์•Š๋‚˜์‹ถ๋‹ค. ๋ฒˆ๊ฑฐ๋กญ๋”๋ผ๋„ ๋„์‹œ๋ฝ์„ ์‹ธ๊ฐ€๊ฑฐ๋‚˜ ๊ฑด๊ฐ•ํ•œ ์Œ์‹์„ ์ฑ™๊ฒจ๋จน๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค. ๊ฐœ๋ฐœ ์™ธ ์ทจ๋ฏธํ™œ๋™ ..
2์›”ํšŒ๊ณ  2
ยท
TIL/ํšŒ๊ณ 
๐Ÿฅ์ข‹์•˜๋˜์  ํ”„๋ก ํŠธ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ git์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ด์Šˆ์™€ ํ’€๋ฆฌํ€˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž‘์—… ์ˆœ์œ„์„ ํŒŒ์•…ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ™„์•„์‰ฌ์šด์  ์งง์€ ๊ธฐ๊ฐ„ ๋‚ด ์„ฑ๊ณต๋ณด๋‹ค๋Š” ์Šคํ† ๋ฆฌํ…”๋ง ์ฃผ์–ด์ง„ ์งง์€ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ฒด๊ณ„์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์•„์‰ฌ์› ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์• ์ดˆ์— ์งง๊ฒŒ ์ฃผ์–ด์‹  ์‹œ๊ฐ„๋งŒํผ ์„ ์ƒ๋‹˜๊ป˜์„œ๋Š” ์™„์ˆ˜ํ•˜์ง€ ๋ชปํ•œ ๋‚ด์šฉ์— ์Šคํ† ๋ฆฌํ…”๋ง๊ณผ ๋Œ€์‘์„ ๋งŒ๋“ค์–ด๋ณด๋ผ ํ•˜์…จ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹จ์ˆœํžˆ ์„ฑ๊ณต์— ์ง‘์ค‘ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์‹คํŒจ์™€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•™์Šต๊ณผ ๋Œ€์‘์ด ๋” ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๐Ÿš€์•ž์œผ๋กœ JAVA ๋ณด๊ฐ• ์ธ๊ฐ• ๊พธ์ค€ํžˆ ๋“ฃ๊ณ  ์žˆ๋‹ค. ์ˆ˜์—…์‹œ๊ฐ„์— ๋ฐฐ์šด ๋‚ด์šฉ์ด ๋ณต์Šต์ฐจ์›์—์„œ ํ›จ ์ดํ•ด๊ฐ€ ์ž˜ ๋˜์–ด ์ข‹๋‹ค. ๋‹ค์Œ์ฃผ๋ถ€ํ„ฐ๋Š” DevOps๋‹ค. ๋งŽ์ด ๋“ค์–ด๋Š” ๋ดค์ง€๋งŒ ์ƒ์†Œํ•œ ๋ถ„์•ผ๋ผ ๊ถ๊ธˆํ•˜๋‹ค.
2์›” ํšŒ๊ณ  1
ยท
TIL/ํšŒ๊ณ 
๐ŸŒฑ๋ฐฐ์šด๊ฒƒ nginx Vue npm json-server Fly.io ๋ฐฐํฌํ•˜๊ธฐ ๐Ÿฅ์ข‹์•˜๋˜์  ๋ฐฐํฌ๊นŒ์ง€ ํ•ด๋ณด๋Š” ๊ฒฝํ—˜ firebase, fly.io ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ๊นŒ์ง€ ํ•ด๋ดค๋‹ค. ํ•œ๋ฒˆ์— ์„ฑ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์˜ค๋ฅ˜๋ฅผ ๊ฒฝํ—˜ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค ๐Ÿ™„์•„์‰ฌ์šด์  ์งง์•˜๋˜ ํ”„๋ก ํŠธ ์ˆ˜์—… ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐ˜ ์ˆ˜์—…์ด๋ผ ์ƒ๋Œ€์ ์œผ๋กœ ํ”„๋ก ํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ ์—ˆ๋‹ค. html,css,js๋Š” ์•Œ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ๋“ค์ด๋ผ ๋‚œ ๊ดœ์ฐฎ์•˜์ง€๋งŒ ๋ฐ˜์นœ๊ตฌ๋“ค์€ ์–ด๋ ค์›Œํ–ˆ๋‹ค.. ์ด์ „์— ์งง๊ฒŒ ํ˜ผ์ž ๊ณต๋ถ€ํ–ˆ๋˜ vue ๋‚ด์šฉ์ •๋„๋ผ ์•„์‰ฌ์› ๋‹ค. vue ์— ๋Œ€ํ•ด ๊ฐœ์ธ์ ์œผ๋กœ ์ถ”๊ฐ€๊ณต๋ถ€๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค ๐Ÿš€์•ž์œผ๋กœ JAVA ๋ณด์ถฉ์ธ๊ฐ• ์ž๋ฐ” ๋ณด์ถฉ ์ธ๊ฐ•์€ ์ด์ „์— ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋ณต์Šตํ•˜๊ณ , ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ˆ˜์—…์„ ๋“ฃ๊ณ  ๋‚˜์„œ ์ธ๊ฐ•์„ ํ†ตํ•ด ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋ ค์› ๋˜ ๊ฐœ๋…๋“ค์„ ๋‹ค์‹œ..
nGrinder. ์„ค์น˜์™€ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์ ์šฉ
ยท
TIL
https://naver.github.io/ngrinder/ nGrinder Please post questions in Discussions not Issues. nGrinder 3.5.5-p1 version is now available. Check the changes at here. nGrinder is a platform for stress tests that enables you to execute script creation, test execution, monitoring, and result report gener naver.github.io nGrnder : ๋„ค์ด๋ฒ„์—์„œ ์ง„ํ–‰ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ์„œ๋ฒ„ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ nGrinder๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ ๋ฐ ์ž„๊ณ„์  ๋“ฑ์„ ํ™•์ธํ• ..
thymeleaf layout ์ ์šฉํ•˜๊ธฐ (header, footer, main)
ยท
TIL/Java
1. ํ™˜๊ฒฝ๊ตฌ์ถ• * ํƒ€์ž„๋ฆฌํ”„์™€ ํƒ€์ž„๋ฆฌํ”„ ๋ ˆ์ด์•„์›ƒ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ 1-1. maven ์˜์กด์„ฑ ์ถ”๊ฐ€ https://mvnrepository.com/artifact/nz.net.ultraq.thymeleaf/thymeleaf-layout-dialect nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 3.1.0 1-2. gradle ์˜์กด์„ฑ ์ถ”๊ฐ€ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' } 2. application.proper..
๋ž˜๋‹ˆ
'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)