Page 17 -
P. 17
3.1 비동기 프로그래밍 No DE .js Mi C ros E rvi CE s
일반적으로 파일 I/O나 네트워크 I/O는 메모리 I/O보다 현저히 느립니다. 예를 들어 파일 4개
의 입출력을 하나씩 처리한다면, 처리 시간은 길어지고 CPU의 사용 효율성은 떨어집니다. 이를
개선하고자 비동기 프로그래밍을 사용하는데, 순차적으로 I/O를 처리하는 것이 아니라 I/O 처리
요청만 운영체제에 전달하고 CPU는 다른 연산을 수행합니다. I/O 처리가 완료되면 운영체제에
서 I/O 처리를 완료했다는 메시지를 전달받아 이후 작업을 처리하는 방식입니다.
그림 3-1 동기와 비동기의 차이
동기
비동기
참고로 비동기 프로그래밍은 I/O 처리 요청 순서와 별개로 처리를 완료하는 순서는 제각각입니
다. 따라서 개발자는 보장되지 않는 I/O 완료 처리를 고려해 프로그래밍을 해야 합니다.
Node.js는 모든 함수와 모듈이 비동기 프로그래밍을 기본으로 합니다. 동기 방식 함수들이 약간
있지만 제한적이기 때문에 비동기 프로그래밍에 익숙해질 필요가 있습니다. 이때 주의할 점을 간
단한 코드를 작성하면서 알아보겠습니다. 다음 코드처럼 입력하고 실행합시다. 코드는 메모장, vi
에디터 등 사용하기 편한 텍스트 에디터에서 작성하면 됩니다.
Note 책에서는 기본적으로 윈도 명령 프롬프트를 사용해 실습합니다.
028
Microservices_07.indd 28 2018-02-09 오전 11:50:19