강의 설명 중에 헷갈리는 것이 있네요
49
작성한 질문수 26
2:31 부터 동기, 비동기 설명이 서로 반대로 되어있는 거 같은데 혹시 제가 잘못 이해하고 있는걸까요?
저는 설명해주신거랑 반대로 이해하고 있긴 해서요
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. haseung님.
동기와 비동기 개념이 반대로 설명된 것처럼 느껴지셨다면, 아래 기존 답변이 관련 내용을 이해하는 데 도움이 될 수 있습니다.
call stack 표현이 잘못표현된것이 아닌가요?
동기 처리는 앞선 작업이 끝날 때까지 다음 작업이 진행되지 않고 순서대로 실행되는 방식입니다. 반면 비동기 처리는 시간이 걸리는 작업을 시작한 뒤 결과를 기다리지 않고 다음 코드를 실행하며, 작업이 완료되면 콜백·Promise·이벤트 등을 통해 후속 처리를 진행합니다.
예를 들어 다음 코드에서 console.log("D")는 동기 코드이므로 비동기 작업을 등록한 직후에도 먼저 실행됩니다.
setTimeout(() => {
console.log("A");
}, 0);
Promise.resolve().then(() => {
console.log("B");
});
console.log("D");
일반적인 출력 순서는 다음과 같습니다.
D
B
A
setTimeout과 Promise 자체가 호출된 순간 바로 실행되는 것이 아니라, 각각 작업 큐에 등록됩니다. 현재 실행 중인 동기 코드가 모두 끝난 뒤, Promise의 후속 작업인 마이크로태스크가 먼저 실행되고 이후 타이머 콜백이 실행됩니다.
따라서 핵심은 다음과 같습니다.
- 동기: 현재 작업이 끝날 때까지 다음 작업이 기다림
- 비동기: 작업을 시작한 뒤 결과를 기다리지 않고 다음 작업을 진행함
- 비동기라고 해서 먼저 실행되는 것은 아님: 동기 코드가 모두 끝난 후 정해진 우선순위에 따라 실행됨
- Next.js에서도 동일함: 서버 컴포넌트의 데이터 fetching 등은 비동기로 처리할 수 있지만, 해당
await를 만난 코드의 흐름에서는 결과를 기다린 후 다음 줄이 실행됩니다
강의의 어느 문장이나 예시가 반대로 느껴졌는지 코드 또는 강의 화면을 함께 남겨주시면 더 정확히 확인할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
기존의 완성된 CRUD의 Build.gradle에 security관련 dependency를 추가하면 문제가 생깁니다.
0
17
2
시작하기전에 질문 드립니다.
0
26
2
tsconfig.app.json 파일 설정(경로 별칭 옵션) 관련 질문입니다.
0
30
2
output style이 안나와요
0
26
2
강의제목에 10/15일 삭제라고 나와있는데,
0
41
1
CRA ? 질문입니다
0
40
1
교제 노션 복제 방법 문의
0
42
2
output style은 뭘선택하나요?
0
36
1
agent team vs shrimp task manager
0
49
2
rules 질문
0
40
2
강의 커리큘럼 관련 질문입니다.
0
48
1
eslint 플러그인 설정
0
56
2
onSettled 질문드립니다.
0
58
2
shrimp task 관련 질문
0
53
2
계획 단계
0
46
2
저는 클로드 로고가 안떠 있어요 ㅜㅜ
0
47
2
terminl을 사용해서 cursor 명령어 입력하는데 커서가 실행되다가 자동으로 꺼집니다 왜그럴까요?
0
41
2
커서가 강의화면이랑 달라요!
0
44
2
스크립트 영상 미일치
0
68
3
감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.
0
51
2
강사님 플랜보드 보면서 느끼는건데
0
57
2
테마분류 세부화 관련 질의
0
46
2
tdd green agent 에서 문의 드립니다.
0
47
2
Vercel 사용법
0
228
2





