# 백엔드 개발자 / 백엔드 엔지니어 면접 질문 리스트
## 1. 기본적인 질문 (주니어 ~ 전반 공통)
> 주로 신입/주니어 또는 공통적으로 물어보는 CS & 실무 기본기 질문입니다.
### 📌 자기소개 & 프로젝트
- 간단하게 자기소개와 본인의 강점을 말씀해주세요.
- 최근에 진행한 프로젝트에 대해 설명해주세요.
- 프로젝트에서 맡았던 역할과 주요 기여 부분은 무엇인가요?
- 개발 중 가장 어려웠던 문제와 이를 어떻게 해결했는지 설명해주세요.
### 📌 언어 & 프레임워크
- Spring MVC와 Spring Boot의 차이점은 무엇인가요?
- Java에서 `==`와 `.equals()`의 차이를 설명해주세요.
- 자바의 `final`, `finally`, `finalize()`의 차이는 무엇인가요?
- RESTful API란 무엇이고 설계 시 주의할 점은 무엇인가요?
- @Transactional의 동작 방식은 어떻게 되나요?
### 📌 데이터베이스
- RDB와 NoSQL의 차이점과 각각의 장단점은?
- 인덱스(Index)의 동작 원리와 장단점을 설명해주세요.
- JOIN의 종류와 각 사용 사례를 설명해주세요.
- N+1 문제는 무엇이며, 어떻게 해결하나요?
- 데이터베이스 트랜잭션 격리 수준을 설명해주세요.
### 📌 네트워크 & HTTP
- HTTP와 HTTPS의 차이는 무엇인가요?
- HTTP 상태 코드 중 200, 201, 301, 400, 401, 403, 404, 500의 의미를 설명해주세요.
- GET과 POST의 차이점은 무엇인가요?
- 쿠키와 세션의 차이점은?
- CORS란 무엇이며, 해결 방법은 무엇인가요?
### 📌 운영 & 배포
- CI/CD의 개념과 사용하는 이유는 무엇인가요?
- Docker를 사용하는 이유와 장점은 무엇인가요?
- 서버 장애 발생 시 어떤 순서로 문제를 파악하나요?
---
## 2. 경력자에게 주로 던지는 심화 질문
> 주로 **설계 능력, 성능 최적화 경험, 트러블슈팅, 팀 협업** 관련 질문이 많습니다.
### 📌 설계 & 아키텍처
- MSA(Microservices Architecture)와 Monolithic의 차이점과 장단점은?
- 대규모 트래픽이 발생하는 서비스에서 부하를 분산하기 위한 방법은?
- 캐시(Cache) 전략은 어떻게 설계하셨나요?
- API 응답 속도가 느릴 때 어떤 방식으로 분석하고 개선하셨나요?
- 장애 대응 매뉴얼을 만든 적이 있나요?
### 📌 성능 최적화 & 트러블슈팅
- 쿼리 튜닝 경험을 설명해주세요. (예: 실행 계획, 인덱스 조정)
- Redis를 사용한 경험이 있나요? 어떤 용도로 사용했나요?
- 대용량 데이터 처리 시 어떤 접근 방식을 사용했나요?
- JPA의 fetch join, batch size, entity graph 등을 적용한 경험이 있나요?
- 동시성 문제를 해결한 경험이 있나요? (예: synchronized, Lock, Redis 분산 락)
### 📌 보안
- JWT 인증의 동작 과정을 설명해주세요.
- CSRF, XSS, SQL Injection을 방지하는 방법은?
- OAuth2.0과 OpenID Connect의 차이점은?
- HTTPS에서 SSL/TLS 핸드셰이크 과정은?
### 📌 협업 & 코드 품질
- 코드 리뷰를 어떻게 진행하나요?
- Git 브랜치 전략(Git Flow 등)을 설명해주세요.
- CI/CD에서 테스트 자동화를 어떻게 구성했나요?
- 장애 발생 시 DevOps/SRE 팀과 어떻게 협력했나요?
### 📌 경험 기반 질문
- 실제로 성능을 2배 이상 개선했던 사례가 있다면 설명해주세요.
- 서비스 장애나 심각한 버그를 해결했던 경험을 이야기해주세요.
- 설계 단계에서 잘못된 의사결정을 한 경험과 이를 어떻게 수정했는지 설명해주세요.
- 배포 후 롤백이 필요한 상황이 발생했을 때 어떻게 처리했나요?
---
## 3. 보너스 – 압박 면접 스타일 질문
- 당신의 코드에서 가장 부끄러운 부분은 무엇이었나요?
- 팀 내에서 당신을 대체할 수 있는 사람이 있다면, 당신이 여기 있어야 하는 이유는?
- 최근에 새로 배운 기술 중에서, 실무에 당장 적용할 수 있는 것은?
- 1억 명의 사용자가 동시에 접속하는 시스템을 설계해보세요.
- 기존 시스템을 무중단 배포로 전환하려면 어떻게 해야 하나요?
Markdown
복사

