😀 Jerry/면접 질문

[1분 면접] 동시성과 병렬성의 차이

Jerry_K 2025. 3. 14. 10:59

📌 면접 답변

동시성과 병렬성은 이 그림 하나로 끝난다.

 

동시성(Concurrency)

  • 동시성이란 논리적으로 동시에 실행되는 것처럼 보이게 만드는 개념
  • 단일 코어를 기준으로 시간 분할을 통해 여러 스레드를 번갈아 가며 작업 수행
  • 마치 동시에 여러 작업이 처리되는 것 처럼 보인다.
  • 다만, 동시성 환경을 고려하지 않고 여러 스레드를 사용하면 Deadlock, Race Condition, Starvation 문제 발생

 

병렬성 (Parallelism)

  • 병렬성이란 물리적으로 동일한 시간에 여러 작업을 독립적으로 수행하는 것을 의미
  • 여러 개의 코어가 각각 독립된 스레드의 작업을 동시에 처리함으로써, 실제로 여러 작업이 동시에 실행
  • 고성능 컴퓨팅에 이상적 
  • 하지만 데이터나 리소스 공유 작업 간 동기화가 필요할 경우가 많아, 동기화로 상당한 오버헤드가 발생 할 수 있다.

📌 내 답변

A와 B 작업이 있다고 해보자. 

병렬성은 A와 B 작업에 각각의 트랜잭션이 같은 시간에 동시에 처리되는 것을 의미하고,

동시성은 A와 B 작업에 하나의 트랙잭션이 아주 빠른 속도로 동시에 처리되는 것 처럼 만드는 것이다.

 

 

Self 피드백

  • 트랜잭션 보다는 스레드나 프로세스 같은 개념이 더 좋음
    • 트랜잭션은 ACID 성질을 보장하는 논리적 단위로, 동시성과 병렬성 설명에는 부적절
  • 작업보다는 CPU 코어라고 하는게 더 낫다.
  • 동시성과 병렬성 설명할 때, 장단점 내용이 들어가지 않았다.

 

병렬성과 동시성은 자주 헷갈리는 개념이다.

쉽게 생각해보자. 병렬성은 병렬적으로 처리되는 것이니, 여러개의 코어여야 한다.

 

동시성은 동시에 일어난다는 것으로, 이게 꼭 여러개의 코어를 의미하는 것은 아니다.

진짜 엄청 빠르게 시간 분할 처리를해서 번갈아가며 작업 수행하면 동시에 일어나는 것 처럼 보인다.

 


[출처 및 참고 자료]

 

https://www.maeil-mail.kr/

 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr