동시성과 병렬성에 대해서 설명해 주세요.

2025. 1. 8. 09:44·백엔드 면접

동시성(Concurrency)이란 논리적으로 동시에 실행되는 것처럼 보이게 만드는 개념입니다. 단일 코어를 기준으로 시간 분할을 통해 여러 스레드를 번갈아 가며 작업을 수행함으로써, 마치 동시에 여러 작업이 처리되는 것처럼 보이게 합니다.

사용자의 입력을 기다리거나 네트워크 요청, 파일 입출력 등의 I/O 작업 시에는 CPU가 유휴 상태로 대기하게 됩니다. 이때 CPU가 아무 일도 하지 않고 대기하는 대신, 컨텍스트 스위칭을 통해 다른 스레드의 작업을 처리할 수 있습니다. 덕분에 서버는 여러 클라이언트의 요청을 동시에 처리할 수 있어 효율적입니다. 다만 여러 스레드를 사용하면서 Deadlock, Race Condition, Starvation 등의 동시성 문제가 발생할 수 있기 때문에 동시성 환경을 고려해야 합니다.

 

 

병렬성(Parallelism)이란 물리적으로 동일한 시간에 여러 작업을 독립적으로 수행하는 것을 의미합니다. 여러 개의 코어가 각각 독립된 스레드의 작업을 동시에 처리함으로써, 실제로 여러 작업이 동시에 실행됩니다. 동시성과는 달리 하나의 코어가 여러 스레드를 번갈아 가며 처리할 필요 없이, 각 코어에서 독립적으로 작업을 실행합니다.

독립적인 하위 작업으로 나눌 수 있는 계산과 같은 작업을 여러 코어에 분산함으로써, 작업 완료 시간을 최소화할 수 있어 고성능 컴퓨팅에 이상적입니다. 하지만 병렬 처리는 데이터나 리소스를 공유할 때 작업 간 동기화가 필요한 경우가 많아 동기화 처리로 인한 상당한 오버헤드가 발생할 수 있습니다.

'백엔드 면접' 카테고리의 다른 글

REST란 무엇인가요?  (0) 2025.01.10
캐싱 전략에 대해서 설명해주세요.  (0) 2025.01.09
로드 밸런싱에 대해서 설명해 주세요.  (0) 2025.01.07
다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점은 무엇이 있을까요?  (0) 2025.01.06
SOLID 원칙에 대해서 설명해 주세요.  (0) 2025.01.03
'백엔드 면접' 카테고리의 다른 글
  • REST란 무엇인가요?
  • 캐싱 전략에 대해서 설명해주세요.
  • 로드 밸런싱에 대해서 설명해 주세요.
  • 다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제점은 무엇이 있을까요?
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    raid
    스프링
    티스토리챌린지
    자바
    데브코스
    오블완
    토스 페이먼츠
    JPA
    백엔드 면접
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
동시성과 병렬성에 대해서 설명해 주세요.
상단으로

티스토리툴바