백엔드 면접을 준비하면서 "어떤 질문이 나올까?" 막막하신가요? 기술 면접은 범위가 넓어서 어디부터 시작해야 할지 고민되죠.
실제 면접 질문 모음[3]과 현직자 인터뷰[2], 최신 면접 가이드[1]를 분석해서, 가장 자주 나오는 핵심 질문 10가지를 정리했어요. 각 질문의 출제 의도와 답변 포인트도 함께 알아볼게요.
1. 프로세스와 스레드의 차이를 설명해주세요
출제 의도: OS 기초 이해도 확인 — 기초 중의 기초로 분류되는 단골 질문이에요[2].
핵심 답변 포인트:
프로세스: 운영체제로부터 자원을 할당받는 독립적인 작업 단위. 고유한 메모리 공간(Code, Data, Stack, Heap)을 가짐
스레드: 프로세스 내에서 실행되는 작업 단위. 프로세스의 자원(Heap)을 공유하되, 각자의 Stack을 가짐
확장: 멀티프로세스 vs 멀티스레드의 장단점, 컨텍스트 스위칭 비용까지 언급하면 좋아요
2. HTTP GET과 POST의 차이는 무엇인가요?
출제 의도: 웹 통신의 기본 이해[2].
핵심 답변 포인트:
GET: 데이터 조회용, URL에 파라미터 포함, 캐싱 가능, 브라우저 히스토리에 남음
POST: 데이터 생성/수정용, Body에 데이터 포함, 캐싱 불가
REST API 관점에서 PUT, PATCH, DELETE까지 함께 설명할 수 있으면 가점[4]
3. RDB와 NoSQL의 차이를 설명해주세요
출제 의도: 데이터베이스 선택 기준에 대한 이해[2].
핵심 답변 포인트:
RDB: 고정 스키마, 관계 기반, ACID 보장, 정규화 → 데이터 무결성이 중요한 경우
NoSQL: 유연한 스키마, 수평 확장 용이, 데이터 중복 가능 → 대용량, 비정형 데이터
MySQL, PostgreSQL, MongoDB 등 각각의 특성도 알아두면 좋아요
4. 데이터베이스 인덱스란 무엇이고, 왜 사용하나요?
핵심 답변 포인트:
인덱스는 데이터의 주소를 저장해 검색 속도를 향상시키는 자료구조
B-Tree, Hash 인덱스 등 종류와 특징
장점: 조회 속도 향상 → 단점: 쓰기 작업 시 오버헤드, 추가 저장 공간 필요
확장: "어떤 컬럼에 인덱스를 걸어야 할까?" 까지 답할 수 있으면 좋아요
5. Spring의 IoC와 DI란 무엇인가요?
출제 의도: Spring Boot 핵심 개념 이해[1].
핵심 답변 포인트:
IoC(제어의 역전): 객체의 생성과 생명주기를 개발자가 아닌 Spring 컨테이너가 관리
DI(의존성 주입): 필요한 객체를 직접 생성하지 않고 외부에서 주입받는 것
결합도를 낮추고, 테스트 가능성을 높이며, 코드 재사용성을 향상
주입 방법: 생성자 주입(권장), 세터 주입, 필드 주입
6. JPA의 N+1 문제란 무엇이고, 어떻게 해결하나요?
출제 의도: ORM 사용 시 발생하는 성능 문제 인식[1][4].
핵심 답변 포인트:
연관 엔티티를 조회할 때, 1번의 쿼리로 N개의 엔티티를 가져온 후, 각각에 대해 N번의 추가 쿼리가 발생하는 문제
해결 방법: Fetch Join, EntityGraph, Batch Size 설정
Eager Loading vs Lazy Loading의 차이와 적절한 사용 시점[1]
7. REST API 설계 원칙을 설명해주세요
출제 의도: API 설계 역량 확인[4].
핵심 답변 포인트:
자원 중심 URI:
/users/123(명사) —/getUser(동사) ❌HTTP 메서드 활용: GET(조회), POST(생성), PUT(전체 수정), PATCH(일부 수정), DELETE(삭제)
상태 코드 활용: 200(성공), 201(생성), 400(잘못된 요청), 404(없음), 500(서버 오류)
API 버전닝 전략: URI 방식(
/v1/users), 헤더 방식[4]
8. 트랜잭션의 ACID 속성을 설명해주세요
출제 의도: 데이터 무결성에 대한 이해[4].
핵심 답변 포인트:
Atomicity(원자성): 트랜잭션은 전부 성공하거나 전부 실패
Consistency(일관성): 트랜잭션 전후로 데이터는 일관된 상태 유지
Isolation(격리성): 동시 실행 트랜잭션은 서로 간섭하지 않음
Durability(영속성): 완료된 트랜잭션은 영구 보존
확장: 격리 수준(READ UNCOMMITTED ~ SERIALIZABLE)까지 설명하면 가점
9. 캐싱이란 무엇이고, 어디에 활용하나요?
핵심 답변 포인트:
자주 사용되는 데이터를 빠른 저장소에 임시 보관하여 접근 속도를 높이는 기법
종류: 브라우저 캐시, CDN 캐시, 서버 캐시(Redis), DB 쿼리 캐시
주의점: 캐시 무효화(invalidation) 전략이 핵심 — TTL, Write-through, Write-behind
LRU(Least Recently Used) 캐시 알고리즘 설명[2]
10. 대용량 트래픽을 어떻게 처리하시겠어요?
출제 의도: 시스템 설계 사고력 — 경력이 쌓일수록 더 비중 있게 다뤄지는 질문이에요[1][2].
핵심 답변 포인트:
로드 밸런싱: 여러 서버에 트래픽 분산
스케일링: 수직 확장(Scale-up) vs 수평 확장(Scale-out)
캐싱: Redis 등으로 DB 부하 감소
비동기 처리: 메시지 큐(Kafka, RabbitMQ) 활용
DB 최적화: 읽기/쓰기 분리(Read Replica), 샤딩
확장: MSA(마이크로서비스) vs 모놀리식 아키텍처 비교까지[2]
면접 준비 팁
단순 암기보다 "왜?"에 집중하세요
면접관은 정답을 외우는 사람이 아니라, 원리를 이해하고 적용할 수 있는 사람을 찾아요. "인덱스가 뭔가요?"에 대한 정의보다, "이 상황에서 인덱스를 걸어야 할까요?"에 대한 판단이 더 중요해요.
프로젝트 경험을 연결하세요
"N+1 문제를 아시나요?" 다음에는 반드시 "직접 경험해보셨나요?"가 따라와요. 이론을 알면서 실제 프로젝트에서 적용해본 경험까지 있으면 훨씬 강력해요[1].
모의 면접으로 실전 감각을 익히세요
혼자 정리하는 것과 실제로 말하는 것은 달라요. 트리업의 모의 면접으로 실전처럼 연습해보세요. 말로 설명하는 연습이 면접 당일 자신감을 만들어요.
마무리
백엔드 면접은 범위가 넓지만, 자주 나오는 핵심 질문은 정해져 있어요. 이 10가지를 깊이 있게 준비하면 대부분의 기술 면접에서 자신감을 가질 수 있어요. 이론 + 프로젝트 경험 + 말하기 연습, 이 세 가지를 균형 있게 준비하세요!