๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ‘ฉ‍๐Ÿ’ป

spring boot ) WebClient DataBufferLimitException ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

by chuyj15 2025. 7. 3.
728x90
๋ฐ˜์‘ํ˜•
SMALL

Spring WebClient๋กœ API ํ˜ธ์ถœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์–ด์š”.

DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144

 

 

์ด๊ฒŒ ๋ญ๋ƒ๋ฉด,

WebClient๊ฐ€ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฒ„ํผ๋งํ•˜๋Š”๋ฐ ๊ธฐ๋ณธ ์ œํ•œ์ด 256KB(262,144 bytes)๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด์„œ, API์—์„œ ๋„ˆ๋ฌด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋ฉด "๋‚˜ ๋„ˆ๋ฌด ์ปค์„œ ๋ชป ๋ฐ›๊ฒ ์–ด!" ํ•˜๊ณ  ์—๋Ÿฌ๋ฅผ ๋‚ด๋ฑ‰๋Š” ๊ฑฐ์˜ˆ์š”.

์ด๋Ÿด ๋•Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค์ฃผ๋ฉด ๋!

๋‹ค์Œ๊ณผ ๊ฐ™์ด WebClient ์„ค์ • ์‹œ maxInMemorySize ์˜ต์…˜์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

return WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(httpClient))
    .baseUrl(baseUrl)
    // ๐Ÿ”ง ๋ฒ„ํผ ํฌ๊ธฐ ์ฆ๊ฐ€: 256KB → 10MB (๋Œ€์šฉ๋Ÿ‰ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ)
    .codecs(configurer -> configurer
        .defaultCodecs()
        .maxInMemorySize(10 * 1024 * 1024)) // 10MB
    .build();

 

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ด์ฃผ๋ฉด ์ตœ๋Œ€ 10MB๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์„œ ๋Œ€์šฉ๋Ÿ‰ JSON, ์ด๋ฏธ์ง€ URL ๋ฆฌ์ŠคํŠธ, ์—‘์…€ ํŒŒ์ผ ๋ฐ์ดํ„ฐ ๋“ฑ API ์‘๋‹ต์ด ํฐ ๊ฒฝ์šฐ์—๋„ ์—๋Ÿฌ ์—†์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ•˜์ง€๋งŒ ์ฃผ์˜์‚ฌํ•ญ! ๐Ÿšซ

  • ๋ฌด์ž‘์ • ๋„ˆ๋ฌด ํฐ ์šฉ๋Ÿ‰์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์žก์•„๋จน์–ด OutOfMemory๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ, API ์‘๋‹ต ์˜ˆ์ƒ ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ ๋‹นํžˆ ์„ค์ •ํ•˜์„ธ์š”.
  • ์ง„์งœ ๋„ˆ๋ฌด ํฐ ๋ฐ์ดํ„ฐ๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ์ฒ˜๋ฆฌ๋‚˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ DataBufferLimitException ์—๋Ÿฌ๋Š” ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋งŒ์•ฝ Spring WebClient์—์„œ ๋Œ€์šฉ๋Ÿ‰ ์‘๋‹ต ์ฒ˜๋ฆฌ ์ค‘ ๋ง‰ํ˜”๋‹ค๋ฉด ์œ„์ฒ˜๋Ÿผ ์„ค์ •ํ•ด๋ณด์„ธ์š”!


#SpringBoot #WebClient #DataBufferLimitException #Spring์˜ค๋ฅ˜ํ•ด๊ฒฐ #์Šคํ”„๋งํŒ #๊ฐœ๋ฐœ์ž์ผ์ƒ #์ฝ”๋”ฉ๊ณต๋ถ€ #์Šคํ”„๋ง์›นํด๋ผ์ด์–ธํŠธ

728x90
๋ฐ˜์‘ํ˜•
LIST