Skip to content

함수 내부에서 비동기 처리 시에 return이 선행되는 문제 #565

Answered by woohm402
JiyeonP asked this question in Q&A
Discussion options

You must be logged in to vote

저도 작년에 정확히 같은 고민을 했었는데요, 우선 안타깝게도 그런 findIdExist 함수는 만들 수 없습니다.

어떻게 할 수 있을지에 앞서 뭘 하려고 하고 있는 건지, 비동기가 뭔지 생각해 봐야 합니다.
그런 일이 가능하다고 가정하고 우리의 프로그램이 어떻게 돌아갈지 생각해 보겠습니다.

findIdExist가 실행되면, 그 함수는 서버에 API를 호출해본 다음 잘 됐는지 에러가 터졌는지 체크합니다.

조금 더 엄밀히 써 보겠습니다.

findIdExist가 실행되면, 그 함수는 서버에 API를 호출해본 다음 응답이 돌아올 때까지 기다렸다가, 잘 됐는지 에러가 터졌는지 확인하여 결과를 boolean으로 리턴합니다.

그럼 findIdExist는 실행되는 데에 시간이 꽤 걸리겠군요. 편의상 1초 소요된다고 가정하겠습니다. 그럼 findIdExist를 호출한 친구도 호출 이후 1초동안 아무것도 못할 거고, 그걸 호출한 친구도 1초 동안 아무것도 못할거고, ..., 결국 우리의 사이트가 1초동안 얼어있겠군요

바로 세미나 3 시작할 때 말씀드렸던, "비동기를 동기적으로 처리하면 안 되는 이유" 입니다. 우리는 비동기는 비동기 작업으로서 따로 핸들을 해 줘야 하고, 동기 코드인 것처럼 디자인하면 안 된다는 것을 공부했습니다. 그리고 이를 해결하기 위해 Promise 패턴이 나왔다는 것도 공부했었죠!

요약하자면, 그런 패턴이 불가능하도…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by woohm402
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
React React 관련 내용
2 participants