동시성(Concurrency)과 병렬성(Parallelism)의 개념을 정의하고, 두 개념의 주요 차이점을 설명해 주세요.
힌트 · 동시성은 여러 작업을 동시에 처리하는 것처럼 보이는 것이고, 병렬성은 여러 작업을 실제로 동시에 처리하는 것입니다. CPU 코어 수와 관련하여 차이를 설명할 수 있습니다.
면접관님, 동시성과 병렬성은 둘 다 여러 작업을 동시에 처리하는 방식이지만, 핵심적인 차이가 있습니다.
전체 모범답안 펼치기 접기
면접관님, 동시성과 병렬성은 둘 다 여러 작업을 동시에 처리하는 방식이지만, 핵심적인 차이가 있습니다.
동시성은 하나의 CPU 코어에서 여러 작업을 번갈아 가며 실행하여 마치 동시에 처리되는 것처럼 보이게 하는 것입니다. 예를 들어, 웹 브라우저에서 여러 탭을 열어놓고 사용하는 경우가 동시성의 예시입니다. 각 탭은 짧은 시간 동안 CPU를 점유하며 번갈아 실행되죠.
반면, 병렬성은 여러 개의 CPU 코어를 사용하여 여러 작업을 실제로 동시에 처리하는 것입니다. 예를 들어, 이미지 편집 프로그램에서 여러 필터를 동시에 적용하는 경우가 병렬성의 예시입니다. 각 필터는 서로 다른 CPU 코어에서 동시에 실행되므로 작업 시간이 단축됩니다.
따라서, 동시성은 자원(CPU)을 공유하여 시간을 분할하는 방식이고, 병렬성은 자원을 복제하여 실제로 동시에 작업을 처리하는 방식이라고 할 수 있습니다. 병렬성은 여러 개의 CPU 코어가 필요하지만, 동시성은 단일 코어에서도 구현될 수 있습니다.