“잠깐만, 이것 끝나고 다음 작업 할게.” 이 말은 동기적 사고방식이다.
반면, “그거 처리되는 동안 나는 다른 거 하고 있을게.”라는 말은 비동기적 접근이다.
이런 사고방식은 사람 사이뿐 아니라, 컴퓨터 세계에서도 매우 중요한 개념이다.
많은 IT 문서와 개발 대화에서 자주 등장하는 ‘동기(Synchronous)’와 ‘비동기(Asynchronous)’의 개념을 실생활 비유와 함께 알아보자.
동기(Synchronous)란 어떤 작업이 순차적으로, 하나가 끝나야 다음이 진행되는 방식을 말한다. 프로그램에서 동기 방식은 함수 호출 후 결과가 돌아올 때까지 기다린 후 다음 작업을 수행한다.
예: 웹 서버가 사용자 요청을 처리할 때, 해당 작업이 완료되기 전까지 다른 요청을 처리하지 않는 경우.
비동기(Asynchronous)는 어떤 작업이 끝날 때까지 기다리지 않고, 그 사이에 다른 작업을 먼저 처리하는 방식이다. 결과가 도착하면 그때 다시 그 작업으로 돌아가 처리한다.
예: 사용자 요청을 백그라운드에서 처리해 두고, 완료되면 알림이나 콜백을 통해 처리 결과를 알려주는 방식.
머리말에 일 하는 생각, 하나의 일 끝나고 다음 일을 하려는 방식으로 예시를 들어 보았다.
은행과 음식점에서 동기와 비동기 방식의 예시를 들어보자.
- 동기: 은행 창구에서 줄을 서는 방식. 앞사람이 처리되기 전까지는 기다려야 한다.
- 비동기: 음식점에서 주문을 하고 대기 번호표를 받은 뒤 자리에 앉아 있거나, 다른 일을 하다가 진동벨이 울리면 음식을 받으러 가는 방식.
IT 쪽에서는 축약어로 많이 사용하는데, 동기(Synchronous)는 Sync로, 비동기(Asynchronous)는 Async로 많이 표기한다.
동기(Sync) | 비동기(Async) | |
흐름 제어 | 순차적 | 병렬 또는 독립적으로 진행 |
처리 속도 | 느릴 수 있음 | 효율적, 빠름 (자원 활용 우수) |
구현 난이도 | 상대적으로 단순 | 복잡한 구조 필요 (콜백, Promise 등) |
사용 예시 | 파일 입출력, DB 직접 조회 | API 호출, 알림 서비스, 이벤트 처리 등 |
순차적으로 실행한다고 무조건 안전하고 필요한 것도 아니고, 바로 다른 일을 처리할 수 있는 비동기가 무조건 좋은 것도 아니다. 필요에 따라 동기가 적합한 경우도, 비동기가 적합한 경우도 있다.
- 동기가 적합한 경우:
- 작업 순서가 중요할 때 (예: 파일을 읽은 후 처리해야 하는 경우)
- 코드의 단순성과 직관성이 중요한 경우
- 비동기가 적합한 경우:
- 네트워크 요청, 대기 시간이 긴 작업
- 사용자 경험이 중요한 UI 환경 (예: 웹페이지에서 버튼 클릭 후 로딩 애니메이션 등)
동기와 비동기는 프로그램이 작업을 처리하는 방식에 대한 두 가지 시각이다.
하나가 맞고 하나가 틀린 것이 아니라, 어떤 상황에 어떤 방식이 더 적합한지를 이해하는 것이 중요하다.
이 두 개념을 명확히 이해하면 개발자뿐 아니라 비개발자도 IT 시스템의 동작을 훨씬 쉽게 파악할 수 있다.
#동기비동기 #비동기프로그래밍 #비동기처리 #콜백 #이벤트기반 #IT기초 #개발상식
'IT 정보 > 용어' 카테고리의 다른 글
신뢰의 사슬(Chain of Trust)이란? 디지털 보안의 핵심 개념 정리 (0) | 2025.05.30 |
---|---|
CLR이란? .NET 개발자의 필수 개념 정리 (1) | 2025.05.29 |
시스템 간 대화를 돕는 언어, IDL이란? (0) | 2025.05.27 |
HTTPS를 강제하는 보안 기술, HSTS란? (0) | 2025.05.26 |
하나의 채널로 여러 신호를? 멀티플렉싱이란 (0) | 2025.05.25 |