ian의 개발일기장

7. 동기와 비동기 (Sync and Async) 본문

Front-End/Node.js

7. 동기와 비동기 (Sync and Async)

ian90 2018. 8. 29. 00:31

1. 정의


동기(Synchronous) - 줄여서 Sync 라고 하며, 일을 순차적으로 해결해나간다.


비동기(Asynchronous) - 줄여서 Async, 해야 할 일을 위임하고 기다린다.




2. 예제


동기와 비동기를 이해하기 위해서, nodejsd 내장모듈인 File System을 이용해보자.


File System이라는 내장모듈에는 readFile 과 readFileSync 라는 메소드들이 있다. fs.readFileSync가 동기함수이고, fs.readFile은 비동기 함수이다. 



공식문서를 보면,  사용법이 잘 나와있다. readFileSync는 첫번째 인자는 path, 두번째 인자는 option으로 encoding 객체를 넣을수 있고 생략가능하다. path에 있는 파일의 내용을 리턴하는 메소드이다.




먼저 폴더에 sync_async.js 와 data.txt 파일을 만들자.


  • data.txt에 사진과 같이 입력해주자.


  • sync_async.js에 사진과 같이 입력해보자.



모두다 입력 후 터미널에서 실행을 하면 이렇게 나온다.



순차적으로 실행되는것을 알 수 있다. 이것이 바로 동기적으로 작동한것이다.


이번엔 비동기를 작성해보자.
  • sync_async.js를 사진과 같이 바꿔보자.


모두다 입력후 터미널에 실행해보자.


2가 실행되고, readFile의 callback을 요청후, 4가 실행되고, 요청을 처리한후 callback이 실행되서 3과 console.log(data)가 보인다.

이것이 바로 비동기이다.



3. 정리


  • 실행이 끝나고, 다음 코드가 실행되는 것 - 동기
  • 이전 실행이 끝나는 것을 기다리지 않고, 다음 코드를 먼저 진행시키는것 - 비동기


출처 - 생활코딩https://bluekms21.blog.me/10171193149, 노드공식문서


'Front-End > Node.js' 카테고리의 다른 글

9. Express - 간단한 웹어플리케이션 만들기  (0) 2018.08.30
8. Express 도입 및 설치  (0) 2018.08.29
6. callback function  (2) 2018.08.28
5. npm  (0) 2018.08.25
4. 모듈  (0) 2018.08.25