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

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

Q1. Java record

문제
record가 뭔지? 불변 DTO에 쓰는 이유.

답
불변 데이터 운반용 타입. 생성자·접근자·equals/hashCode/toString 자동 생성.
필드는 사실상 final. 어노테이션이 아니라 타입 선언. setter DTO보다 보일러플레이트↓.

Q2. Request / Session 스코프

문제
@RequestScope / @SessionScope vs singleton.

답

  • singleton: 컨테이너당 1개
  • request: HTTP 요청당 1개
  • session: HTTP 세션당 1개

Service는 거의 singleton. 요청별 상태를 singleton 필드에 넣지 말 것.

Q3. DB 파티셔닝

문제
뭔지? 날짜별 나눌 때 조회/삭제.

답
한 테이블을 기준(날짜 등)으로 물리 구간으로 분할.
조회: 해당 파티션만 (프루닝). 삭제: 오래된 파티션 drop 등으로 대량 삭제 부담↓.

Q4. JWT 구조

문제
세 부분? signature 역할.

답
header.payload.signature.

  • payload: 클레임 (id, exp 등). response 아님
  • signature: 위변조 검증
  • 만료는 exp 확인. Bearer는 전달 방식.

Q5. React batching

문제
배치 업데이트? 여러 setState.

답
여러 setState를 모아 리렌더 한 번으로 처리.
flushSync는 동기 반영이 필요할 때만 (몰라도 OK).

Q6. SELECT * (복습)

문제
피하라는 이유.

답
불필요 컬럼 전송 + 커버링 인덱스 깨짐. 풀스캔과 동일시하지 말 것.

Q7. JWT signature (복습)

문제
signature 역할.

답
헤더+페이로드 위변조 여부 검증.

오늘 한 줄 암기

  1. record = 불변 데이터 타입 (보일러플레이트↓)
  2. request/session 스코프 ≠ singleton
  3. 파티셔닝 = 큰 테이블 구간 분할
  4. JWT = header.payload.signature (서명은 위변조 검증)
  5. React batching = setState 모아 렌더 1번

다음 목표

  • JWT payload를 response로, signature를 Bearer/만료와 섞지 않기
  • Bean 스코프를 “파라미터 꺼내기”로 말하지 않기