면접 CS 정리 Day 12 (풀스택 / Java·Spring·React)
Q1. 스택 vs 힙
문제
JVM에서 스택이랑 힙 차이? 지역 변수 / 객체는 어디에?
답
- 스택: 지역 변수, 메서드 호출 정보. 스레드마다 있음
- 힙:
new로 만든 객체. GC가 회수
User u = new User() → 참조 u는 스택, 객체는 힙.
자료구조 LIFO 스택이랑 헷갈리지 말 것.
Q2. int vs Integer
문제
차이 한 줄. Integer가 null일 때 언박싱하면?
답
int: 기본형, null 불가, 기본값0Integer: 래퍼 객체, null 가능
null Integer를 int로 언박싱하면 NullPointerException.
Q3. useMemo vs useCallback
문제
각각 무엇을 캐시하나?
답
useMemo: 계산 결과(값) 캐시useCallback: 함수 참조 캐시
컴포넌트 재사용은 React.memo, API 캐시는 React Query 쪽.useCallback(fn, deps) ≈ useMemo(() => fn, deps)
Q4. 데드락
문제
데드락이 뭔지 + 발생 조건 하나.
답
서로가 가진 락을 기다리며 아무도 못 끝나는 상태.
동시 접근만으로 생기진 않고, 락을 엇갈려 잡을 때 난다.
예방: 락 순서를 같게 (항상 작은 id부터).
Q5. TCP 3-way handshake
문제
뭐 하는 과정인지. SYN / ? / ?
답
TCP 연결을 양쪽으로 맞추는 과정.
- 클라이언트 → 서버:
SYN - 서버 → 클라이언트:
SYN+ACK - 클라이언트 → 서버:
ACK
Q6. @Transactional(readOnly = true)
문제
조회에 붙이는 이유? 쓰기 메서드에 붙이면?
답
조회 시 플러시/더티체킹을 줄이고 DB에 읽기 힌트를 준다.
트랜잭션이 안 먹는 게 아니라, 읽기 전용이라 쓰기가 실패하거나 반영이 안 될 수 있다.
Q7. Dirty / Non-repeatable / Phantom
문제
한 줄씩 + 막는 최소 격리수준.
답
- Dirty Read: 커밋 전 읽기 →
READ COMMITTED - Non-repeatable Read: 같은 행 값 변경 →
REPEATABLE READ - Phantom Read: 행이 늘거나 줄어듦 →
SERIALIZABLE
오늘 한 줄 암기
- 지역변수·참조 = 스택 / 객체 = 힙
Integernull 언박싱 = NPE- useMemo = 값 / useCallback = 함수
- 3-way = SYN → SYN+ACK → ACK
- Phantom = SERIALIZABLE
다음 목표
- useMemo를 “컴포넌트 캐시”, useCallback을 “API 캐시”로 말하지 않기
- 데드락 = 동시 접근이 아니라 락 교차 대기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 14 (풀스택 / Java·Spring·React) (0) | 2026.08.25 |
|---|---|
| # 면접 CS 정리 Day 13 (풀스택 / Java·Spring·React) (0) | 2026.08.24 |
| # 면접 CS 정리 Day 11 (풀스택 / Java·Spring·React) (0) | 2026.08.18 |
| # 면접 CS 정리 Day 10 (풀스택 / Java·Spring·React) (0) | 2026.08.14 |
| # 면접 CS 정리 Day 9 (풀스택 / Java·Spring·React) (0) | 2026.08.13 |
