๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ285 [TIL] ํ๋ก์ ํธ 15์ผ์ฐจ.. ํ๋ก์ ํธ ๋ฆฌํฉํ ๋ง ๋ฐ ๊ณ ๋ํ ๊ณ ๋ฏผํ๊ธฐ! ๐ ์ค๋์ ์ด๋ค ํ๋ฃจ์์ง..์ค๋์ ํ์๋ถ์ด ํ๋ฆฌํ ์ฌ๋ฆฌ๊ณ merge ๋ ์ฝ๋๋ฅผ pull ๋ฐ์์ ๋ด ์ฝ๋๋ฅผ ์ฎ๊ธฐ๋ ์์ ์ ํ๋ค.์ง๊ธ๊น์ง๋ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ํ ์คํธ Controller๋ฅผ ๋ง๋ค๊ณ ๊ฑฐ๊ธฐ์ ์์ ์ ์งํํ๊ณ ์์๋ค. ํ์ง๋ง ์ด์ ๋ ํ์์ ์ฝ๋์ ํฉ์ณ์ผ ํ๋ ๋ด ์ฝ๋๊ฐ ์ ๋์ํ ์ ์๋๋ก ์ฎ๊ธฐ๋ ์์ ์ ํ๋ค!์๋ฒฝํ๊ฒ ๋ค ์ฎ๊ธฐ๋ ค๊ณ ํ์ง๋ง ๊ฒฐ์ ํํธ์์ ๋์ด์ค๋ DTO๋ฅผ ์์ํ ์ ์์ด์ ๋ก์ง์ ๋ค ์์ฑํ์ง ๋ชปํ๊ณ ์ฐ์ ์ ํ๋ง ์ก์๋๊ณ ํ์์ ์์๋๋ก ๋๋จธ์ง ์ฝ๋๋ฅผ ์์ฑํ๋ค.case INVENTORY_DECREASE -> { // todo ๊ฒฐ์ ํํธ์์ ์ ๋ฌ๋๋ payload ๊ตฌ์กฐ ํ์ธ ํ DTO ์ ์ // log.info("๐ฅ Kafka ์ฌ๊ณ ๊ฐ์ ๋ฉ์์ง ์์ : {}", message);.. 2025. 6. 4. [TIL] ํ๋ก์ ํธ 12์ผ์ฐจ.. ์ฌ๊ณ ๊ฐ์ ๋ก์ง๊ณผ ๋ฐฐ์ก ์์ฑ ๋ก์ง ์ฐ๊ฒฐ ๋ง๋ฌด๋ฆฌํ๊ธฐ! ๐ ์ค๋์ ์ด๋ค ํ๋ฃจ์์ง..์ค๋์ ์ง์ง ์ง์ง ๋ง์ง๋ง์ผ๋ก ์ฌ๊ณ ๊ฐ์ ๋ก์ง๊ณผ ๋ฐฐ์ก ์์ฑ ๋ก์ง์ ์ฐ๊ฒฐํ๋ ์์ ์ ๋ง๋ฌด๋ฆฌํ๋ค.์ฃผ๋ฌธ์ ์์ฑํ๋ ์์ ์์ ๋ฐฐ์ก ์์ฑ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ด๊ณ ๊ฒฐ์ ํํธ๋ก ๋๊ฒจ์ฃผ๊ณ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด์ ๊ณ์ ๊ณ ๋ฏผํ๋ ๋ฐฐ์ก ์์ฑ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์๋ค.์ฃผ๋ฌธ → ๊ฒฐ์ → ์ฌ๊ณ ๊ฐ์ → ๋ฐฐ์ก๊น์ง ์ค๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ DB๋ฅผ ์กฐํํด์ ํ์ง ์์๋ RequestDTO ๋ด์ ์ ๋ถ ์์ด์ Service์ ๋ก์ง์ด ์ ์์ ์ผ๋ก ๋์ํ ์ ์๋ค.๊ทธ๋ ๋ค๋ฉด ๊ฒฐ์ ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋๊ฒจ์ฃผ๋์ง ํ์ธํ๊ณ ๋๊ฒจ์ฃผ์ง ์๋๋ค๋ฉด ๋ด๋น ํ์์๊ฒ ๋ถํํด์ ๋ฐ์ดํฐ ๊ทธ๋๋ก ๋๊ฒจ๋ฌ๋ผ๊ณ ์์ฒญํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.๊ทธ๋ผ ๋ ๊ทธ ์์์ ์ฌ๊ณ ๊ฐ์ ๋ก์ง ์ดํ์ ๋ฐฐ์ก ์์ฑ ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ.. 2025. 6. 4. [๋ฉ์์ง ๋ธ๋ก์ปค] ๋๋ง ๋ชจ๋ฅด๋ ์ค ์์๋ ๋ฉ์์ง ๋ธ๋ก์ปค.. ๐จ ๋ฉ์์ง ๋ธ๋ก์ปค๋ ๋ฌด์์ผ๊น..?์๋ก ๋ค๋ฅธ ์์คํ ์ด๋ ํ๋ก๊ทธ๋จ๋ผ๋ฆฌ "๋ฉ์์ง(๋ฐ์ดํฐ)"๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ค๊ฐ์์ ์ ๋ฌํด ์ฃผ๋ ์ํํธ์จ์ด์ด๋ค.์ฝ๊ฒ ๋งํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ถ์ ์์คํ ๊ณผ ์์ ํ ์์คํ ์ฌ์ด์ ์ค๊ฐ ์ ๋ฌ์ ์ญํ ์ ์ํํ๋ค. ๐จ ๊ทธ๋ ๋ค๋ฉด ๋ฉ์์ง ๋ธ๋ก์ปค๊ฐ ์ ํ์ํ ๊น??โ ๊ธฐ์กด ๋ฐฉ์ : A ํ๋ก๊ทธ๋จ → ์ง์ B ํ๋ก๊ทธ๋จ ํธ์ถ๐ A์ B๊ฐ ์๋ก ๊ฐํ๊ฒ ์ฐ๊ฒฐ๋๋ค. (Coupling)๐ B๊ฐ ๋๋ฆฌ๊ฑฐ๋ ์ฅ์ ๊ฐ ๋๋ฉด A๋ ์ํฅ์ ๋ฐ๋๋ค.๐ ๋น๋๊ธฐ ๋ถ๊ฐ๋ฅ → ํ์ฅ์ฑ/์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค.โ ๋ฉ์์ง ๋ธ๋ก์ปค ์ฌ์ฉ : A ํ๋ก๊ทธ๋จ → ๋ฉ์์ง ๋ธ๋ก์ปค → B ํ๋ก๊ทธ๋จ๐ A๋ ๋ฉ์์ง๋ง ๋ณด๋ด๋ฉด ๋์ด๋ค. (B๊ฐ ์ฃฝ์ด ์์ด๋ ๊ด์ฐฎ๋ค.)๐ A์ B๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ ์ ์๋ค. (๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.)๐.. 2025. 5. 30. [TIL] ํ๋ก์ ํธ 11์ผ์ฐจ.. ๋๋์ด ์ฌ๊ณ ๊ฐ์๋ ๋ฐฐ์ก ์์ฑ์ด๋ ์ฐ๊ฒฐ์?! ๐ ์ค๋์ ์ด๋ค ํ๋ฃจ์์ง..์ค๋์ ๋๋์ด ์ฌ๊ณ ๊ฐ์ ๋ก์ง์ด๋ ๋ฐฐ์ก ์์ฑ ๋ก์ง์ Kafka๋ฅผ ํ์ฉํด์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋ค!๊ทผ๋ฐ ๋ง์ ์ฐ๊ฒฐํ๋ ค๊ณ ์ค๊ณ๋ฅผ ํ๋ค ๋ณด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.. ๋ฐฐ์ก์ ์์ฑํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ค์ ์ ๋ถ ๋ฐ์์ฌ ์ ์๋ ๊ฒ์ด์๋ค..๋ฐฐ์ก์ ์์ฑํ๊ธฐ ์ํด์๋ orderId, sellerId, senderId, addressId, deliveryRequest ๊ฐ ํ์ํ๋ค.ํ์ง๋ง ์ง๊ธ ๋น์ฅ ๋ฐ์์ฌ ์ ์๋ ๊ฒ์ orderId์ sellerId์ด๊ณ ๋๋จธ์ง๋ ๋ฐ์์ฌ ์ ์๋ ๊ฒ์ด์๋ค..๊ทธ๋์ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ด ์งํํ๋ ํ์๋ค๊ณผ ์๊ธฐํด๋ณธ ๊ฒฐ๊ณผ Sender(์ถ๊ณ ์ง(๋ฌผ๋ฅ์ผํฐ))์ Seller(ํ๋งค์) ์ฌ์ด์๋ ์ฐ๊ด๊ด๊ณ๋ฅผ ์ถ๊ฐํ์ฌ ํ๋งค์๊ฐ ์ด๋ ์ถ๊ณ ์ง(๋ฌผ๋ฅ์ผํฐ)๋ก ์ํ์ ๋ณด๋ด์ ๊ด๋ฆฌํด์ผ ํ๋์ง ํ์ธํด์ผ ํ๋ค... 2025. 5. 29. [ํธ๋ฌ๋ธ์ํ ] ์์ธ ๋ฉ์์ง๊ฐ null๋ก ์ถ๋ ฅ๋ ๋ฌธ์ .. ๐ ๋ฌธ์ ํ์Kafka Consumer์์ ConflictException์ด ๋ฐ์ํ์ ๋, ๋ก๊ทธ ๋ฉ์์ง๊ฐ null๋ก ์ถ๋ ฅ๋๋ค.โ ๏ธ ์ฌ๊ณ ๋ถ์กฑ์ผ๋ก ๋ฉ์์ง ์ฒ๋ฆฌ ์คํจ: null→ getMessage()๋ก ์์ธ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ์ง๋ง, null์ด ๋์๋ค. ๐ ์์ธ ๋ถ์โ ๊ธฐ์กด ์ฝ๋ ๊ตฌ์กฐpublic class ConflictException extends CustomRuntimeException { public ConflictException(ErrorCode errorCode) { super(errorCode); // message๋ ์ ๋ฌํ์ง ์์ }}@Getter@RequiredArgsConstructorpublic class CustomRuntimeException extends .. 2025. 5. 28. [ํธ๋ฌ๋ธ์ํ ] Kafka Consumer ์ฌ์๋ ์คํจ๋ก ์ธํ ๋ฉ์์ง ์ ์ค.. ๐ ๋ฌธ์ ํ์Kafka ๋ฉ์์ง๋ฅผ ์ ์์ ์ผ๋ก ์์ ํ ํ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋, ๊ฐ์ ๋ก๊ทธ๊ฐ ๋ฐ๋ณต ์ถ๋ ฅ๋๋ฉด์ ๊ฒฐ๊ตญ ๋ฉ์์ง๊ฐ ํ๊ธฐ๋์๋ค..Backoff FixedBackOff{interval=0, currentAttempts=10, maxAttempts=9} exhausted for stock-management-topic-0@3 ๐ ์ฃผ์ ๋ก๊ทธListener method 'public void ... listen(...)' threw exception...Caused by: turtleMart.global.exception.ConflictException...DefaultErrorHandler : Backoff FixedBackOff{...} exhausted ๐ ์์ธ ๋ถ์Spring Ka.. 2025. 5. 28. ์ด์ 1 2 3 4 5 ยทยทยท 48 ๋ค์