์ง๋ ํ ์์ผ๋ถํฐ ๊ด์ฌ์ ๊ฐ์ง๊ฒ ๋ ์ฃผ์ ์ ๋๋ค.
๋ง์ ์ฌ๋๋ค์ด HTTP 1.1์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ REST API์ ๋ํด ๊น๊ฒ ์๊ฐ์ํ๊ณ ์ฐ๊ธฐ ๊ฐ๋จํ์ฌ ์ฌ์ฉ ์ค์ ๋๋ค. ์ ๋ง ํด๋ ๊ทธ๋ฌ๋๋ฐ์. gRPC๊ฐ ๋น ๋ฅด๊ณ ๋ ์ค๋ฅด๋ ์ต์ ๊ธฐ์ ์ด๋ผ๊ณ ๋ ๋ค์์ง๋ง, ๊ทธ๋ฅ REST API๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ง ์ ๊ตณ์ด HTTP/2๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ gRPC๋ฅผ ์ฌ์ฉํ ๊น ์๋ฌธ์ ๊ฐ์ง์ ์ด ์๋ค๊ฐ ์ง๋ ํ ์์ผ์ ๊ฐ์๊ธฐ ๊ถ๊ธํด์ ธ์ ๊ณต๋ถํ๊ธฐ ์์ํ์ต๋๋ค.
์ผ๋จ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ REST API๋ HTTP/1.1์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ์ ์ด๊ณ gRPC๋ HTTP/2๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ์ ์ ๋๋ค. ์ผ๋จ HTTP/2๋ก ๋์ด๊ฐ๋ ์์ฒด๋ก ์ด๋ฏธ ๋ง์ ๋จ์ ๋ค์ด ์ฌ๋ผ์ง๊ณ ์๋ก์ด ์ฅ์ ์ด ์ถ๊ฐ๋ฉ๋๋ค.
์ด๋ฏธ ์๋ฒ๊ฐ REST API๋ก ๊ฐ๋ฐ์ด ๋์ด์ gRPC๋ก ๋ค ๋ฏ์ด ๊ณ ์น๋ ๊ฒ์ ์๊ฐ์ ์ฌ์ ๊ฐ ์์ ๋ฏ ํ์ฌ HTTP/2๋ก๋ง ๋ฐ๊ฟ์ฃผ๋ ค๊ณ ํฉ๋๋ค.
- ์ฌ๋ฌ ํ ์คํธ ๊ธ์์ HTTP/1.1 โ HTTP/2 ๋ก๋ง ๋ณ๊ฒฝํด๋ ์ฑ๋ฅ์ด ํฌ๊ฒ ๊ฐ์ ๋๋ค๊ณ ํ๋๋ฐ ์ฒด๊ฐ์ ํ์ ๋ถ์ด ๊ณ์ ๊ฐ์?
- HTTP/2๋ก๋ ๊ธฐ์กด์ REST API๋ฅผ ์ฌ์ฉํ ์ ์๋์?
์๋ ์ ์ฑํ๋์ ๊ธ์ ๋ณด๋ฉด HTTP/2๊ฐ ์ง์๋์ง ์๋ ์๋ฒ์ ๋ํด์๋ ์๋์ผ๋ก HTTP/1.1 ๋ก ๋์ํ๋ค๊ณ ์ดํดํ์ต๋๋ค.
- ๊ทธ๋ผ ์ด ๊ฒฝ์ฐ IIS๋ฅผ HTTP/2๋ฅผ ์ง์ํ๋๋ก ๋ณ๊ฒฝํด๋์๋ ์๋ฒ๊ฐ REST API๋ฅผ ์ฐ๋ฉด HTTP/1.1๋ก ๋์ํ๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
HTTP/2๋ก ๋ฐ๊พธ๋ ์์ฒด๋ IIS๋ฅผ ์ฐ๋ ์๋น์ค๋ ์ด ๊ธ์ ๋ฐ๋ผํด์ ํ๋ คํ๊ณ Azure App Service๋ก ๋์ด์๋ ๊ฒ์ ๊ทธ๋ฅ HTTP/2๋ก๋ง ์๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
- .NET 6๊ฐ ๋์ค๋ฉด์ QUIC์ด ์ง์๋๋ค๊ณ ํ๋๋ฐ QUIC์ด ๋์ด์ HTTP/3๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ธฐ์กด์ REST API๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ์ผํ๋ ๊ฑด๊ฐ์?
๊ฐ๋ ์ด ์กํ์ง ์์์ ์์ง ์์ญ๋ฌ์ญํ ์ํ์์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์ฐธ๊ณ ๊ธ
- HTTP/3๋ ์ UDP๋ฅผ ์ ํํ ๊ฒ์ผ๊น?
- https://m.blog.naver.com/sehyunfa/221680799006
- https://velog.io/@ziyoonee/HTTP1-๋ถํฐ-HTTP3-๊น์ง-์์๋ณด๊ธฐ
- https://docs.microsoft.com/ko-kr/aspnet/core/host-and-deploy/iis/protocols?view=aspnetcore-5.0
- https://www.sysnet.pe.kr/2/0/12495
- https://www.burndogfather.com/204
- gRPC ์๋น์ค์ HTTP API ๋น๊ต | Microsoft Learn
- REST API ์ ๋๋ก ์๊ณ ์ฌ์ฉํ๊ธฐ : NHN Cloud Meetup
- .NET Core 3 - HTTP/2 Support | dot-net-core-3 Tutorial
- https://cloud-trends.medium.com/grpc-vs-restful-api-vs-graphql-web-socket-tcp-sockets-and-udp-beyond-client-server-43338eb02e37