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

์„œ๋น„์Šค & ํˆด7

[Docker] 3. ๋„์ปค ์ปดํฌ์ฆˆ(Docker compose) ๋„์ปค ์ปดํฌ์ฆˆ(Docker compose)๋„์ปค ์ปดํฌ์ฆˆ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ˆœ์„œ์™€ ํ๋ฆ„์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰์— ๊ด€ํ•œ ๋ช…์„ธ๋ฅผ ์ ์–ด ๋†“์œผ๋‹ˆ ์–ด๋–ค ์„œ๋น„์Šค๋“ค์ด ์—ฐ๊ด€๋˜์–ด ์žˆ๊ณ  ์ˆœ์„œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ƒ์„ธ ์„ค๋ช…์ด ๋‚˜์˜ค๊ฒ ์ง€๋งŒ, ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋„์ปค ์ปดํฌ์ฆˆ์˜ ์ตœ๋Œ€ ์žฅ์ ์€ "Docker run(์‹คํ–‰)์˜ ์ฝ”๋“œํ™”"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์‚ดํŽด๋ณด์‹œ์ฃ . Docker Compose๋ž€?Docker Compose๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋™์‹œ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ docker-compose.yml ํŒŒ์ผ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ •์˜(์„œ๋น„์Šค, ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ ๋“ฑ)๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋ช…๋ น ํ•œ ์ค„๋กœ ๊ด€๋ จ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘, ์ค‘์ง€, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Docke.. 2025. 1. 6.
[Docker] 2. ๋„์ปค ๋„คํŠธ์›Œํฌ์™€ ๋„์ปค ์Šคํ† ๋ฆฌ์ง€ ๋„์ปค ๋„คํŠธ์›Œํฌ(Docker Network)๋„์ปค์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ host๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™˜๊ฒฝ์ด์ง€๋งŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ์„œ๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์›น์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ๊ฐ์ž ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์›น์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ip์ฃผ์†Œ์™€ port๋ฅผ ์ •์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์€ ์šด์˜ํ™˜๊ฒฝ์—์„œ ๋งค์šฐ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žฌ์‹œ์ž‘ํ•ด์„œ ip์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ์—๋Š” ์›น์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ --link ์˜ต์…˜์„ ๋ถ€์—ฌํ•ด์„œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ด ๋ฐฉ์‹ ๋˜ํ•œ ์šด์˜ํ™˜๊ฒฝ์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ๋ง์”€๋“œ๋ฆฌ๋ฉด, ์ปค์Šคํ…€ ๋„คํŠธ์›Œํฌ(Custom Network)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  .. 2025. 1. 2.
[Docker] 1. ๋„์ปค, ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ DockerDocker๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์ข…์†์„ฑ์„ ํ•จ๊ป˜ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์‹คํ–‰ ํ™˜๊ฒฝ ๊ฐ„ ์ผ๊ด€์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ์ผ๊ด€๋˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ ์‚ฌ์ด์˜ ์ฐจ์ด๋กœ ์ธํ•œ ๋ฌธ์ œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Docker Container๋Š” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ ํ™•์žฅ์„ฑ์ด ์ข‹์•„์„œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.Docker๋Š” ์ฃผ๋กœ ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋น„๊ต๋ฅผ ๋งŽ์ด ํ•˜๋Š”๋ฐ, ๊ธฐ์กด ๊ฐ€์ƒ๋จธ์‹ ์€ ๋ฌด๊ฒ๊ณ  ๋Š๋ฆฌ์ง€๋งŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ ํ˜ธ์ŠคํŠธ์˜ ์šด์˜์ฒด์ œ์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์™€ ๊ด€๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด.. 2024. 12. 24.
[Metric] ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค + ๊ทธ๋ผํŒŒ๋‚˜ ๋“ค์–ด๊ฐ€๋ฉฐ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํ•ญ์ƒ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค(Prometheus)์™€ ๊ทธ๋ผํŒŒ๋‚˜(Grafana)์ž…๋‹ˆ๋‹ค.๋‘ ๊ธฐ์ˆ ์€ ์ฒ ์ฒ˜ํžˆ ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๊ถํ•ฉ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ณ , ๊ฐ„๋‹จํžˆ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋งคํŠธ๋ฆญ(Prometheus Metrics)์ด๋ž€?ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค(Prometheus)๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋ฆผ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์‹œ์Šคํ…œ์œผ๋กœ, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ(time-series data)๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "๋งคํŠธ๋ฆญ(metric)"์€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜๋Š” ํŠน์ • ์ธก์ •๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋งคํŠธ๋ฆญ์˜ ์ฃผ์š” ํŠน์ง•์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ: ๋งคํŠธ๋ฆญ์€ ํŠน์ • ์‹œ๊ฐ„.. 2024. 12. 23.
[๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค] RabbitMQ vs Apache KafKa ๋“ค์–ด๊ฐ€๋ฉฐ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ๊ณผ ๋ฐ›๋Š” ์ชฝ ์‚ฌ์ด์—์„œ ์ ์ ˆํ•œ ๋ถ„๋ฐฐ๋ฅผ ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Publisher์™€ Subscriber๋Š” ์„œ๋น„์Šค์˜ ๋ณธ์งˆ์— ๋”ฐ๋ผ ์ž์‹ ์˜ ์—ญํ• ์— ์ข€๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์ฃ . ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค์ธ RabbitMQ์™€ Apache KafKa ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. RabbitMQ์™€ Kafka๋Š” ๋‘˜ ๋‹ค ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์ด์ง€๋งŒ, ์„ค๊ณ„ ์ฒ ํ•™๊ณผ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” RabbitMQ์™€ Kafka์˜ ์ฃผ์š” ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค.1. ์„ค๊ณ„ ์ฒ ํ•™RabbitMQ:AMQP(Advanced Message Queuing Protocol)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋œ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค.๋ฉ”์‹œ์ง€ ์ „๋‹ฌ, ๋ผ์šฐํŒ….. 2024. 12. 16.
[git] Git rebase(๋ฆฌ๋ฒ ์ด์Šค)๋ž€? git rebase๋ž€? git rebase๋Š” Git ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด ์ค‘ ํ•˜๋‚˜๋กœ, ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์žฌ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์น  ๋•Œ ์ฃผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. git rebase๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ git rebase๋Š” ๋‘ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ์„ ํƒํ•˜์—ฌ ์ด๋ ฅ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ์œ„ํ•ด ๋‹ค์Œ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ๊ธฐ๋ณธ ๊ฐœ๋… - Git์€ ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ปค๋ฐ‹์€ ๋ถ€๋ชจ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ, ๋ธŒ๋žœ์น˜๋Š” ์ด๋Ÿฌํ•œ ์ปค๋ฐ‹์˜ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆํผ๋Ÿฐ์Šค์ž…๋‹ˆ๋‹ค. 2. ๋ธŒ๋žœ์น˜ ์ด๋™ - ๋ธŒ๋žœ์น˜ A์—์„œ ์ž‘์—…ํ•˜๋˜ ์ค‘ ๋ธŒ๋žœ์น˜ B์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด.. 2023. 8. 10.