📌 면접 답변
동시성(Concurrency)
- 동시성이란 논리적으로 동시에 실행되는 것처럼 보이게 만드는 개념
- 단일 코어를 기준으로 시간 분할을 통해 여러 스레드를 번갈아 가며 작업 수행
- 마치 동시에 여러 작업이 처리되는 것 처럼 보인다.
- 다만, 동시성 환경을 고려하지 않고 여러 스레드를 사용하면 Deadlock, Race Condition, Starvation 문제 발생
병렬성 (Parallelism)
- 병렬성이란 물리적으로 동일한 시간에 여러 작업을 독립적으로 수행하는 것을 의미
- 여러 개의 코어가 각각 독립된 스레드의 작업을 동시에 처리함으로써, 실제로 여러 작업이 동시에 실행
- 고성능 컴퓨팅에 이상적
- 하지만 데이터나 리소스 공유 작업 간 동기화가 필요할 경우가 많아, 동기화로 상당한 오버헤드가 발생 할 수 있다.
📌 내 답변
A와 B 작업이 있다고 해보자.
병렬성은 A와 B 작업에 각각의 트랜잭션이 같은 시간에 동시에 처리되는 것을 의미하고,
동시성은 A와 B 작업에 하나의 트랙잭션이 아주 빠른 속도로 동시에 처리되는 것 처럼 만드는 것이다.
Self 피드백
- 트랜잭션 보다는 스레드나 프로세스 같은 개념이 더 좋음
- 트랜잭션은 ACID 성질을 보장하는 논리적 단위로, 동시성과 병렬성 설명에는 부적절
- 작업보다는 CPU 코어라고 하는게 더 낫다.
- 동시성과 병렬성 설명할 때, 장단점 내용이 들어가지 않았다.
병렬성과 동시성은 자주 헷갈리는 개념이다.
쉽게 생각해보자. 병렬성은 병렬적으로 처리되는 것이니, 여러개의 코어여야 한다.
동시성은 동시에 일어난다는 것으로, 이게 꼭 여러개의 코어를 의미하는 것은 아니다.
진짜 엄청 빠르게 시간 분할 처리를해서 번갈아가며 작업 수행하면 동시에 일어나는 것 처럼 보인다.
[출처 및 참고 자료]
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] 캐싱 전략에 대해서 설명해주세요. (0) | 2025.03.17 |
---|---|
[1분 면접] 자료구조 스택에 대해서 설명해주세요. (1) | 2025.03.15 |
[1분 면접] 로드 밸런싱이란 ? (0) | 2025.03.13 |
[1분 면접] 다중 서버 환경에서 세션 기반 인증 방식 사용의 문제점 (0) | 2025.03.12 |
[1분 면접] SOLID 원칙이란 ? (0) | 2025.03.11 |