새소식

CS

[CS] 동기와 비동기

  • -

오늘은 개발을 하면서 많이 들어본 동기와 비동기에 대해서 알아보겠습니다

 

동기(Synchronous)
작업이 순차적으로 진행되는 것을 의미
즉, 한 작업이 시작되면 해당 작업이 완료될 때 까지 다른 작업이 기다려야 함을 의미합니다

장점 단점
설계가 매우간단하고 직관적입니다 여러 작업이 동시에 실행되어야하는 경우
각 작업의 완료를 기다리는 동안 시간이 소요되어
전체 프로세스의 성능이 저하될 수 있습니다
한 작업이 지연되면 다른 작업들도 모두 지연되는 문제가 발생합니다

 

 

비동기(Asyncchronous)
작업이 독립적으로 실행되는 것을 의미
즉 작업의 완료여부를 기다리지 않고 다른 작업을 실행할 수 있는 방식을 의미합니다

장점 단점
요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행할 수 있으므로 자원을 효율적으로 사용가능합니다 동기보다 설계가 복잡합니다

 

비동기 방식은 주로  I/O 작업이나 네트워크 요청과 같이 시간이 오래 걸리는 작업에 유용합니다

비동기 방식은 콜백(callback),프로미스(Promise),async/await 등의 메커니즘을 통해 구현될 수 있습니다


블록과 논블록

블록
동기의 개념에서 만들어진 상태

자신의 작업을 하닥 다른 작업 주체가 하는 작업의 시작부터 끝까지 기다렸다가 다시 자신의 작업을 시작하는 것

 

논블록 
비동기 개념에서 만들어진 상태
다른 주체의 작업과 상관없이 자신의 작업을 계속 하는 것

'CS' 카테고리의 다른 글

[CS] 라이브러리와 프레임 워크는 어떤 차이가 있을까?  (1) 2024.04.28
[CS] 가비지 컬렉션이란  (0) 2024.04.16
[CS] Restful API 란?  (0) 2024.03.19
[CS] About HTTP 메서드  (3) 2024.03.18
[CS] Axios 란 무엇일까?  (0) 2024.02.20
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.