BaGyun
빠균's 개발노트
BaGyun
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Today I Learned (44)
      • 오류 (8)
      • JavaScript (15)
      • TypeScript (9)
      • NodeJS (0)
      • NestJS (0)
      • Database (3)
      • ORM (1)
      • 알고리즘 (2)
      • 개인공부 (4)
      • Deploy (0)
      • Git (1)
    • 개인프로젝트 (4)
    • 알고리즘 (14)
      • 프로그래머스 (14)
    • 면접질문 (5)
    • 회고 (3)

인기 글

반응형

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
BaGyun

빠균's 개발노트

면접질문

[Q&A] 동기와 비동기

2023. 2. 14. 19:47

자바스크립트에서 동기(Synchronous)와 비동기(Asynchronous)는 코드의 실행 순서와 관련된 개념입니다.

동기(Synchronous)?

동기적으로 코드를 실행하면, 코드는 순차적으로 실행되며, 이전 코드의 실행이 끝나기 전에는 다음 코드가 실행되지 않습니다. 이 때문에, 코드가 실행되는 동안 다른 작업을 할 수 없습니다. 예를 들어, 다음의 코드는 동기적으로 실행됩니다.

console.log('start');
console.log('middle');
console.log('end');

위 코드를 실행하면, 'start'가 출력된 이후에 'middle'과 'end'가 순차적으로 출력됩니다. 이 때, 'middle'와 'end'는 'start'가 출력된 이후에 실행됩니다.

비동기(Asynchronous)?

비동기적으로 코드를 실행하면, 코드는 순차적으로 실행되지 않고, 먼저 실행된 코드의 결과를 기다리지 않고 바로 다음 코드를 실행합니다. 이 때문에, 코드가 실행되는 동안 다른 작업을 할 수 있습니다. 예를 들어, 다음의 코드는 비동기적으로 실행됩니다.

console.log('start');
setTimeout(() => console.log('middle'), 1000);
console.log('end');

위 코드를 실행하면, 'start'가 출력된 이후에 'end'가 출력됩니다. 그리고 1초 후에 'middle'이 출력됩니다. 이 때, 'middle'은 setTimeout 함수를 호출한 이후에 바로 실행되지 않고, 1초 뒤에 실행됩니다. 따라서, 'end'가 출력된 이후에 'middle'이 출력됩니다.

비동기적인 코드를 실행할 때는 콜백(callback) 함수, Promise 객체, async/await 구문 등을 사용하여 코드의 실행 순서와 결과를 다룰 수 있습니다. 이러한 비동기적인 기술은 웹 애플리케이션에서 서버와의 통신, 파일 업로드/다운로드, 애니메이션 등에서 자주 사용됩니다.

'면접질문' 카테고리의 다른 글

[Q&A] Const를 사용했지만, 값을 변경할 수 있는 상황은?  (0) 2023.04.18
[Q&A] 변수의 생성과정과 호이스팅에 대해 설명해라  (0) 2023.02.14
[Q&A] 프로세스, 스레드, 멀티스레드란?  (0) 2023.02.14
[면접질문] NodeJS 및 NestJS 신입 질문모음  (0) 2023.02.07
    '면접질문' 카테고리의 다른 글
    • [Q&A] Const를 사용했지만, 값을 변경할 수 있는 상황은?
    • [Q&A] 변수의 생성과정과 호이스팅에 대해 설명해라
    • [Q&A] 프로세스, 스레드, 멀티스레드란?
    • [면접질문] NodeJS 및 NestJS 신입 질문모음
    BaGyun
    BaGyun

    티스토리툴바