일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 게임 개발 독학
- Unity 독학
- 유니티
- 유니티 대화
- 크래프톤
- unity 설치
- unity 개발
- 게임 개발
- 유니티 미연시
- 유니티 스토리
- unity 게임 개발
- 크래프톤 정글 게임 랩
- 크래프톤 정글 게임랩
- 게임 독학
- 오픽 im1
- node.js
- unity 강의
- 크래프톤 정글랩
- protobuf 란?
- Unity Chess
- ETRI 연구연수
- 유니티 독학
- 크래프톤 게임 정글 랩
- unity 공부
- unity
- 유니티 체스
- 오픽 im1 5일
- 유니티 퀘스트
- unity 게임
- protobuf란
- Today
- Total
하참이의 아이디어노트
(3) 비동기 프로그래밍 본문
비동기 프로그래밍이란? 프로그램이 작업을 동기적으로 수행하는 대신, 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있도록 하는 프로그래밍 패러다임입니다.
쉽게 설명하면 프로그램의 작업 1의 수행 대기를 기다리는 동안 작업 2를 하도록 하는 프로그래밍 입니다.
예를 들면 저희가 가스레인지로 라면을 끓여먹는다고 생각해봅시다.
라면을 끓이는 순서는
과정 1 물을 끓인다.
과정 2 면과 스프를 넣고 기다린다.
과정 3 다 익으면 먹는다.
라고 합시다. 제가 라면을 끓이려고 과정 2를 수행중에 제 누나가 제게 라면을 끓여 달라 합니다. 이미 면과 스프를 넣고 기다리는 도중에 물을 추가하고 면과 스프를 넣으면 맛이 없어지므로 새로 끓이는 방법을 선택합니다. 다음 방법 중 어떤 방법이 가장 빠를까요? (빨리 끓이지 않으면 누나에게 맞게 되므로 가장 빠른 방법이 최고의 결과라 가정합시다.)
1. 과정 2, 3을 다 수행하고 새로 끓여준다.
2. 다른 냄비를 가져와 과정 1, 2, 3을 따로 수행한다.
당연히 2가 가장 빠른 방법입니다. 라면을 끓이는 동안은 기다리는 시간이 있고, 그 시간동안 다른 행동을 할 수 있음에도 쉬고 있는것은 비효율적이지요. 컴퓨터 역시 마찬가지 입니다.
다음 내용은 Node.js를 공부하기 위하여 알아둬야 할 부분이나 지금은 가볍게 읽고 넘어가신 뒤, 다음에 다시 읽어도 좋은 부분입니다.
비동기 프로그래밍 방식에는 콜백, 프로미스, async/await 구문 3가지가 대표적입니다.
1. 콜백
프로그래밍에서 콜백(callback) 또는 콜백 함수(callback function)는 다른 코드의 인수로서 넘겨주는 실행가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.
회사의 상사가 부재중일 때 부하직원이 거래처 A에게 연락을 받았습니다.
"거래처 A에서 연락왔다고 전해주세요~"
부하직원의 일에는 상사에게 거래처 A에게 연락이 왔다고 전하는 일이 추가되었습니다.
그러자 거래처 B에서도 연락이 왔습니다.
"거래처 B에서 3시에 뵈러 가겠다고 전해주세요~"
부하직원의 일에는 상사에게 거래처 B가 3시에 방문한다는 것을 전하는 일이 추가되었습니다.
부재중인 상사가 복귀했습니다. (이벤트 발생!)
부하직원은 상사에게 지금까지 있었던 일들을 전부 보고합니다. 여기서 부하직원은 콜백함수의 역할을 한 것입니다.
2. 프로미스
3. async/await