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

BackEnd๐ŸŒฑ116

๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ์™€ ์˜์†์„ฑ ์—”ํ‹ฐํ‹ฐ ๊ฐœ์š”์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์—์„œ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ์™€ ์˜์†์„ฑ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ์„ค๊ณ„ ์›์น™ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด ์›์น™์€ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋„๋ฉ”์ธ ๋กœ์ง๊ณผ ์˜์†์„ฑ ๊ณ„์ธต ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ๋‹ค.์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ์™€ ์˜์†์„ฑ ์—”ํ‹ฐํ‹ฐ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ด ๋‘˜์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ๊ณผ ์ฃผ์˜ํ•ด์•ผ ํ•  ์  ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ ๋ถ„๋ฆฌํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค.  ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ๋จผ์ € ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ์˜ ๊ฐœ๋…๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๋ฉด ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ๋‚ด์˜ ๊ฐœ๋…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด๋กœ, ์ „์ž์ƒ๊ฑฐ๋ž˜ ์‹œ์Šคํ…œ์—์„œ๋Š” 'Order', 'Customer', 'Product'๋“ฑ์ด ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ ์ฝ”๋“œ์ด๋‹ค.. 2024. 6. 18.
ํ˜‘์—…์„ ์œ„ํ•ด Swagger ์ข€ ๋” ์ž˜ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ๋ชฉ์ฐจAPI ๊ทธ๋ฃนํ™”API ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ @Deprecated ํ™œ์šฉํ•˜๊ธฐ๋ช…์„ธ๋งŒ ๋จผ์ € ์ „๋‹ฌํ•˜๊ธฐAuthorize์— jwt ๋„ฃ์„ ๋•Œ prefix์— Bearer ์ƒ๋žต์‹œํ‚ค๊ธฐ๋ธŒ๋ผ์šฐ์ € ์ƒˆ๋กœ๊ณ ์นจ ํ›„์—๋„ ์ธ์ฆ์ •๋ณด ์œ ์ง€์‹œํ‚ค๊ธฐ๊ธฐํƒ€ ์ž์ž˜ํ•œ ์ƒ์„ธ ์„ค์ •๋“ค  1. API ๊ทธ๋ฃนํ™”Swagger์—์„œ API๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋ฉด ์—ฌ๋Ÿฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๊ณ  ๋ฌธ์„œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์„ค์ • ํ›„์—๋Š” ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๊ด€๋ จ๋œ ์—”๋“œํฌ์ธํŠธ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์–ด ์›ํ•˜๋Š” API๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Swagger์—์„œ API๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•ด์„œ ์ ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.springfox-swagger2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ@Configuration@EnableSwagger2publi.. 2024. 5. 15.
AWS VPC๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•Œ์•„์•ผ ํ•  ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹ ๊ฐœ์š”AWS๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๋งŽ์ด ์‚ดํŽด๋ณด๋‹ค ๋ณด๋ฉด VPC(Virtual Private Cloud) ๊ตฌ์กฐ๋ฅผ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ VPC ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹์ด ๊ฝค ๋งŽ์ด ํ•„์š”ํ•œ๋ฐ์š”, ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” AWS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ VPC์˜ ๊ฐœ๋…๊ณผ ๊ด€๋ จ ์šฉ์–ด๋“ค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์„ ์™„๋…ํ•˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  Amazon VPC(Virtual Private Cloud)๋ž€ ๋ฌด์—‡์ผ๊นŒ?Amazon VPC๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•˜๋Š” AWS ๊ณ„์ • ์ „์šฉ์˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” VPC ๋‚ด์—์„œ IP ์ฃผ์†Œ ๋ฒ”์œ„ ์„ ํƒ, ์„œ๋ธŒ๋„ท ์ƒ์„ฑ, ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๋ฐ ๋„คํŠธ์›Œํฌ ๊ฒŒ์ดํŠธ์›จ์ด ๊ตฌ์„ฑ ๋“ฑ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ์ง์ ‘ ๊ตฌ์„ฑํ• .. 2024. 4. 24.
select .. for update ๋Œ€์ƒ ์œ ๋ฌด์— ๋”ฐ๋ฅธ ์ž ๊ธˆ ์ƒํƒœ ๊ฐœ์š” InnoDB ์—”์ง„์€ ๊ธฐ๋ณธ์ ์œผ๋กœ DDL ์ฟผ๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์ž‘์—…์—์„œ ํ…Œ์ด๋ธ” ๋ฝ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ ˆ์ฝ”๋“œ ๊ธฐ๋ฐ˜์˜ ์ž ๊ธˆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ๋Š” ๋ ˆ์ฝ”๋“œ ์ž์ฒด๋ณด๋‹ค๋Š” ์ธ๋ฑ์Šค์— ์ž ๊ธˆ์„ ์„ค์ •ํ•˜์—ฌ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ํ…Œ์ด๋ธ”์— ๋ช…์‹œ์ ์ธ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ž ๊ธˆ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Repetable-Read ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์—์„œ InnoDB๋Š” record lock๊ณผ gap lock์„ ๊ฒฐํ•ฉํ•œ Next-key lock์„ ํ™œ์šฉํ•˜์—ฌ Phantom Read๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ํŠน์ • ํ–‰์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์Šค์บ”ํ•˜๋Š” ๊ณผ์ •์—์„œ, InnoDB๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค ๋ ˆ์ฝ”๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ ์ด์ „ ๊ณต๊ฐ„์—๋„ ์ž ๊ธˆ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ ๋ฐœ๊ฒฌ๋œ ๋ ˆ์ฝ”๋“œ์™€ ์ฟผ๋ฆฌ๊ฐ€ ์ •์˜ํ•œ ๋ฒ”์œ„ ๋‚ด์˜ .. 2024. 4. 11.
์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ ๋Œ€์‘ํ•˜๊ธฐ ๊ฐœ์š”์•„ํ‚คํ…์ฒ˜์˜ ๊ด€์ ์—์„œ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•ด ํ๋ฆ„์— ๋”ฐ๋ผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋“  ํ™˜์˜์ด๋ฉฐ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œ๋Œ€์˜ ์ธ์Šคํ„ด์Šค๋จผ์ € ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํ•œ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  EC2์˜ IP๊ฐ€ ์œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Elastic IP๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ๋†“์•˜์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ์„œ๋ฒ„๋กœ์˜ ํŠธ๋ž˜ํ”ฝ๋„ ๋Š˜์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด EC2 ์ธ์Šคํ„ด์Šค์˜ CPU ์‚ฌ์šฉ๋ฅ ์ด ์ฆ๊ฐ€ํ•˜์—ฌ ๋‹จ์ผ EC2 ์ธ์Šคํ„ด์Šค๋กœ๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ EC2์˜ ์ธ์Šคํ„ด์Šค ์‚ฌ์–‘์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” Scale-.. 2024. 3. 24.
๋‚ด๊ฐ€ ์“ฐ๋Š” IntelliJ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค 1. Global Data Sources ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๊ฐ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB) ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด ์ธํ…”๋ฆฌ์ œ์ด ๋‚ด์—์„œ ์ง์ ‘ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๊ฑธ์ณ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ DB ์—ฐ๊ฒฐ์ด ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์—ฐ๊ฒฐ์„ Make Global๋กœ ์„ค์ •ํ•จ์œผ๋กœ์จ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด๋„ ํ•ด๋‹น DB ์—ฐ๊ฒฐ ์„ค์ •์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. Shelve ์ž‘์—… ์ค‘์ธ ๋ธŒ๋ Œ์น˜์—์„œ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” git stash๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•œ ํ›„ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ด์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์ธ Shelve๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํ˜„์žฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ธํ…”๋ฆฌ์ œ์ด ๋‚ด๋ถ€์— ๋ณด๊ด€ํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ์–ธ์ œ๋“ .. 2024. 3. 20.
ThreadPoolExecutor์—์„œ corePoolSize๋งŒํผ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ”๋กœ ์ƒ์„ฑ๋ ๊นŒ? ๊ฐœ์š”Java์—์„œ ์Šค๋ ˆ๋“œํ’€์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ThreadPoolExecutor, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Spring์—์„œ ์ œ๊ณตํ•˜๋Š” ThreadPoolTaskExecutor์˜ ๋™์ž‘ ๋ฐฉ์‹์— ๊ด€ํ•ด ์ œ๊ฐ€ ๊ทธ๋™์•ˆ ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๋‘ ๊ฐ€์ง€์˜ ์˜คํ•ด๋ฅผ ์ •๋ฆฌํ•˜๊ณ ์ž ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.๋ณ„๋„์˜ ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„ ์‹คํ–‰ ์‹œ์— ์ง€์ •ํ•œ ์Šค๋ ˆ๋“œ ํ’€ ํฌ๊ธฐ๋งŒํผ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.corePoolSize์™€ maxPoolSize๋Š” ์„œ๋กœ ์ƒ๊ด€์—†๋‹ค.ํ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด maxPoolSize์€ ์‚ฌ์‹ค์ƒ ์˜๋ฏธ ์—†๋Š” ์„ค์ •์ด๋‹ค.corePoolSizeํฌ๊ธฐ ์ด์ƒ์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜จ๋‹ค๊ณ  ํ•ด์„œ maxPoolSize๋งŒํผ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.https://githu.. 2024. 3. 11.
[Kafka] ์ปจ์Šˆ๋จธ ์˜คํ”„์…‹ ์ˆ˜๋™์œผ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ ๊ฐœ์š”๋ฉ”์‹œ์ง€ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฌธ์ œ์—†์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋งŒ commit์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก, ์ปจ์Šˆ๋จธ์˜ offset commit์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—ฌ๋Ÿฌ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ auto.offset.commit๋งŒ false๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ž๋™ ์ปค๋ฐ‹์˜ ๋™์ž‘ ๊ณผ์ •๊ณผ ์ฃผ์˜์ , ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹์„ ์ˆ˜๋™์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ auto.offset.commit ์„ค์ •๊ณผ ack-mode ์„ค์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  auto.offset.commitKafka์˜ ์ปจ์Šˆ๋จธ๋Š” ์ฝ์€ ๋ฉ”์‹œ์ง€์˜ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด offset์„ commit ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด offset์€ Kafka์˜ ๋‚ด๋ถ€ ํ† ํ”ฝ์ธ __consumer_offsets์— ์ €์žฅ๋˜๋ฉฐ,.. 2024. 3. 6.
[Kafka] ํ”„๋กœ๋“€์„œ ๋ฉฑ๋“ฑ์„ฑ ๋ณด์žฅํ•˜๊ธฐ ๊ฐœ์š”๋ฉฑ๋“ฑ์„ฑ์€ ๋™์ผํ•œ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ํŠน์„ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉฑ๋“ฑ์„ฑ์„ ์ง€๋‹Œ ํ”„๋กœ๋“€์„œ๋Š” ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•˜๋”๋ผ๋„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ์— ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด ํ”„๋กœ๋“€์„œ์— ์–ด๋–ป๊ฒŒ ๋ฉฑ๋“ฑ์„ฑ์„ ์ ์šฉํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ €์žฅ ์—†์ด ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ๋งŒ ์ €์žฅ๋˜๋„๋ก ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํ”„๋กœ๋“€์„œ์— ๋ฉฑ๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜๋„๋ก ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ƒ์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.  ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐฉ์‹Producer์™€ Broker์˜ ์„ค์ • ๋ฐ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ Kafka์—์„œ๋Š” ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ณด์žฅ ์ˆ˜์ค€์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ํ•œ ๋ฒˆ (At most once): ๋ฉ”์‹œ์ง€๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ์ „์†ก๋˜๋ฉฐ, ์žฌ์ „์†ก์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜.. 2024. 2. 1.