🍳DDQ 블로그

백엔드 개발자 기술 면접 단골 질문 15선 — 핵심만 빠르게 정리 (2026)

2026-07-19

백엔드 기술 면접은 범위가 넓어 보이지만, 실제로 반복해서 나오는 질문은 정해져 있습니다. 이 글은 신입·주니어 백엔드 면접에서 자주 나오는 질문 15개를 핵심 답변과 함께 묶었습니다. 면접 전날 빠르게 훑거나, 내가 설명할 수 있는지 스스로 점검하는 용도로 쓰세요.

각 질문은 "면접관이 진짜 확인하려는 것"이 무엇인지 함께 적었습니다. 암기가 아니라 왜 그런지 설명할 수 있는가가 합격을 가릅니다.


CS 기초

1. 프로세스와 스레드의 차이는? 프로세스는 독립된 메모리 공간을 가진 실행 단위이고, 스레드는 한 프로세스 안에서 메모리(힙·코드)를 공유하는 실행 흐름입니다. 스레드는 컨텍스트 스위칭 비용이 작지만 공유 자원 동기화 문제가 생깁니다. 면접관은 "왜 스레드를 쓰는가(비용 vs 공유)"와 동기화 이슈 인지 여부를 봅니다.

2. 동기 vs 비동기, 블로킹 vs 논블로킹? 동기/비동기는 작업 완료를 누가 신경 쓰는가(호출자가 결과를 기다리는지), 블로킹/논블로킹은 제어권을 언제 돌려주는가의 축입니다. 둘은 독립된 개념이라 4가지 조합이 나옵니다. "두 축이 다르다"를 구분하면 반은 먹고 들어갑니다.

3. 교착 상태(deadlock)의 4가지 조건은? 상호 배제, 점유와 대기, 비선점, 순환 대기 — 이 4개가 동시에 성립할 때 발생합니다. 하나라도 깨면 예방됩니다(예: 자원 획득 순서를 정해 순환 대기 제거). 실무에서 락 순서를 통일하는 이유와 연결하면 좋습니다.


네트워크

4. TCP와 UDP의 차이는? TCP는 연결 지향·순서 보장·재전송(신뢰성), UDP는 비연결·빠름·손실 허용입니다. 스트리밍·게임처럼 지연이 손실보다 치명적인 곳에 UDP를 씁니다. "언제 UDP를 선택하는가"까지 답하면 가점.

5. HTTP와 HTTPS, 그리고 TLS 핸드셰이크? HTTPS는 HTTP에 TLS 암호화를 더한 것입니다. TLS 핸드셰이크에서 대칭키를 안전하게 교환(비대칭키로 대칭키 전달)하고, 이후 통신은 빠른 대칭키로 암호화합니다. "왜 비대칭+대칭을 섞는가(속도 때문)"가 핵심.

6. HTTP 상태코드 401 vs 403? 401은 인증 실패(누구인지 모름 → 로그인 필요), 403은 인가 실패(누구인지는 알지만 권한 없음)입니다. 인증(authentication)과 인가(authorization)를 구분하는지 보는 질문입니다.

7. GET과 POST의 차이, 그리고 멱등성(idempotent)? GET은 조회·멱등·캐시 가능, POST는 생성·비멱등입니다. 멱등성은 같은 요청을 여러 번 보내도 결과가 같은가로, PUT/DELETE는 멱등, POST는 보통 비멱등입니다. 재시도 로직·네트워크 불안정 상황과 엮으면 좋습니다.


데이터베이스

8. 인덱스는 왜 빠르고, 언제 안 좋은가? 인덱스(보통 B-tree)는 정렬된 자료구조라 조회가 O(log n)입니다. 대신 쓰기마다 인덱스도 갱신해야 해 INSERT/UPDATE가 느려지고 저장 공간을 씁니다. "조회 많고 쓰기 적은 컬럼에 건다"까지 답하면 실무 감각 인정.

9. 트랜잭션의 ACID란? 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability). 특히 격리성은 동시 트랜잭션이 서로 간섭하지 않게 하는 성질로, 격리 수준(Read Committed 등)과 이어집니다.

10. 정규화와 반정규화, 언제 무엇을? 정규화는 중복을 없애 무결성을 지키고, 반정규화는 조인을 줄여 조회 성능을 높입니다. 읽기가 압도적으로 많은 서비스에서 의도적으로 반정규화합니다. "트레이드오프를 안다"를 보여주세요.

11. RDB와 NoSQL, 선택 기준은? 정형 데이터·복잡한 조인·강한 일관성이면 RDB, 스키마가 유연하고 수평 확장·대용량이면 NoSQL이 유리합니다. "둘 중 뭐가 좋냐"가 아니라 "언제 무엇"으로 답해야 합니다.

12. N+1 문제란? 목록 N건을 가져온 뒤 각 건마다 연관 데이터를 1번씩 더 조회해 총 N+1번 쿼리가 나가는 문제입니다. 조인이나 배치 조회(`IN`), 지연/즉시 로딩 조정으로 해결합니다. ORM을 써봤다면 반드시 나옵니다.


시스템·아키텍처

13. 캐시를 왜 쓰고, 무엇을 조심해야 하나? 반복 조회를 빠른 저장소(예: Redis)에 두어 DB 부하와 지연을 줄입니다. 대신 캐시 무효화(원본이 바뀌면 캐시는? )와 정합성이 어렵습니다. "컴퓨터 과학에서 어려운 두 가지가 캐시 무효화와 네이밍"이라는 말이 괜히 있는 게 아닙니다.

14. 로드 밸런싱과 무상태(stateless) 서버? 여러 서버에 트래픽을 분산하려면 서버가 요청 간 상태를 들고 있지 않아야(무상태) 아무 서버나 처리할 수 있습니다. 그래서 세션을 외부(Redis 등)로 빼거나 토큰(JWT)을 씁니다. 수평 확장의 전제 조건입니다.

15. 인증 방식 — 세션 vs JWT? 세션은 서버가 상태를 저장(조회 필요·무효화 쉬움), JWT는 토큰 자체에 정보를 담아 무상태(확장 쉬움·즉시 무효화 어려움)입니다. "확장성 vs 즉시 폐기"의 트레이드오프를 짚으면 됩니다.


면접 준비, 결국은 '매일 조금씩'

이런 질문은 한 번에 벼락치기로 외우면 면접장에서 흔들립니다. 매일 몇 문제씩 꾸준히 풀면서 "내 말로 설명할 수 있는" 상태를 유지하는 게 가장 확실합니다.

저는 그 습관을 만들려고 DDQ(DevQuiz) 앱을 만들었습니다. 백엔드·프론트엔드·CS·데이터베이스·인프라·시스템 디자인 등 8개 카테고리 1,200개 이상의 실전 문제를, 하루 5분 데일리 퀴즈로 풀 수 있습니다. 오답은 자동으로 오답노트에 모이고, 약점 카테고리를 적응형으로 더 자주 물어봐 줍니다. 회원가입 없이 게스트로 바로 둘러볼 수 있어요.

면접 전날 이 글을 다시 훑고, 평소엔 하루 5분씩. 그 정도면 충분합니다. 화이팅!

#백엔드면접#개발자면접#기술면접#CS면접#신입개발자#주니어개발자#면접질문#DDQ
© 2026 DDQ · 지원 · 개인정보