티스토리 뷰
728x90
들어가기 전,
컴퓨터와 관련된 작업을 처리하다 보면 꼭 나오는 개념이었던 것 같은데 학생 때는 이해가 잘 안 됐다.
아마 당시에는 sync & blocking이고 async & non-blocking이다로 이해하고 넘어갔지만 개념 자체가 달랐다.
다시 언급되는 sync(동기) / async(비동기) 그리고 blocking / non-blocking에 대해서 알아보고 넘어가자.
Blocking / Non-blocking
행위자가 취한 행위 자체가 막힌, 제한된, 대기하는 상태
- 호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함수에게 바로 돌려주지 않으면 Block
- 호출된 함수가 자신이 할 일을 채 마치지 않았더라도 바로 제어권을 건네주어(return) 호출한 함수가 다른 일을 진행할 수 있도록 해주면 Non-block
(musma 블로그)
결국은 현재 돌아가는 작업의 대상이 2개 이상인지, 수행 / 종료 시각을 가지고 있는지에 따라서 구분이 가능하다.
Sync / Async
시간으로 볼 때, 함께 / 같이 이루어지는 두 개 이상의 개체 혹은 이벤트
- 호출된 함수의 수행 결과 및 종료를 호출한 함수가(호출된 함수뿐 아니라 호출한 함수도 함께) 신경 쓰면 Synchronous
- 호출된 함수의 수행 결과 및 종료를 호출된 함수 혼자 직접 신경 쓰고 처리한다면(as a callback fn.) Asynchronous
(musma 블로그)
작업을 수행하는 주체가 2개 이상인가, 작업의 시간(시작, 종료)을 맞추는지 안 맞추는지
Use Case
- Blocking & Sync
나: 00, 디자인 시안 주소 좀 알려줄 수 있어요?
디자이너: 네, 잠시만요.
디자이너: (피그마 가기.. 주소 찾기..)
나: (기다리기)
- Blocking & Async
나: 이거 어떻게 처리되고 있어요?
동료: 음,, 여기서 같이 볼까요?
나:...?!
동료: (사이트 열기.. 주소 입력.. 들어가기.. 업무 중..)
나: (언제 일하러 가지.. 못 가고 계속 보고 있음)
- Non-Blocking & Sync
나: 후임. 이것 좀 처리해줘요.
후임: 네. 다른 일 하고 계세요!
나: 알겠어요
후임: (작업 확인.. 작업 진행..)
나: 됐나요?
후임: 아직이요.
나: 됐어요?
후임: 아직이요.
- Non-Blocking & Async
나: 후임. 이것 좀 처리해줘요.
후임: 네. 다른 일 하고 계세요!
나: 알겠어요
후임: (작업 확인.. 작업 진행..)
나: (일 중..)
후임: 이렇게 처리했습니다. 확인해주세요.
나: 잘했어요!
참고
https://musma.github.io/2019/04/17/blocking-and-synchronous.html
반응형
'CS' 카테고리의 다른 글
Transaction과 ACID 이해하기 (0) | 2022.05.10 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 점진적개선
- application/x-www-form-urlencoded
- 디자인시스템
- 클린코드
- 트랜잭션
- PresignedURL
- PUT vs POST
- 필수단어
- 콘웨이법칙
- JRE
- AntPattern
- 디미터법칙
- SSAFY 퇴소
- UI/UX
- 개발프로세스
- charset
- 2022년 회고
- S3
- nodejs
- 자바기초
- 너디너리데모데이
- SSAFY 특화프로젝트 회고
- nodejs 버전 관리
- Content-Type
- 동기/비동기
- 블로킹/논블로킹
- 개발기록
- 소프트웨어개발프로세스
- LTS 개선
- HTTP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함