Fetch 로 외부 서버에 요청시 initial connection 지연

안녕하세요~

샌드박스앱과 토스앱 둘 모두에서 발생하는 현상이구요.

처음 접속할 때 fetch로 저희쪽 서버에 https 로 GET 요청을 보내서 유저 정보를 받아오도록 하고 있는데 가끔은 바로 응답이 오는데 많은 경우에 2.2분이 걸립니다. 대략 70~80% 정도의 경우 2.2분이 걸리고 20~30% 정도는 30ms 정도 걸려서 바로 응답이 오네요.

개발자 콘솔에서 network 탭으로 오래 걸리는 요청을 확인해보면 stalled, dns lookup, ssl은 시간이 거의 걸리지 않는데 initial connection이 2.2분 걸리는 걸로 나옵니다.

서버에서 CORS 설정은 일단 모든 요청을 통과시키게 해 두었고 OPTIONS 요청은 기다리지 않고 즉시 응답하도록 해 두었는데도 그러네요.

혹시 이런거 겪어보신 분 계실까요?

이유가 뭔지 어떻게 해결해야 하는지 아시는 분 계시면 도움 부탁드리겠습니다.

감사합니다.

axios 로 바꿔도 마찬가지네요.

@kh.cho 님 안녕하세요

토스 로그인 API 응답이 늦게 온다는 것으로 이해하면 될까요?

호출하시는 API 주소, req, res 전달주시면 확인해보고자 합니다.

전달 가능하실까요?

안녕하세요 :slight_smile:
서버의 자원은 충분한 상황일까요 ?

토스 로그인 API 응답이 늦게 온다는 뜻은 아닙니다.
샌드박스앱과 토스앱 내에 있는 WebView 에서 저희쪽 서버에 접속하려고 할 때 connection 이 늦게 이루어지는 상황입니다.

서버는 문제가 없습니다. 서버에 요청과 응답 시간 로그를 찍게 해 두었는데 서버는 2.2분 뒤에 요청을 받고 요청을 받는 즉시 30ms 이내에 응답을 보냅니다.
애초에 WebView 에서 서버로의 connection 이 너무 늦게 이루어지는 것으로 보입니다.

@kh.cho

타 제휴사에서는 동일 문의가 인입된 이력이 없고, 내부 테스트를 진행해도 이슈가 없습니다.

내부적으로 확인을 할 수 있도록 정보를 제공해주실 수 있을까요?

구체적으로 어떤 데이터를 드려야 할지 잘 모르겠습니다만, 이건 샌드박스앱에서 저희쪽 서버에 접속하는 요청에 대한 Timing 정보를 chrome inspect 에서 캡쳐한 내용입니다.
이것만 봐서는 initial connection 이 2.2분이 걸리는 것으로 보이는데 왜 initial connection이 2.2분이 걸리는지도 모르겠고 왜 이런 경우 항상 2.2분이 걸리는지도 모르겠습니다.

같은 요청인데 바로 응답이 오는 경우의 Timing 정보입니다.

서버 내부 설정 한번 확인해보시겠어요?

또한 서버 내부의 connection pool 등을 확인해보셨으면 합니다.


토스앱에서 발생했을 때의 요청을 vConsole 로 캡쳐한 내용입니다.


해당 요청에 응답한 서버쪽 로그이고

  1. 서버쪽에 connection 이 이루어진 것은 클라이언트에 찍힌 Start Time보다 2분 9초 뒤이다.
  2. 서버는 요청을 받고 5ms 만에 응답했다.
  3. 서버에 health check 등의 요청이 지속적으로 들어오는데 그것들은 문제 없이 바로바로 응답된다.
  4. 같은 요청을 chrome inspect 에서 복사하여 curl 로 보냈을 때는 바로 응답이 온다.
  5. 현재는 서버에 health check 외의 요청은 개발중인 토스앱밖에 없으므로 load 가 많은 상황이 아니다.

인 상황이라 WebView 쪽 이슈라고 생각하고 있었습니다.
서버 설정과 connection pool 등도 확인 해보겠습니다.
감사합니다.

지금 다시 하다보니 curl 로도 재현이 되는 걸 확인했습니다. curl 로 재현 되는 것을 보니 WebView 이슈가 아닌 것 같습니다. 테스트를 잘못 했네요.
서버쪽을 확인해보는 게 맞을 것 같습니다.
감사합니다.

1개의 좋아요

서버 설정 이슈였던 것으로 확인되었습니다. 너무 단호하게 서버 이슈가 아니라고 판단했던 것이 실수였네요.
도움 주셔서 감사합니다.

오 너무 다행입니다 정말 고생많으셨습니다 :folded_hands: