동기 코드는 순차적으로 실행되는 코드로 결과를 반환하기 전까지는 다음 코드가 실행되지 않습니다. 코드 한 줄이 끝나기 전에 다음 줄로 넘어가지 않는거죠. 즉, 코드가 끝날 때까지 실행이 차단됩니다.(블로킹)
반면에 비동기 코드는 코드를 실행하고 결과를 기다리지 않고, 다음 코드를 실행합니다. 코드 실행 중에 다른 코드를 동시에 실행할 수 있으며, 결과가 나올 때까지 기다리지 않습니다. 대신에 콜백 함수 또는 프로미스를 사용해서 결과를 처리합니다.
예를 들어서 동기 코드로 파일을 읽고 처리하는 코드가 있을 때, 파일이 읽혀지기 전까지 다른 작업을 처리하지 않고 대기합니다. 비동기 코드로는 파일을 읽는 동안 다른 작업을 처리할 수 있으며, 파일을 읽은 후 콜백 함수나 프로미스를 이용해 결과를 처리합니다.
동기 코드의 경우 코드가 순차적으로 실행되므로 코드가 복잡해질수록 실행 시간이 길어질 가능성이 있지만 비동기 코드는 복잡한 작업을 처리하는 동안 다른 작업을 실행하므로 처리 시간이 줄어들 수 있습니다.
따라서, 애플리케이션의 성격과 목적에 맞게 동기 코드 또는 비동기 코드를 선택해 사용하는 것이 바람직합니다.