비동기 처리는 한 번에 여러 작업을 하거나, 양자간에 동시에 일을 처리해야하는 논 블록킹 구조에 사용
반대로 동기 처리는 한 작업이 수행되는 동안 다른 작업이 차단되기 때문에 블록킹 구조에 사용한다.
이 둘의 차이는 다음과 같은 곳에 중요하다.
먼저 시작된 처리가 끝나기 전까지는 다른 것을 처리할 수 없는 것
먼저 시작된 처리가 끝나지 않아도 다른것을 처리할 수 있는 것
동기 처리는 요청 후 실행이 끝나야 다음 동작을 처리하며, 비동기는 그렇지 않고 다음으로 넘어가는 방식입니다.
동기 방식은
비동기 방식은
동기와 비동기를 적절하게 사용하지 못하면 오류와 나쁜 UX가 뒤따를 것이다.
UX개선을 위해서는 비동기 프로그래밍, 개발 과정의 편의나 이해를 위해서는 동기 프로그래밍을 쓰는 것이 좋을 것이다.
둘 다 공통적으로 재사용이 가능한 코드의 모음이다.
하지만 어떤 차이가 있길래 다른 이름을 가진 것일까?
위의 특성들로 인해 아래와 같은 효과가 생긴다
라이브러리는 개발을 위해 미리 완성된 기능(객체, 메서드, 함수)들을 빌려오는 것이다.
내가 만든 코드가 필요에 따라서 라이브러리의 기능을 가져다 사용한다. 즉, 흐름의 제어권이 개발자에게 있다.
프레임 워크는 개발을 위한 큰 틀을 빌려오는 것이다.
완성된 기능을 제공하지 않고, 개발을 위한 골조를 제공합니다. 프레임 워크는 필요에 따라서 작성한 코드를 가져다 쓴다는 특징이 있다. 즉, 전체적인 흐름을 자체적으로 제어한다. 개발 과정에서 신경쓸 것이 줄어듭니다.
앞의 특성들 때문에 프레임 워크는 쉽게 바꿀 수 없기 때문에 개발 초기에, 개발 목적/방향성에 따라서 어떤 프레임 워크를 사용할지 잘 생각해야합니다.
Asynchronous vs. Synchronous Programming: Key Similarities and Differences
동기와 비동기의 차이