면접 CS 정리 Day 29 (풀스택 / Java·Spring·React)
Q1. Integer 캐시
문제Integer 100은 == true, 200은 false일 수 있는 이유?
답
자바는 Integer -128~127을 캐시해 재사용한다.
캐시 안이면 같은 객체 → == true, 밖이면 새 객체 → == false.
값 비교는 항상 equals. ==는 참조 비교.
Q2. 순환 참조 (circular dependency)
문제
순환 참조가 뭔지? 생성자 주입이면 왜 실패하나?
답
A↔B처럼 Bean이 서로 주입받는 구조.
생성자 주입은 생성 시점에 의존성이 이미 있어야 해서 서로 기다리며 기동 실패.
실행 중 무한 루프라기보다 Bean 생성 순서 문제.
해결: 의존 분리, 이벤트/인터페이스. @Lazy는 우회일 뿐.
Q3. NULL 비교
문제WHERE col = NULL이 안 되는 이유? 대신?
답NULL은 = 비교가 true가 되지 않는다 (unknown).WHERE col IS NULL / IS NOT NULL을 쓴다.
Q4. HTTP/1.1 vs HTTP/2
문제
차이? 같은 연결에서 요청을 동시에 보내는 쪽은?
답
HTTP/2. 한 연결에서 스트림으로 멀티플렉싱.
HTTP/1.1은 한 연결에서 요청을 보통 순차로 처리해 앞 요청이 뒤를 막을 수 있다.
Q5. useEffect vs useLayoutEffect
문제
페인트 전/후 기준 차이.
답
useEffect: 화면 그린 뒤 (API 등)useLayoutEffect: DOM 반영 후, 그리기 전 (측정·동기 DOM 보정)
Q6. 커버링 인덱스 (복습)
문제
테이블 전체 컬럼 인덱스인가?
답
아님. 그 쿼리에 필요한 컬럼이 인덱스에 있으면 테이블 본문 없이 조회.
Q7. REQUIRES_NEW (복습)
문제
안쪽 커밋 후 바깥 롤백.
답
안쪽은 별도 트랜잭션이라 커밋분 유지. 바깥 롤백에 같이 안 풀림.
오늘 한 줄 암기
- Integer -128~127 캐시 →
==함정 / 비교는 equals - 순환 참조 = Bean 생성 서로 대기 → 기동 실패
- NULL =
IS NULL(=아님) - HTTP/2 = 멀티플렉싱
- 커버링 = 쿼리 필요 컬럼이 인덱스에 (전체 테이블 X)
다음 목표
- 커버링 인덱스를 또 “전체 컬럼”으로 말하지 않기
- Integer
==를 equals/주소만으로 뭉개지 말고 캐시 범위로 말하기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 31 (풀스택 / Java·Spring·React) (0) | 2026.09.23 |
|---|---|
| # 면접 CS 정리 Day 30 (풀스택 / Java·Spring·React) (0) | 2026.09.22 |
| # 면접 CS 정리 Day 28 (풀스택 / Java·Spring·React) (0) | 2026.09.18 |
| # 면접 CS 정리 Day 27 (풀스택 / Java·Spring·React) (0) | 2026.09.17 |
| # 면접 CS 정리 Day 26 (풀스택 / Java·Spring·React) (0) | 2026.09.16 |