면접 CS 정리 Day 32 (풀스택 / Java·Spring·React)
Q1. ThreadLocal
문제
뭔지? 요청 끝 remove() 이유.
답
스레드마다 따로 값을 담는 저장소.
웹은 스레드 풀을 재사용하므로 remove() 안 하면 다음 요청이 같은 스레드를 받을 때 이전 사용자 정보가 남을 수 있다.
“로컬에서 도는 스레드”가 아님.
Q2. @SpringBootApplication
문제
합쳐진 어노테이션? 스캔 범위.
답
대략 @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan.
스캔은 메인 클래스 패키지와 하위. 메인보다 위 패키지는 스캔 안 될 수 있음.
Q3. SELECT * 피하기
문제
이유 2가지. 풀스캔인가?
답
- 불필요 컬럼 → 네트워크·메모리 낭비
- 커버링 인덱스가 깨져 테이블 재접근
SELECT * ≠ 바로 풀스캔. 풀스캔은 WHERE/인덱스 이슈에 가깝다.
Q4. HTTPS 인증서 만료 / 검증
문제
만료 시? 인증서 검증 이유.
답
브라우저 경고/차단. HTTP로만 열린다는 뜻은 아님.
검증 = 서버가 진짜인지 확인 → 중간자(MITM) 방지.
Q5. useId
문제
뭔지? SSR에서 id를 맞추는 이유.
답
컴포넌트용 고유 id 훅 (label/input 연결 등).
SSR hydration 때 서버·클라이언트 HTML id가 같아야 해서, 일관된 id를 제공한다.
라우팅 인덱스와 무관.
Q6. ThreadLocal (복습)
문제
remove 안 하면?
답
같은 스레드 재사용 시 이전 요청 정보가 남을 수 있음.
Q7. @Transactional (복습)
문제
클래스 vs 메서드 우선? private?
답
메서드 우선. private는 프록시 미적용 → 트랜잭션 안 먹을 수 있음.
오늘 한 줄 암기
- ThreadLocal = 스레드별 저장소 → 끝이면 remove
- Boot 스캔 = 메인 패키지 이하
- SELECT * ≠ 풀스캔, 불필요 I/O·커버링 깨짐
- 인증서 = MITM 방지 / 만료 = 경고
- useId = SSR용 안정적 고유 id
다음 목표
- SELECT *를 풀스캔 원인으로 단정하지 않기
- ThreadLocal을 “로컬 스레드”로 말하지 않기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 33 (풀스택 / Java·Spring·React) (0) | 2026.10.01 |
|---|---|
| # 면접 CS 정리 Day 31 (풀스택 / Java·Spring·React) (0) | 2026.09.23 |
| # 면접 CS 정리 Day 30 (풀스택 / Java·Spring·React) (0) | 2026.09.22 |
| # 면접 CS 정리 Day 29 (풀스택 / Java·Spring·React) (0) | 2026.09.21 |
| # 면접 CS 정리 Day 28 (풀스택 / Java·Spring·React) (0) | 2026.09.18 |