면접 CS 정리 Day 25 (풀스택 / Java·Spring·React)
Q1. HashSet 중복 방지
문제
원리? equals / hashCode 연결.
답
내부에 HashMap을 쓴다.hashCode로 버킷을 찾고, equals로 같은 값인지 봐서 중복을 막는다.
커스텀 객체는 equals + hashCode 둘 다 오버라이드.keyCode 아님. equals는 주소가 아니라 값 비교.
Q2. @Async
문제
뭔지? 주의점 (self-invocation).
답
메서드를 별도 스레드에서 비동기 실행. 호출부는 보통 기다리지 않음.
주의: 프록시 기반 → this.xxx()면 적용 안 될 수 있음 (@Transactional과 동일).@EnableAsync 필요. 동기가 아님.
Q3. DISTINCT vs GROUP BY
문제
차이.
답
DISTINCT: 결과 중복 제거GROUP BY: 컬럼으로 그룹 (+ 보통COUNT/SUM집계)
Q4. JWT localStorage vs HttpOnly Cookie
문제
LS 저장 리스크 + HttpOnly 이유.
답
localStorage는 JS가 읽음 → XSS 시 토큰 탈취 위험.
HttpOnly Cookie는 JS가 못 읽음 → XSS로 직접 훔치기 어려움.
access를 LS에 두면 XSS에 access는 여전히 노출.
Cookie면 CSRF를 SameSite 등으로 함께 고려.
Q5. Suspense
문제
뭔지? 로딩 UI와 연결.
답
자식이 준비될 때까지 fallback 로딩 UI를 보여주는 경계.React.lazy 코드 스플리팅에 자주 씀. 로딩을 선언적으로 감싼다.
Q6. @Async (복습)
문제
동기/비동기? this 호출.
답
비동기. this 호출은 프록시 미경유 → 안 먹을 수 있음. (abstract 아님)
Q7. HashSet (복습)
문제
내부 + hashCode/equals.
답
내부 HashMap. hashCode=버킷, equals=값 동일 여부.
오늘 한 줄 암기
- HashSet = HashMap + hashCode/equals
- @Async = 비동기 + 프록시(this 주의)
- DISTINCT = 중복 제거 / GROUP BY = 그룹·집계
- LS JWT = XSS 위험 / HttpOnly = JS 차단
- Suspense = fallback 로딩 경계
다음 목표
- @Async를 동기로 말하지 않기
- HashSet을 keyCode/주소 비교로 말하지 않기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 27 (풀스택 / Java·Spring·React) (0) | 2026.09.17 |
|---|---|
| # 면접 CS 정리 Day 26 (풀스택 / Java·Spring·React) (0) | 2026.09.16 |
| # 면접 CS 정리 Day 23 (풀스택 / Java·Spring·React) (0) | 2026.09.09 |
| # 면접 CS 정리 Day 22 (풀스택 / Java·Spring·React) (0) | 2026.09.08 |
| # 면접 CS 정리 Day 21 (풀스택 / Java·Spring·React) (0) | 2026.09.07 |