참고 블로그
https://velog.io/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC
동기(Synchronous)
동기 방식에서는 한 작업이 끝날 때까지 기다렸다가 다음 작업을 시작한다. 즉, 한 작업의 완료가 다음 작업의 시작 조건이된다.
비동기(Asynchronous)
비동기 방식에서는 한 작업을 시작한 후, 그 작업이 끝나기를 기다리지 않고 바로 다음 작업을 시작한다. 작업의 완료와 상관없이 다음 작업을 진행하므로, 여러 작업이 병렬적으로 처리될 수 있다
동기 방식은 간단한고 직관적인 처리 순서를 가지지만 자원 활용 측면에서 비효율적일 수 있다. 반면 비동기 방식은 자원을 보다 효율적으로 활용할 수 있지만, 프로그램의 복잡도가 증가할 수 있따.
언제 동기를 쓰고 비동기를 써야하는가?
동기를 사용해야 할 때
1. 작업 순서가 중요한 경우
2. 간단하고 직관적인 흐름이 필요한 경우
3. 자원의 병렬 사용이 중요하지 않은 경우
비동기를 사용해야 할 때
1. 자원 활용과 성능 최적화가 필요한 경우
2. 긴 작업의 블로킹 방지가 필요한 경우
3. 사용자 인터페이스의 응답성 유지가 필요한 경우