면접 CS 정리 Day 3 (풀스택 / Java·Spring·React)
Q1. 401 vs 403
문제
HTTP 상태코드 401이랑 403 차이?
답
401: 인증이 안 됨 (로그인/토큰 없음·만료)403: 인증은 됐지만 권한이 없음
한 줄: 401 = 누구인지 모름 / 403 = 누군진 알지만 못 함.
Q2. 복합 인덱스 좌측 접두어
문제
복합 인덱스 (user_id, created_at)이 있을 때
아래 중 인덱스를 잘 타는 것 / 못 타는 것은?
- A.
WHERE user_id = ? - B.
WHERE created_at = ? - C.
WHERE user_id = ? AND created_at = ?
답
- A: 탐 (왼쪽 컬럼)
- B: 못 탐 (앞 컬럼 스킵)
- C: 가장 잘 탐 (인덱스 전부 활용)
복합 인덱스는 왼쪽 컬럼부터 써야 한다.
Q3. Dirty Read
문제
Dirty Read가 뭔지 한 줄, 막는 격리수준 이름은?
답
Dirty Read = 다른 트랜잭션이 커밋하기 전 데이터를 읽는 것.
막는 수준: READ COMMITTED
Q4. HashMap vs ConcurrentHashMap
문제HashMap이랑 ConcurrentHashMap 차이? 멀티스레드에서 뭘 써야 하는지.
답HashMap은 스레드 안전하지 않아서, 여러 스레드가 동시에 쓰면
데이터가 깨지거나 예외가 날 수 있다.
공유 Map이면 ConcurrentHashMap을 쓴다.
Q5. @Controller vs @RestController
문제
Spring @Controller랑 @RestController 차이?
답
@Controller: 보통 화면(뷰) 반환@RestController:@Controller+@ResponseBody
→ 반환값이 뷰 이름이 아니라 JSON 등 응답 본문
REST API는 @RestController를 주로 쓴다.
Q6. XSS vs CSRF
문제
XSS랑 CSRF 차이 한 줄씩.
답
- XSS: 페이지에 악의적 스크립트를 삽입해 실행시키는 공격
- CSRF: 로그인된 사용자 브라우저로 원치 않는 요청을 보내게 하는 공격
XSS 완화 예: 출력 이스케이프, 쿠키 HttpOnly
CSRF 완화 예: CSRF 토큰, 쿠키 SameSite
Q7. N+1 문제
문제
N+1 문제가 뭔지, 목록 조회할 때 어떻게 발생하고 어떻게 줄이는지?
답
목록 조회 1번 후, 각 행마다 연관 데이터를 N번 추가 조회하는 문제.
(총 1+N번 쿼리)
줄이는 방법:
- JPA:
fetch join,@EntityGraph, 배치 조회(IN) - MyBatis: JOIN 한 방, id 목록
IN조회 후 조립
오늘 한 줄 암기
- 401 = 인증 X / 403 = 권한 X
- 복합 인덱스
(A,B)→AOK,B만 NO - Dirty Read →
READ COMMITTED - 멀티스레드 Map →
ConcurrentHashMap - N+1 = 목록 1 + 건별 N → fetch join / JOIN / IN
다음 목표
- 복합 인덱스 A도 탄다는 점까지 항상 말하기
- XSS/CSRF 방어 수단 한 가지씩 더 정리
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 6 (풀스택 / Java·Spring·React) (0) | 2026.08.10 |
|---|---|
| # 면접 CS 정리 Day 5 (풀스택 / Java·Spring·React) (1) | 2026.08.05 |
| # 면접 CS 정리 Day 4 (풀스택 / Java·Spring·React) (0) | 2026.08.03 |
| # 면접 CS 정리 Day 2 (풀스택 / Java·Spring·React) (0) | 2026.07.30 |
| # 면접 CS 정리 Day 1 (풀스택 / Java·Spring·React) (0) | 2026.07.29 |
