뉴히의 개발 로그
동기와 비동기의 차이, 비동기프로그래밍의 필요성 본문
동기와 비동기의 차이에 대해 설명해주시고 비동기프로그래밍의 필요성에 대해 답변해주세요.
동기는 데이터 요청의 결과가 한자리에서 동시에 일어나는 것을, 비동기는 동시에 일어나지 않는 것을 말합니다.
말그대로 동기는 동기적으로 한 작업이 끝난후에 다음 작업을 진행할 수 있으며 비동기는 동기적이지 않게 요청에 대한 완료가 일어나기 전 다른 작업이 가능합니다.
비동기 프로그래밍이 필요한 이유는 요청에 대한 결과가 반환되기 전에 다른 작업을 수행할 수 있어서 자원을 효율적으로 사용할 수있습니다.
참고 답변
핵심키워드: Async/await 콜백 헬(callback hell) 비동기 프로그래밍 방식에 필요성
"동기란 앞선 연산이 끝날 때 까지 기다렸다가 다음 연산이 순차적으로 실행되는 방식입니다. 반대로 비동기는 앞선 연산의 실행완료여부와 무관하게 다음 연산이 비순차적으로 실행되는 방식을 말합니다. 그렇기 때문에 두 프로그래밍을 비교했을 때 비동기 프로그래밍이 소모시간이 훨씬 적고, 빠릅니다. 앞선 연산이 완료될 때 까지 대기하느라 낭비되는 시간이 없기 때문입니다.
하지만 비동기적 프로그래밍에도 문제점은 있습니다. 바로 '콜백지옥' 입니다. 비동기 프로그래밍은 결과를 처리하기 위해서 콜백함수를 호출해서 사용하는데, 이 콜백함수들이 중첩되어서 사용하다보면 코드가 초과 부등호 '>' 모양이 되면서 가독성이 떨어지고 유지보수가 어려워집니다. 이런 현상을 막기위해 등장한 것이 ES7의 키워드 async / await입니다. "
'개발일지 > TIL' 카테고리의 다른 글
RESTFul API란 (0) | 2023.10.30 |
---|---|
프레임워크(Framework)와 라이브러리(Library)의 차이 (0) | 2023.10.20 |
상태관리를 왜 할까요? 그리고 평소 state 관리는 어떻게 하시나요? (0) | 2023.10.11 |
Javascript 호이스팅이란? (0) | 2023.10.10 |
가상돔 (Virtual DOM)과 리얼돔 (Real DOM)의 차이 (0) | 2023.10.06 |