익명 두더지
익명 두더지

4. 금일 다룬 promise, async/await은 비동기를 운영체제에게 전달하여 하드웨어에게 인식시킬 수 있는 문법으로, 운영체제/하드웨어의 비동기 처리방식을 활용해 웹 프로그램에서도 비동기를 구현할 수 있도록 한다. 5. 이로인해 서버 컴퓨터를 메모리를 감소시키는 등 자원 효율성을 증진시키는 효과를 가져온다. 이렇게 정리를 하였는데, 맞게 이해를 한걸까요?

와롤러dd

아래 3번까지의 거의 잘 이해하신 것 같습니다. 네 맞습니다. 4는... 약간의 수정만 있으면 될 것 같습니다. async/await 키워드와 promise는 node의 인터프리터가 실행되면서 기계어로 바꿀 것이고 이를 최종적으로는 CPU가 실행하게 됩니다. 운영체제가 코드에 어떤 변형을 가하지는 않습니다. 다른 언어, C/C++ 같은 경우 이런 코드 변환 과정을 '컴파일'이라고 하고 '컴파일러'라는 프로그램이 따로 있습니다. node는 이와 비슷한 개념을 '인터프리터'라고 합니다. 5의 경우에도 맞는 말입니다. 비동기 처리를 지원하게 되면서 메모리 사용량도 줄어든 것이 사실이긴 합니다. 그러나 그 덕분에 CPU가 덜 바쁘게(?) 됐다는 사실도 있습니다.

와롤러dd

다시 찾아보니 node를 엄밀하게 '인터프리터'라고 하지는 않는것 같습니다. 최근의 언어들은 컴파일과 인터프리터 개념의 경계가 점점 흐릿해 지고 있거든요. JIT라는 기법도 있고요... 아직 이 부분까지는 엄격 근엄 진지하게 따지지 않으셔도 될거 같습니다.