Generator, Co, Async 를 이용한 비동기 순차 실행시키기

Explanation

Generator, Co, Async(유틸리티 모듈) 를 이용한 비동기 순차 실행시키기.
(세가지 방법이라 묶어서 적었지만.. 사실 셋은 많은 차이점을 가지고 있습니다. Generator는 ECMAscript2015에서 정의된 표준이고, Co는 Node에서 Generator를 편하게 사용할 수 있는? 또는 그밖의 몇가지 기능들을 지원하는 모듈이며, 이 글에서의 Async는 node나 browser에서 사용할 수 있는 다양한 메서드들을 지원하는 유틸리티 모듈입니다.

Generator (link: MDN) : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Generator
Co : https://github.com/tj/co
Async : https://caolan.github.io/async/

1. Generator

2. Co

3. Async

Leave a Reply

  1. sofkaints

    웹앱에서 본인인증을해야 캘린더 정보를 볼수 있는데
    퀵스타터는 실행하면 주는 url접속후 인증하고 뱉어내는 code를 입력해야 정보가 나옵니다.
    다른 유저가 이 기능을 쓰려면 어떻게 해야하죠?
    url을 클라한테 보내줘서 인증하게 해야하나요?

    간단히 말해 응용방법을 모르겠습니다 ㅠ

    • 안녕하세요, sofkaints님.
      실제로 서비스에서 사용하시려면 몇가지 수정이 필요할 것 같습니다. sofkaints님이 말씀하신 것처럼 구글 사용자 인증을 위해서 (문서상 변수)’authUrl’로 클라이언트에서 새로 페이지를 띄우거나 리다이렉션 시켜서 사용자가 인증절차를 걸칠 수 있게 해야 합니다. 그리고 인증이 완료되면 구글 API 프로젝트에서 사용자 인증에서 ‘승인된 리디렉션 URI’부분에 등록된 URI로 리다이렉션이 되는데 이때 스트링 파라미터로 ?code=… 라는 값이 함께 옵니다.
      ‘승인된 리디렉션 URI’에 등록된 URI의 로직에서는 스트링 파라미터로 code가 있는지 확인하고, 있다면 code를 이용해서 ‘getToken’ 하여 토큰을 만들어서 ‘storeToken’ 토큰을 등록하고 다음 이벤트 로직을 실행하면 됩니다.
      짧게 글로만 적으려니, 더 복잡하게 느껴지는거 같네요. 조금이나마 도움이 되었을지 모르겠습니다…
      댓글 감사합니다 :)

  2. 잘봤습니다!!

    글 정말 잘봤습니다 근데… 한대로 그대로 따라했는데
    Error: ENOENT: no such file or directory, mkdir

    이런오류가 계속 나네요.. 혹시 왜그런지 아세요 ?ㅠㅠ

    • 안녕하세요? 댓글 확인이 늦었네요.
      파일이나 디렉토리를 찾을 수 없다는 것으로 보아, 예제에서 디렉토리 파일을 읽어오는 부분.
      ‘ var TOKEN_DIR= ‘ 토큰을 저장할 디렉토리를 선언하는 부분이나
      ‘ client_secret.json ‘ 파일의 위치에서 문제가 생긴게 아닐까 싶습니다.
      ‘client_secret.json’ 파일을 올바른 디렉토리에 넣었는지, 또는 파일 디렉토리 경로를 수정하시거나
      생성하신 서버의 환경에 맞게 토큰을 저장할 디렉토리(‘TOKEN_DIR’)를 새로 지정하시면 되지 않을까 싶습니다.