동기란 어떤 작업이 실행중일 때 다음 작업은 대기하는 성질이 있습니다. 한 작업이 완료 되어야 다음 작업으로 넘어가 시작할수 있다는 의미인데 다시 말하면 결과가 주어질 때까지 아무 것도 못하고 대기한다고 볼 수 있고, 코드가 위에서 아래로 순차적으로 실행되는 것을 의미합니다.
비동기는 작업의 결과를 기다리지 않고, 요청에 대한 결과가 반환되고 있는 와중에도 다른 작업을 수행할 수 있습니다. 따라서 작업을 병렬적으로 처리하고, 시스템의 효율성과 응답성을 향상 시킬 수 있습니다.
프레임워크와 라이브러리는 누군가가 만들어 놓은 코드이며, 개발자들에게 윤택한 개발환경을 만들어 줍니다. 여기엔 차이가 있는데
제어 흐름이 누구에게 있는지에 따라 차이가 있습니다.
다시 말해 누군가가 정해준 규칙을 따라 코딩을 하는지 아니면 자기가 모든 결정을 정하여 코드를 컨트롤 하는지에 따라 다릅니다.
프레임워크 같은 경우에는 정해진 규칙에 따라 개발자가 따르므로 프레임워크가 주도하는 반면에
라이브러리는 개발자가 라이브러리를 호출하여 사용하므로 개발자가 제어 흐름을 주도 합니다.
또한 라이브러리는 쉽게 대체될 수 있지만 프레임워크는 그렇지 않습니다. 규칙이 정해져 있어 다른 프레임 워크로 바꾸면 규칙이 달라져 코드가 망가지겠죠.
react JS 웹사이트는 리액트는 라이브러리 라고 말하고 있습니다.
우리는 애플리케이션 UI 빌드시 리액트를 호출하여 사용합니다. 동시에
리액트는 폴더 구조나 컴퍼넌트 이런 규칙이 정해져 있지 않습니다.
하지만 리액트는 우리의 컴포넌트를 부르고 정해진 리액트의 규칙에 따라 뭐가 맞고 틀린지를 알려줍니다.
그래서 많은 사람들이 회색의 영역이라 부르고, 여기에 대한 이슈가 많습니다.