hyperskill - Synchronous, asynchronous, parallel 영어 원문
우리가 몇 가지 복잡한 프로세스를 고려하고 있을 때, workflow (워크플로우) 라고 불러 보겠습니다.
이 워크플로우의 다양한 부분들은 아마 서로 다르게 실행 될 겁니다.
가끔은 하나의 액션이 한 부분에서 하나의 부분으로 가거나,
어떨 때는 각각 랜덤 순서로 각기 겹치기도 하며,
어떨 때는 병렬로 동시에 흘러가기도 합니다.
workflow는 서로 다르게 진화할 수 있습니다.
그리고 워크플로우 실행 시퀀스 종류가 있습니다.
synchronous (동기화), asynchronous (비동기화), parallel (병렬화)
컴퓨터 프로그램 처리에 관련된 많은 용어들은 그저 기술적인 것들이 아닙니다.
이들은 실제 세상에서 벌어지는 현상의 넓은 다양성을 묘사하고 있습니다.
기술적으로 사용되는 이러한 용어들이 실제 세상의 현상과 연관지어져서 사용된다는 뜻이다.
어떤 의미에서, 컴퓨터에 자리잡은 프로세스들은 실제 세상과 그리 다르지 않습니다.
더 나아가, 어느 정도의 추상화 수준에서, 이들은 거의 동일합니다.
따라서, 이들을 사용해 보고, 실제 삶의 예시들을 사용하여 이들의 기본적인 개념들을 탐색 해 봅시다.
복잡한 프로세스의 적절한 예시로는 고객 서비스를 들 수 있습니다.
실행 순서의 관점으로부터 몇 가지 기본적인 유형을 공부하기 위해 이러한 고객 서비스를 사용 해 봅시다.
Synchronous workflow - 동기화 워크플로우
고객 서비스 흐름을 관리하기 위한 많은 모델들이 있습니다.
가장 간단한 접근법은 하나의 판매점과 하나의 판매원입니다.
판매원은 판매에 있어 고객의 처음과 끝을 모두 다루며,
가게를 지키는 것과 캐셔의 역할까지 모두 수행합니다.
여기에 많은 고객들이 동시에 있을 때,
이러한 접근법은 판매원이 하나의 시간당 한 명의 고객을 다루는 동안 다른 고객들은 줄에서 기다리기에,
완벽과는 거리가 멉니다.
판매원이 각각의 클라이언트에게 개별적으로 하나씩 서비스를 제공한다는 것은,
다음에 서비스를 제공받기 시작하게 되는 고객은 현재 고객이 끝날 때 까지 기다려야 한다는 의미입니다.
우리는 이러한 유형의 행동을 synchronous (동기화) 라고 이름지었습니다.
동기화 워크플로우는 매우 흔합니다.
대부분의 활동들은,
그들의 목표가 몇 가지 지정된 결과들을 성취하는 것이라면 동기식으로 동작해야 합니다.
이러한 예시는 매우 막대할 정도로 많습니다.
영화 줄거리 장면들, 차량 조립, 문장의 단어들, 요리, 등등 당신이 이름부르는 것들이요.
Asynchronous workflow - 비동기식 워크플로우
이번엔 피자가게를 운영하는데, 피자 가게가 더 인기가 많아졌다고 가정해 봅시다.
첫 번째 고객이 그들의 피자를 주문한 후에, 그들은 피자가 요리 될 때 까지 기다려야 합니다.
이 시점에서, 판매원은 첫 번째 고객을 잠시동안 내버려 두고, 두 번째 사람의 주문을 받고, 세번째도, 그렇게 흘러갑니다.
위의
P1
,P2
와 같은 기호는 고객의 피자를 조리하고 오븐기에 넣기 전까지의 시간 을 의미한다.
첫 번째 고객의 피자가 준비되었을 때, 판매원은 판매를 완료하기 위해 고객에게 반환합니다.
이것이 계속해서 반복될 이야기입니다.
판매원은 하나의 시간대에서 동시에 여러 고객들에게 서비스를 제공할 수 있습니다.
우리는 이러한 행동을 asynchronous (비동기식) 이라고 부릅니다.
이러한 유형의 운영들은 종종 기다림이 필요한 곳에 나타납니다.
당신이 비행기를 타고 있는 동안, 비행기에 대한 책자를 읽거나,
뭔가 요리하는 동안 접시를 닦는다고 상상 해 보세요.
이러한 행동들은 비동기식입니다.
Parallel processing - 병렬 처리
피자 판매량이 증가함에 따라, 이 비즈니스에 한 명의 직원은 지금 충분하지 않습니다.
따라서, 우리는 몇 명을 고용했습니다.
만약 각각의 판매원이 한 시간에 하나의 피자를 정확히 준비하기 위해서 간편한 오븐을 개별적으로 가지고 있다고 가정 해 봅시다.
그러고 나서 우리는 판매원들 사이에서 구매자들의 큐를 나눌 수 있습니다.
이제 그들은 독립적으로 작업하며,
이러한 경우는 parallel (병렬) 처리 입니다.
병렬로 되어있는 각각의 업무 처리는 전체 단위 처리로서 끝날 때 까지 구동합니다.
병렬 실행은 하나의 실행기가 있어야만 가능합니다.
슈퍼마켓에 있는 계산원들이 병렬 처리의 예제입니다.
또한, 고속도로도 포함됩니다.
Conclusion - 결론
따라서, 세 가지 유형의 프로세싱이 존재합니다.
첫 번째는 동기식이며, 두 번째는 비동기식이며, 세 번째는 병렬식입니다.
- Synchronous (동기식) : 하나의 태스크를 한 번에 하며, 그 다음 태스크는 현재 태스크가 끝날 때 시작됩니다.
- Asynchronous (비동기식) : 여러 개의 태스크를 같은 시간에 겹쳐서 실행합니다.
- Parallel (병렬식) : 다중 혹은 하나의 태스크를 부분으로 나눠 여러 개의 실행기로 실행합니다.
words to remember
overlapping : 겹치는
in some sense : 어떤 의미에서
practically : 거의
identical : 동일한, 같은, 똑같은
serve : 제공하다
enormous : 막대한, 거대한, 악독한
plot : 구성, 줄거리
emerge : 알려지다, 나타나다, 드러나다, 벗어나다
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
Documentation - 프로그램 문서 작성 (1) | 2024.07.15 |
---|---|
Processes and Threads - 프로세스와 쓰레드 (0) | 2024.07.14 |
Coupling and Cohesion - 연결성과 응집도 (0) | 2024.07.11 |
Code organization. Design principles - 디자인 원칙과 코드 정리 (0) | 2024.07.10 |
YAML - YAML 문법과 사용법 (0) | 2024.07.09 |