서버 개발자의 프론트에서 api 연동 시 타임아웃 해결법 | 오늘의 맛집은? 타코몽

Sanghwa Lee·2022년 1월 25일
8
post-thumbnail

문제 상황

오늘도 api 공장을 돌리다가 열심히 만든 api를 서버에 올리고 프론트 분들께 완성되었다고 말씀드렸는데 연동에 실패하셨다는 메시지가 왔다.

비동기로 success 기다리다가 타임아웃 에러 떠서 안됐어요 ㅠㅠ

이 api는 node.js에서 만들어졌고, 엄청나게 많은 일을 한다. 대충 (1) 음성 파일 리스트의 링크를 받아와서 (2) 그 링크들에 접속해 확장자를 바꾸고 (3) 바꾼 파일들을 다시 올리고 (4) 올린 링크들에 접속해 stt하고 (5) 그 결과를 추론 서버로 보내고(추론 서버의 api를 호출하고) (6) 반환받은 값을 DB에 저장한다. 이 과정이 동기식으로 처리되어야 해서 코드가 복잡해졌다. ㅠㅠ

그래서 타임아웃을 해결할 방법이 잘 떠오르지 않았다. 이걸 빠르게 처리할 수도 없고 그 더러운 코드를 다시 볼 자신도 없었다!!!

해결!

그때 인퍼런스 서버를 개발하고 있던 우리 팀원의 메시지..!

뤂 혹시 디코 가능하실까요?

그리고 아이디어를 주셨다. 프론트의 request를 받으면 잘 받았는지만 판단해서 바로 response를 보내고, 나머지 코드는 비동기로 알아서 처리되게 하는 방법이었다!

동기식 코드를 비동기 처리해야 하다니 ... 하면서도 어려웠지만 자잘한 에러를 고치니 잘 돌아갔다!!! 대단한 팀원 덕분에 오늘도 성장했다.

오늘의 맛집

신촌에 있는 '타코몽'이다.

타코야끼가 진짜 맛있다. 길거리에서 먹는 겨울 간식 타코야끼도 맛있는데 식당에서 파는 거라고 뭐가 더 맛있나? 라고 생각했는데 지인짜 맛있다. 저게 아마 1인분에 10개 추가해서 20갠데 걍 흡입했다. 빵이 뻑뻑하지도 않고 특유의 안 익은 느낌도 없고 문어는 쫄깃쫄깃하다. 세계 최강의 타코야끼 ㅠㅠ 맥주가 술술 들어갔다.

그리고 이맘때 한창 빠져 있었던 오코노미야끼!! 이곳 오코노미야끼는 엄청 두껍다. 타코야끼가 너무 맛있었어서 그만큼의 감동은 없었다. 그냥 낫배든데 오코노미야끼는 뭐든 맛있으니까 실패는 없는 느낌? 아마자 치즈가 계란에 섞여있어서 맛있었다. 다른 데에서 먹을 때는 꼭 치즈를 추가해야겠다는 생각을 했다.

자리는 3~4인이 앉는 테이블과 2인이 앉는 바테이블이 있었는데, 바테이블엔 사진처럼 피규어도 많고 소소한 게임기도 있고 쪽지도 남길 수 있고 무엇보다도 분위기가 좋았다. 코로나만 아니면 자정 시간대에 2차로 가면 좋겠당~

근데 오코노미야끼 집들은 다 웨이팅이 너무 길다. 이 날도 추운 야외에서 2시간은 웨이팅했고 집 와서 할 일 때문에 밤을 샜는데, 다음 날부터 거의 독감처럼 일주일을 앓았다. TMI: 그날부터 아픈 게 너무 무서워져서 밤을 새지 않게 됨

profile
맛집 보고 가세요 😀

8개의 댓글

comment-user-thumbnail
2022년 1월 25일

난 오늘 고등어 하나 먹고 코딩만 했는데 맛집을 갔다와서 벨로그를 써?

1개의 답글
comment-user-thumbnail
2022년 1월 29일

서버에서 데이터가 잘 처리 되지 않을때는 어떻게 프론트에서 에러핸들링을 해야하죠? 저런경우 잘 처리 되었는지 프론트에서 다시한번 요청을 보내는 형태가 좋지 않을까요? 저도 해결방법이 궁금하네요, 저는 3-way 핸드쉐이크를 모방하는 방식이 생각났는데, 더 좋은 해결방법이 있지 않을까 생각합니다.

1개의 답글
comment-user-thumbnail
2022년 1월 30일

같은 상황에서 저는 처리 시간이 오래 걸리는 API에 대해서 LeadTime을 여유롭게 설정 했었어요!
타코 맛있겠다..

1개의 답글