백엔드 면접 단골 CS 질문 3개, 30초 안에 설명할 수 있나요?
면접 준비하면서 느낀 건데, "아는 것"이랑 "설명할 수 있는 것"은 완전 다르더라고요.
아래 3개 질문, 면접관 앞에서 30초 안에 대답할 수 있는지 한번 테스트해보세요.
---
Q1. TCP 3-way handshake 과정을 순서대로 설명해주세요.
```
클라이언트 서버
│ │
│──────── ??? ────────→│ ① 연결 요청
│←─────── ??? ─────────│ ② 요청 수락
│──────── ??? ────────→│ ③ 연결 확립
```
> SYN, SYN+ACK, ACK 순서를 말하는 건 쉬운데, "왜 3번이어야 하나요?"까지 대답할 수 있으면 합격입니다.
---
Q2. 온라인 쇼핑몰에서 동시 접속자 100만 명의 세션을 관리해야 합니다. 어떤 자료구조를 쓰시겠어요?
- A) 배열 — 인덱스 접근이 O(1)이니까
- B) 해시 테이블 — 키 기반 조회가 평균 O(1)이니까
- C) 이진 탐색 트리 — 정렬 상태 유지가 필요하니까
- D) 연결 리스트 — 삽입/삭제가 O(1)이니까
> "O(1)이니까 배열이요"라고 하면 탈락입니다. 배열은 사용자 ID가 키인 상황에서 쓸 수 없죠.
---
Q3. DB 인덱스는 왜 B-Tree를 쓸까요? 해시 테이블이 O(1)인데 그게 더 빠르지 않나요?
> 이 질문에 "범위 검색" 세 글자가 나오면 반은 맞은 겁니다. 근데 면접관이 "그러면 해시 인덱스는 언제 쓰나요?"라고 이어서 물어보면요?
---
3개 다 자신있게 대답할 수 있으면 기초는 탄탄한 편이에요.
하나라도 막혔으면, 저처럼 반복이 필요한 타입일 수 있습니다. 저도 분명 공부했는데 면접장에서 입이 안 떨어지는 게 제일 답답했거든요.
그래서 요즘 퀴즈로 반복하고 있는데, 틀린 문제를 자동으로 모아서 다시 풀게 해주니까 확실히 약한 부분이 줄어드는 게 체감돼요.
가입 없이 5문제 바로 풀어볼 수 있어요.