Server Side JavaScript

동기와 비동기 프로그래밍

본 수업에서는 노드 프로그래밍의 핵심인 비동기적인 프로그래밍에 대한 개요를 살펴봅니다. 

 

댓글

댓글 본문
  1. 21.07.21 done
  2. 굼벵이
    완료
  3. 김준
    두 개념에 대해 너무 쉽게 잘 알려주셔서 감사합니다!
    매번 숙제였는데 감사합니다.
  4. 미래를이끌개발자
    동기, 비동기에대해서 늘 궁금했는데 쉬운예제로 이해할수 있었습니다. 정말 감사합니다!
  5. jojo
    완료
  6. 이동기
    저 친구는 제 동기에요
  7. 이수하
    완료! 학교에서 배운 운영체제 내용이 나오네요 재밌습니다!
  8. 연수아빠
    비동기 프로그래밍에 대한 개념적인 이해가 확실하게 되었습니다.
  9. 0808 fin
  10. 이승우
    20180802 동기와 비동기에 대해서 이해가 잘 되었습니다 :)
  11. 김혜경
    6.05
  12. antil
    재미있어요 감사합니다.
  13. 지상몬
    2018/04/17 수강완료했습니다 =)
  14. 박인호
    1-9
    수강완료.
    비동기는 시작과 동시에 다음작업으로 넘어가고 비동기적 작업이 끝나면 알려준다.
  15. 090922
    12.19완
    동기 차례차례 끝내고 넘어감
    비동기 백그라운드로 넘기고 넘어감
  16. Byungsoo Kim
    감사합니다.
  17. 김지원
    1.5배속으로 들으면 딱 좋아요! 어려워하는 분들을 위해 egoing님께서 일부러 천천히 해주시나봐요!
    대화보기
    • 내이름은이한샘
      영상강의 감사합니다~!!
    • 오빠는다르다
      감사합니다~!!!
    • Mondayrabbit
      하악.. 목소리가 제귀엔 솔솔솔 자장가같이 가르쳐 주고있어요 ㅠ 근데 어려운건데 자세히 설명해서 잠을 참고 잘 보고있습니다 ㅋ 감사함당
    • ㅎㅎ
      12:15,
    • Seo Yun Seok Tudoistube
      이렇게 어려운 주제를 이렇게 자세히 설명을 받을 수 있어서 행복합니다. 감사합니다^_____^!!!
    • Steven Spark
      좋다.. 하악..
    • 노드마스타
      강의 내용 하나하나가 정말 큰 도움이 되고 있습니다. 감사합니다!!
    • Fang
      data.text 로파일이름을 보관했다거나 encoding 의 spell을 틀리게 입력한 경우입니다.
      대화보기
      • 동기 비동기는 이해가 쉬웠는데
        콜백이라는놈이 뭔지는 알아도 필요성과 유용성 이해하는게 좀 어려운거 같아요
      • 신입1
        재밌네요 감사합니다
      • Sukjae Lee
        감사합니다.
      • 무카차파
        정말 잘듣고 있어요 감사합니다. egoing님! :)
      • spacemonkey
        인자값으로 encoding 정확하게 써주셨나요? 그 부분에 오타가 있으신것 같습니다.
        대화보기
        • {encoding:'utf8'} 을 오타 없이 잘 입력했는지 확인해 보시기 바랍니다.
          대화보기
          • Mille
            readFileSync로 파일을 읽어들인후 출력하면 정상출력되는데


            readFile로 파일을 읽어들인후 console.log로출력하면

            <Buffer ef bb bf 68 65 6c 6c 6f 0d 0a>

            이런식으로 출력이됩니다. 뭐가문제인건가요?
          • 강건우
            강의 최고! 감사합니다
          • sean
            의도치않게 글이 너무많이써졌네요 아래에... 죄송합니다
            이거 비밀번호를 막지정해서 지우지 못하고 있는데 이고잉님 확인하시면 글 지워주실수있으신가요 ㅠㅠ..
            여러분 죄송합니다 실수로 그만..
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • sean
            일단 동기는 순서대로 일을 처리하지 만약에 동기화로 Async 의 코드를 실행시켰다면 2가 나오고 fs.readfile 이 함수가 내부적으로 일을 다 처리할떄 까지 console.log(4)는 신경을 안쓸거야 그리고 저 일이 다 처리가 된다음에 이제 console4를 처리하겠지. 근데 비동기는 저런 작업같은게 있으면 다른데로 줘버린다고 생각해 그러면
            다른데서 저게 처리가 되고있겠지 근데 나는 저걸 처리안하고 콘솔 4부터 처리하는거야. 그리고 이번에서는 파일을 읽는 모듈을 배웠는데 파일을 읽는 모듈을 사용하려면 require로 fs라는 파일시스템 모듈을 불러와야한다.
            그리고 fs라는 변수에 저걸 넣으면 fs변수로 파일입출력에 있는 메소드들을 사용할수가 있는거지
            그리고 다큐먼트에가서 저 메소드는 어떻게 쓰는건가 본다음에 인자들을 각각 맞게 지정해주면된다..
            복습개꿀
          • fasdgoc
            대화보기
            • 13242
              Async Call은 무조건 다른 것들 실행이 다 끝난 다음에 처리되나요?
            • 보보
              동기와 비동기 2장 14분 20초 경에 비슷한 설명을 해주셨는데
              개인적으로는 그런 설명이 더 와닿는것 같습니다.
              파일 읽는데 20분이 걸리는데 동기방식이면 그 동안 아무런 일도 못하니
              비동기 방식으로 처리해야 한다는 말씀이요ㅎㅎ
              대화보기
              • 보보
                비동기 설명을 이런식으로 하면 어떨까요?

                빨래 설거지 청소 예를 들었는데 대행업체에 위임하는 예보다
                빨래 할때 세탁물을 세탁기에 넣고, 세탁 버튼을 누른 뒤 세탁이 완료되기 까지 시간이 많이 남는데,
                그 시간동안 동기방식이면 설거지를 할 수 없고 그럼 자원이 낭비되겠지요.
                그런 낭비를 막기 위해서 비동기적 처리가 필요한거구요.

                설거지도 마찬가지로 식기세척기를 이용한다면 식기세척기가 돌아가는 동안 마찬가지로 청소를 할 수 있겠죠.
                그리고 빨래가 다 됐을때는 세탁기가 다 됐다고 소리로 알려주니 그 소리를 듣고 다시 돌아가서 세탁물을 가지고와 널면되니 동기적으로 하나씩 처리하는 것보다 말씀하신것처럼 순서가 상관없는 이런 작업에서는 비동기적 방식이 여러 작업을 유휴자원 없이 효율적인 처리가 가능하기 때문에 선호되는게 아닌가 싶습니다.

                개인적으로는 위임에 포커스를 두는 것보다 자원의 활용 면에서 포커스를 두는게 더 맞지 않나 생각합니다. 자원을 최대한 효율적으로 사용해야 프로그램도 빠르니까요.

                좋은 강의 항상 감사드리며 잘 보고 있습니다!
              • Eric Yong Yeon Kim
                비동기 설명 아주 재미있습니다.. 안드로이드나 아이폰에 주로 비동식의 프로그램 중요성을 조금 포함해주시면 좋을거 같습니다. 아무래도 클라언트 엔지니어 꿈꾸느 분을 위해
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기