«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
Recent Posts
Recent Comments
관리 메뉴

뉴히의 개발 로그

동기와 비동기의 차이, 비동기프로그래밍의 필요성 본문

개발일지/TIL

동기와 비동기의 차이, 비동기프로그래밍의 필요성

뉴히 2023. 10. 19. 18:14

동기와 비동기의 차이에 대해 설명해주시고 비동기프로그래밍의 필요성에 대해 답변해주세요.

 

동기는 데이터 요청의 결과가 한자리에서 동시에 일어나는 것을, 비동기는 동시에 일어나지 않는 것을 말합니다.

말그대로 동기는 동기적으로 한 작업이 끝난후에 다음 작업을 진행할 수 있으며 비동기는 동기적이지 않게 요청에 대한 완료가 일어나기 전 다른 작업이 가능합니다.

비동기 프로그래밍이 필요한 이유는 요청에 대한 결과가 반환되기 전에 다른 작업을 수행할 수 있어서 자원을 효율적으로 사용할 수있습니다.

 

참고 답변 

핵심키워드: Async/await 콜백 헬(callback hell) 비동기 프로그래밍 방식에 필요성

 

"동기란 앞선 연산이 끝날 때 까지 기다렸다가 다음 연산이 순차적으로 실행되는 방식입니다. 반대로 비동기는 앞선 연산의 실행완료여부와 무관하게 다음 연산이 비순차적으로 실행되는 방식을 말합니다. 그렇기 때문에 두 프로그래밍을 비교했을 때 비동기 프로그래밍이 소모시간이 훨씬 적고, 빠릅니다. 앞선 연산이 완료될 때 까지 대기하느라 낭비되는 시간이 없기 때문입니다.

하지만 비동기적 프로그래밍에도 문제점은 있습니다. 바로 '콜백지옥' 입니다. 비동기 프로그래밍은 결과를 처리하기 위해서 콜백함수를 호출해서 사용하는데, 이 콜백함수들이 중첩되어서 사용하다보면 코드가 초과 부등호 '>' 모양이 되면서 가독성이 떨어지고 유지보수가 어려워집니다. 이런 현상을 막기위해 등장한 것이 ES7의 키워드 async / await입니다. "