์ ์ ๋ฆฌ๋ ๋ด์ฉ์ด๋ค์. ์ ๊ฐ ๋ดค๋ gc๊ด๋ จ ์ธ๊ฐ์ด ์๋๋ฐ ์ด ์ํฐํด๊ณผ ๋ด์ฉ์ด ๋น์ทํ๋ฐ ์ข ๋ ์์ธํ ๋ค๋ฃจ๊ณ ์์ด์ ์๊ฐํฉ๋๋ค.
https://www.udemy.com/share/10281iBEMZdVtVRHg=/
์ด ๊ฐ์๋ฅผ ์๋ ํ๊ณ gc์ ๋ํ ์ดํด๊ฐ ๋ง์ด ๋์์ก์ต๋๋ค.
๊ทธ๋ฐ๋ฐ TestServer๋ผ๋ ํด๋์ค๋ ์ฒ์๋ด์ ์ฐพ์๋ณด๋ msdn์ ์๋ ๋ท๋ท api๋ค์โฆ ๋์ค์ ์ด๊ฒ๋ ์์๋ณด๋ ๊ฒ์ผ๋ก ใ ใ
๋ํ httpclient์ ๊ฒฝ์ฐ dispose๋ฅผ ํด๋ ์์ผ ๋ฐ์ธ๋ฉ์ด ํ๋ฆฌ์ง ์์ dispose๊ฐ ์๋ฏธ์๋ค๋ ๊ธ์ ๋ดค๋๋ฐ, ๊ทธ์ ๋ฐ๋ผ ๊ผญ httpclientfactory๋ฅผ ํตํด httpclienthandler๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํด๋๊ณ ์ฐ์ด๋ด๋ ๊ฒ์ด ์ข๋ค๊ณ ํฉ๋๋ค. ํน์ ๋ชจ๋ฅด์๋ ๋ถ๋ค์ ์ํ์ฌ ๋งํฌ ๋จ๊น๋๋คโฆ
์์ ํ ๋ด์ฉ์ด ์๊ธด ๋ฏ ํฉ๋๋ค.
๋ง์์์ ํด์ฃผ๋๊น ๋ฏฟ๊ณ ๊ทธ๋ฌ๋ ค๋ ํ๋๋ฐ, ์โฆ์์๋ชป์ธ ์ ๊ฐ ์ดํดํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด IHttpClientFactory๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์์ ํ๊ฒ ๊ด๋ฆฌ๊ฐ๋์ง๋ ์๋๋ด ๋๋ค.
SimpleInjector๋ฅผ ์ฌ์ฉํ๋ฉด์ Generic host๋ฅผ ์ธ ๋์ฒ๋ผ IHttpClientFactory๋ฅผ ์ฌ์ฉํด๋ณด๋ ค ํ๋๋ ๊ด๋ จ๋ ๊ธ์ ์ฐพ์๋๋ฐ์, 2019๋ ๊ธ์ด๋ผ ํ์ธ์ ํ์ํ ๋ถ๋ถ ๊ฐ์ต๋๋ค. (์ ๊ธ์ด ์จ์ง ๋๋ .NET Core 3.1์ด ๋ง ๋ฐํ๋ ์งํ์ ๋๋ค. ํ์ฌ๋ .NET 5์ ๋๋ค.)
IHttpClientFactory.CreateClient() ๋ฅผ ํตํด HttpClient๋ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ง๋ง, ๋ฐ์ ์๋ HttpClientHandler๊ฐ ๊ด๋ฆฌ๊ฐ ๋์ง ์๋๋ค๊ณ ํฉ๋๋ค. ํ ์คํธ ๊ธ๋ ์๋ค์. ์ ๊ฐ ์๊ธฐ๋ก ๋ฐ๋ก HttpClientHandler๋ฅผ ๊ตฌํํด์ ์ฌ์ฉํ์ง ์๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ HttpClientHandler๊ฐ ์๋ ๊ฑฐ๋ก ์๋๋ฐโฆ
๋ํ ์ ์๊ฐ IHttpClientFactory.CreateClient()๋ก ์์ฑ๋ HttpClient์ ๊ฒฝ์ฐ Dispose() ๋ฉ์๋์ ํธ์ถ์ด ๋ถํ์ํ๋ค๋ ๋ง์ ๋ํด์ ๋ฐ๋ฐํ๋ฉฐ, IDisposable ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋ ๊ฐ์ฒด์ ๋ํด์๋ ์ฌ์ฉ ํ Dispose๋ฅผ ํธ์ถํด ์ฃผ๋ ๊ฒ์ด ์์์ด๋ผ๊ณ ํ๋ฉฐ, ์ค์ฌ ์๋ฏธ๊ฐ ์๋๋ผ๋ ๊ผญ ํธ์ถ์ ํ ๊ฒ์ ๊ถ๊ณ ํ๋ค์.
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ผ๋ฉด ์ข๊ฒ ๋ค์.