- [JavaScript] 짐코딩 - (1) 동기와 비동기는 뭘까?2024년 11월 06일
- Song hyun
- 작성자
- 2024.11.06.:17
728x90반응형[JavaScript] 짐코딩 - (1) 동기와 비동기는 뭘까?
-공부를 할 때에는 내 나름의 방식으로 정의를 하는 것이 중요하다.
(1) 동기(Synchronous): 답변(결과)을 기다리는 것
(2) 비동기(Asynchronous): 답변(결과)을 기다리지 않는 것
- 만약 수박을 트럭에 싣는 일을 한다고 생각해보자.
- 동기식이라면, 수박을 트럭에 싣고, 상대방이 잘 확인했는지를 확인할 때까지 가만히 있는것. // 기다리는 동안에는 일을 하지 않는다.
- 비동기식이라면, 수박을 트럭에 싣고, 상대방의 상태를 확인하지 않고 계속해서 일하는 것
- 비동기식은 답변을 기다리지 않고, 바로바로 실행하기 때문에 효율이 좋다. 하지만 답변을 확인할 수 없다.
동기 비동기 장점 업무가 단순하다 자원을 효율적으로 사용 단점 자원을 비효율적으로 사용 업무가 복잡해질 수 있다 - 동기식에서 답변이 올 때 까지 기다리는 것 = 블로킹(Blocking)
- 비동기식에서 답변이 올 때 까지 기다리지 않는 것 = 논블로킹(Non-Blocking)
*비동기가 더욱 효율적이라면, 비동기로만 하는 게 나을까?
- 결과를 반드시 확인해야 하는 일이라면 동기식으로 코드를 작성해야 한다. (중간에 결과를 확인해야 하거나, 결과가 다음 행동에 영향을 주는 일!)
시나리오 코드
-아래의 코드에서 asyncFunction()를 실행시키면, 두번째 작업이 가장 마지막에 출력된다.
-이는 첫번째->세번째->두번째 식으로 실행된다는 걸 알려준다.
-비동기는 이처럼 다른 행위를 기다리지 않고 실행된다.
*콜백 함수: 다른 함수의 파라미터로 넘겨지는 함수! (asyncFunction에서는 console.log를 실행시키는 함수가 여기에 해당된다.
// 동기 프로그래밍 function syncFunction(){ console.log('첫번째 작업'); console.log('두번째 작업'); console.log('세번째 작업'); } syncFunction(); function asyncFunction(){ console.log('첫번째 작업'); setTimeout(function(){ consol.log('두번째 작업'); },1000) // setTimeout -> 자바스크립트 내장 함수 중 하나로 웹 API에서 지원함 // 일정 시간이 자는 뒤에 특정 작업을 수행해라는 함수 console.log('세번째 작업'); } asyncFunction();
728x90반응형'HTML,CSS, JS > JavaScript' 카테고리의 다른 글
[JavaScript] 짐코딩 - (3) Promise 타입이란? (3) 2024.11.06 [JavaScript] 짐코딩 - (2) 콜백 함수란? (0) 2024.11.06 [JavaScript] 31. JavaScript를 사용한 게시글 상세보기 기능 만들기(2) (0) 2024.08.29 [JavaScript] 30. JavaScript를 사용한 게시글 상세보기 기능 만들기(1) (0) 2024.08.28 [JavaScript] 29. JavaScript를 사용한 글쓰기 기능 만들기 (0) 2024.08.28 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)