ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동기와 비동기란 무엇일까?
    개발/두서없이 공부한 개발공부 2023. 9. 4. 07:50
    728x90
    반응형

    흠.. 면접 때 질문했던 주제 중 하나인 동기와 비동기이다.

    대답하지 못했다. 근데 이걸 처음 접한 건 아니다.

    그냥 대답하지 못한 거다.

    그냥 공부를 안 했다고 하자. 멍청한 놈!!@!@!@


    동기 synchronous 란?

    데이터의 요청과 결과가 한자리에서 일어나는 걸 말한다고 한다.

     

    일단 실행하면 이건 컴퓨터가 터지는 일이 있어도 다음단계로 넘어가지 못한다.

    시킨 업무를 완수해야 다음 문장으로 넘어갈 수 있다.

     

    답을 주지 않으면 그냥 컴퓨터는 다른 일을 할 수 없는 것이다.

     


    비동기 Asynchronous 란?

    요과 결과가 동시에 일어나지 않는 것을 비동기라고 한다.

     

    한마디로 일단 이거대로 진행하고 결과가 나오지 않더라도 다른 작업이 가능한 것이다.

     

    병행작업이 가능하다 고 보면 될 것 같다.

     

     

     


    내가 비동기 이것 때문에 문제가 터졌었다.

    서버에서 요청을 하고 받아오지 않았는데 다음 코드가 작동해 버려서 데이터가 없는데 실행하려고 해서 Error가 계속 뜬 기억이 난다.

     

    하지만 이때는 그냥 비동기? 이게 뭐야? 하고 대충 에러만 잡고 넘어가버렸다.

     

    음.. 이제부터는 에러이유를 명확히 파악하고 글을 써야겠다. 

     


    그럼 코드로는 어떻게 표현될까?

     

    동기 synchronous 

    fuction num1(){
    	console.log("첫번째 출력이다 이놈아!")
        num2();
    }
    
    fuction num2(){
    	console.log("두번째 출력이다 이놈아!")
        num3();
    }
    
    fuction num3(){
    	console.log("세번째 출력이다 이놈아!")
        num3();
    }
    
    num1();
    //첫번째 출력이다 이놈아!
    //두번째 출력이다 이놈아!
    //세번째 출력이다 이놈아!

    비동기 Asynchronous 란?

     

    function num1(){
        console.log('num1');
        num2();
    }
    
    function num2(){
        setTimeout(function(){
            console.log('num2');
        }, 0);
        num3();
    }
    
    function num3(){
        console.log('num3');
    }
    func1();
    /*
    실행결과
    num1
    num3
    num2
    */

     

    일단 글작성은 여기까지 다음 글에서 이어서 하겠다.

    728x90
    반응형
Designed by Tistory.