기초 개념 · 기술 면접 대비

CS 기초 면접 퀴즈

백엔드 개발자의 필수 지식

백엔드 개발자에게 필수적인 CS 기초 지식을 퀴즈 형태로 학습하세요.

로그인 없이 풀어보기
50개 문제 · 무료

학습할 핵심 개념

핵심 개념 학습
실무 적용 사례
면접 대비 문제

핵심 개념 미리보기

CS 기초 면접에서 꼭 나오는 개념을 미리 확인하세요

프로세스 (Process)

핵심

프로세스 (Process)

프로세스란?

실행 중인 프로그램의 인스턴스. OS가 관리하는 작업 단위.

메모리 구조

높은 주소 ─────────────
│     스택 (Stack)     │ 지역변수, 매개변수
│          ↓           │
│     (빈 공간)        │
│          ↑           │
│     힙 (Heap)        │ 동적 할당 (malloc, new)
│     데이터 (Data)    │ 전역변수, static
│     코드 (Code/Text) │ 실행 명령어
낮은 주소 ─────────────

프로세스 상태

[생성] → [준비] ⇄ [실행] → [종료]
              ↕
           [대기/블록]
상태설명
준비 (Ready)CPU 대기 중
실행 (Running)CPU에서 실행 중
대기 (Blocked)I/O 완료 대기

실무 포인트

  • fork(): 부모 프로세스 복사하여 자식 프로세스 생성
  • exec(): 현재 프로세스를 새 프로그램으로 교체
  • 좀비 프로세스: 종료됐지만 부모가 회수 안 한 상태
  • 고아 프로세스: 부모가 먼저 종료된 자식 (init이 입양)
면접에서 이렇게 나옵니다
  • Q.프로세스의 메모리 구조를 설명해주세요
  • Q.프로세스 상태 전이를 설명해주세요
  • Q.좀비 프로세스란? 어떻게 해결하나요?

스레드 (Thread)

핵심

스레드 (Thread)

스레드란?

프로세스 내의 실행 흐름 단위. 같은 프로세스의 메모리를 공유.

공유 vs 독립

공유 자원독립 자원
코드 영역스택
데이터 영역PC (Program Counter)
힙 영역레지스터
파일 디스크립터스레드 ID

사용자 스레드 vs 커널 스레드

구분사용자 스레드커널 스레드
관리 주체라이브러리OS 커널
전환 속도빠름느림 (시스템 콜)
블로킹하나 블록 → 전체 블록독립적

동기화 문제

Thread A: balance = balance + 100
Thread B: balance = balance - 50

1. A 읽기: balance = 1000
2. B 읽기: balance = 1000   ← 아직 A가 안 씀!
3. A 쓰기: balance = 1100
4. B 쓰기: balance = 950    ← A의 변경 무시!

Race Condition 발생. 뮤텍스/세마포어로 해결.

실무 포인트

  • Java: Thread, ExecutorService (스레드풀)
  • Python: GIL 때문에 멀티스레딩 CPU 바운드에 불리
  • Go: goroutine (경량 스레드, M:N 모델)
면접에서 이렇게 나옵니다
  • Q.스레드가 공유하는 자원과 독립적인 자원은?
  • Q.Race Condition이란? 해결 방법은?
  • Q.사용자 레벨 스레드와 커널 레벨 스레드의 차이는?

프로세스 vs 스레드

핵심

프로세스 vs 스레드

핵심 비교

구분프로세스스레드
메모리독립 공간코드/데이터/힙 공유
생성 비용높음 (fork)낮음
통신IPC 필요 (파이프, 소켓)공유 메모리 직접 접근
안정성한 프로세스 죽어도 OK한 스레드 죽으면 전체 영향
컨텍스트 스위칭느림 (메모리 맵 교체)빠름

메모리 구조

[프로세스 A]          [프로세스 B]
┌────────────┐       ┌────────────┐
│ 코드       │       │ 코드       │
│ 데이터     │       │ 데이터     │
│ 힙         │       │ 힙         │
│ 스택(T1)   │       │ 스택(T1)   │
│ 스택(T2)   │       │ 스택(T2)   │
└────────────┘       └────────────┘
  독립 공간             독립 공간

[스레드 간 공유]
┌────────────────────┐
│ 코드 / 데이터 / 힙  │ ← 공유
├────────────────────┤
│ 스택(T1) │ 스택(T2) │ ← 독립
└────────────────────┘

실무 선택 기준

  • 멀티 프로세스: 안정성 중요 (Chrome 탭, Nginx worker)
  • 멀티 스레드: 성능 중요 (Java 서버, 게임 서버)
  • 이벤트 루프: I/O 바운드 (Node.js, Redis)
면접에서 이렇게 나옵니다
  • Q.프로세스와 스레드의 차이를 설명해주세요
  • Q.멀티 프로세스 vs 멀티 스레드, 언제 뭘 쓰나요?
  • Q.스레드 간 공유하는 자원과 독립적인 자원은?

더 많은 개념과 문제는 가입 후 이용할 수 있어요

먼저 5문제 맛보기

CS 기초 면접 빈출 질문

실제 면접에서 자주 나오는 질문들입니다

Q.

프로세스의 메모리 구조를 설명해주세요

프로세스 (Process) · Foundry에서 퀴즈로 연습하기

Q.

프로세스 상태 전이를 설명해주세요

프로세스 (Process) · Foundry에서 퀴즈로 연습하기

Q.

좀비 프로세스란? 어떻게 해결하나요?

프로세스 (Process) · Foundry에서 퀴즈로 연습하기

Q.

fork()와 exec()의 차이는?

프로세스 (Process) · Foundry에서 퀴즈로 연습하기

Q.

스레드가 공유하는 자원과 독립적인 자원은?

스레드 (Thread) · Foundry에서 퀴즈로 연습하기

Q.

Race Condition이란? 해결 방법은?

스레드 (Thread) · Foundry에서 퀴즈로 연습하기

Q.

사용자 레벨 스레드와 커널 레벨 스레드의 차이는?

스레드 (Thread) · Foundry에서 퀴즈로 연습하기

Q.

스레드풀을 사용하는 이유는?

스레드 (Thread) · Foundry에서 퀴즈로 연습하기

이런 점이 좋아요

기초 개념 정리

면접 대비

실무 역량 향상

지금 바로 시작하세요

무료로 CS 기초 퀴즈를 풀고, AI 오답 분석으로 실력을 키우세요.