백엔드 기술 면접 대비: 네트워크와 OS 핵심 요약
|
1 min read
기술 면접의 단골 주제인 TCP/UDP의 차이점부터 동시성 문제(Race Condition, Deadlock), 그리고 인프라의 기초인 VM과 컨테이너를 정리합니다.
1. 전송 계층: TCP vs UDP
- TCP (Transmission Control Protocol): 연결 지향적이며 신뢰성을 보장합니다. 패킷의 순서를 보장하고 흐름/혼잡 제어를 수행하여 안정적인 데이터 전송이 필요한 HTTP, 이메일, 파일 전송에 쓰입니다.
- UDP (User Datagram Protocol): 비연결형이며 신뢰성보다는 속도와 낮은 지연 시간에 집중합니다. 순서 보장이나 재전송 로직이 없어 실시간 스트리밍, 게임, DNS 등에 적합합니다.
2. 운영체제의 동시성 문제
- 경쟁 상태 (Race Condition): 여러 프로세스나 스레드가 동시에 공유 자원에 접근하여 실행 결과가 접근 순서에 따라 달라지는 상태입니다. 세마포어나 뮤텍스 같은 동기화 기법이 필요합니다.
- 교착 상태 (Deadlock): 서로가 가진 자원을 기다리며 무한히 대기하는 상태입니다. 상호 배제, 점유 대기, 비선점, 순환 대기라는 4가지 조건이 모두 충족될 때 발생합니다.
3. 가상화 기술: VM vs 컨테이너
- 가상 머신 (VM): 하이퍼바이저 위에 게스트 OS를 포함한 전체 시스템을 가상화합니다. 격리 수준은 높지만 무겁고 리소스 소모가 큽니다.
- 컨테이너 (Docker): 호스트 OS의 커널을 공유하며 프로세스 단위로 격리합니다. 게스트 OS가 없어 가볍고 배포 속도가 매우 빠릅니다.
4. 트랜잭션과 ACID
데이터베이스의 무결성을 보장하기 위한 4가지 속성(Atomicity, Consistency, Isolation, Durability)을 반드시 이해하고 있어야 합니다. 이는 장애 상황에서도 데이터의 신뢰성을 유지하는 근간이 됩니다.