블록체인 기반 핀테크 및 응용 SW 개발/Javascript

    블로킹/논블로킹, 스레드 - 싱글/멀티 스레드 정리

    동기나 비동기에 대해서는 많이 접해봤는데 이번에 블로킹과 논블로킹 개념을 조사하라는 과제를 통해 해당 개념을 처음 접하게 되었다. 그래서 이해한 내용을 토대로 블로그에도 다시한번 정리해보려고 한다. 1. 블로킹, 논블로킹 블로킹 : 자신의 작업을 하다가 다른 작업 주체가 하는 작업이 시작되면 끝까지 기다렸다가 다시 자신의 작업을 시작한다. 즉, 결과가 올때까지 작업을 중단하고 대기한다. => 설계가 간단하지만 경우에 따라 효율이 떨어짐 논블로킹 : 다른 주체의 작업과 상관없이 자신의 작업을 계속한다. => 설계가 복잡하지만 경우에 따라 효율이나 반응속도가 더 뛰어남 언뜻 보면 다른 작업을 기다렸다가 작업을 하는지 여부에 따라 개념이 나뉘는 동기/비동기와 비슷해보인다. 내가 이해한 두 개념의 차이는 다음과..

    과제를 통한 async, await 연습(+호이스팅, callback, promise 맛보기)

    과제를 통한 async, await 연습(+호이스팅, callback, promise 맛보기)

    저번 글에서 setTimeout을 해부하게 된 건 전적으로 요 과제 때문이었다. 교수님께서 내가 차면 상대방이 자동으로 1초 뒤에 차게끔 코딩해보라고 하셔서 딜레이를 사용했고, 승부차기 특성상 일정 점수 이상을 먼저 따면 중간에도 승패가 갈리게끔 코딩하고 싶었다. 그래서 중간중간 점수를 확인하면서 승패가 안 났을 때만 버튼을 활성화시키도록 했는데, 그냥 setTimeout(function , 1000), setTimeout( , 2000) 이런 식으로 순서를 주려고 했더니 위에서 딜레이를 실행하는 동안 밑에서 현재 점수로 검사하고 지맘대로 게임을 끝내버린 후 점수를 누적시켜서 다시 검사하더라.... 그래서 한국 차고 일본 차는 중인데 갑자기 한국 승! 나오더니 다시 일본이 차고 경기를 이어가거나 비겼다고..

    [JavaScript] setTimeout()의 형식과 익명함수, arrow 함수 공부

    [JavaScript] setTimeout()의 형식과 익명함수, arrow 함수 공부

    저번 승부차기 만들기 과제에서 상대가 1초 뒤 자동으로 공을 차게 하기 위해 setTimeout()을 사용했는데, 아직 setTimeout의 형태가 손에 잘 익지 않아 복습 겸 정리를 해본다. 자바스크립트에서는 딜레이를 주기 위해 setTimeout()을 사용한다. 일정 시간 간격마다 실행하고 싶다면 setInterval()을 사용하는데, 클럭처럼 사용해도 될 것 같다. 나는 주로 setTimeout()을 사용할 것 같으니 구조를 분해하며 알아보겠다. setTimeout(function(){ console.log('dddd'); }, 1000); //1초 뒤에 콘솔 로그에 dddd를 출력하는 코드 setTimeout 함수의 기본형은 위와 같다. 위의 코드는 setTimeout( ); 에 인자로 funct..