프로그래밍을 하다 보면 항상 나오는 주제가 있다. 바로 동기(Synchronous)와 비동기(Asynchronous) 다.많은 사람들이 “동기는 순차적이고, 비동기는 동시에 한다” 정도로만 이해하고 넘어가지만, 그 배경과 흐름을 알면 훨씬 이해가 잘 된다.1. 동기(Synchronous) 방식의 시작초기의 프로그램들은 대부분 동기(Synchronous) 방식으로 만들어졌다.한 줄이 끝나야 다음 줄로 넘어가기 때문에 흐름을 이해하기 쉽고, 디버깅하기에도 단순했다. 👉 예를 들어, 파일을 읽어오는 코드가 있으면 프로그램은 읽기가 끝날 때까지 멈춰서 기다렸다가 다음 코드를 실행한다.System.out.println("파일 읽기 시작");String content = readFile("data.txt"); ..