# 면접 CS 정리 Day 27 (풀스택 / Java·Spring·React)

면접 CS 정리 Day 27 (풀스택 / Java·Spring·React)

Q1. orElse vs orElseGet

문제
차이? 언제 기본값이 만들어지나?

답

  • orElse(x): 값이 있어도 x를 항상 평가·생성
  • orElseGet(() -> x): Optional이 비어 있을 때만 supplier 실행

기본값 생성이 비싸면 orElseGet.

Q2. yml vs properties

문제
기능 차이? yml을 많이 쓰는 이유.

답
Spring Boot에서 기능은 동일, 문법·가독성 차이.

  • yml: 계층·들여쓰기 → 짧고 직관적
  • properties: 키를 매번 풀네임으로 → 길어짐

Q3. ROW_NUMBER()

문제
뭔지? GROUP BY와 차이.

답
파티션 안 행에 순번을 붙이는 윈도우 함수.
GROUP BY는 행을 줄이고, 윈도우 함수는 행을 유지한 채 컬럼 추가.

유저별 최신 1건 (rn = 1) 등에 사용.

Q4. Idempotency-Key

문제
뭔지? 같은 키로 POST 2번이면?

답
요청에 붙이는 멱등 키.
같은 키면 재생성하지 않고 첫 결과와 같은 응답.
POST 기본은 비멱등 → 키(+ UNIQUE)로 중복 생성 방지.

Q5. React.lazy + Suspense

문제
코드 스플리팅 이유? 첫 로딩.

답
필요한 시점에 JS 청크를 로드.
초기 번들↓ → 첫 로딩 가벼움. 로딩 중은 Suspense fallback.

Q6. orElse / orElseGet (복습)

문제
값이 있어도 실행되는 쪽.

답
orElse = 항상 / orElseGet = 비어 있을 때만.

Q7. 커버링 인덱스 (복습)

문제
한 줄. 테이블을 왜 안 보나?

답
그 쿼리에 필요한 컬럼이 인덱스에 전부 있어 인덱스만으로 결과 생성.
테이블 전체 컬럼을 인덱스로 잡으라는 뜻이 아님.

오늘 한 줄 암기

  1. orElse 항상 평가 / orElseGet 없을 때만
  2. yml·properties = 기능 동일, 가독성 차이
  3. ROW_NUMBER = 행 유지 + 순번
  4. Idempotency-Key = 같은 키·같은 결과
  5. 커버링 = 쿼리 필요 컬럼이 인덱스에 다 있음

다음 목표

  • 커버링을 “전체 컬럼 인덱스”로 말하지 않기
  • orElse / orElseGet 평가 시점 구분