면접 CS 정리 Day 13 (풀스택 / Java·Spring·React)
Q1. static
문제static이 변수/메서드에 붙으면? static 메서드에서 인스턴스 필드를 바로 쓸 수 있나?
답static 멤버는 클래스에 속함. new 없이 클래스명.메서드()로 호출 가능.static 변수는 인스턴스마다 생기지 않고 공유된다.
static 메서드에서는 this가 없어 인스턴스 필드를 직접 접근할 수 없다.
Q2. REST stateless
문제
REST API에서 stateless가 뭔지? JWT와 어떻게 연결되나?
답
서버가 요청 사이에 클라이언트 상태를 기억하지 않는다. 각 요청만으로 처리 가능해야 한다.
세션은 서버에 로그인 상태를 두므로 stateful에 가깝고,
JWT는 토큰으로 인증 정보를 넘기고 서버는 검증만 해서 stateless API에 잘 맞는다.
세션 만료·access 짧게는 별개 이슈 (만료 정책 / 탈취 피해 축소).
Q3. DNS
문제
DNS가 뭔지, https://api.example.com 접속 시 하는 일.
답
도메인 이름을 IP 주소로 바꿔 주는 시스템.api.example.com → 서버 IP를 찾아 TCP 연결로 이어진다.
Q4. JPA 영속성 컨텍스트
문제
영속성 컨텍스트가 뭔지? 같은 트랜잭션에서 같은 엔티티를 두 번 조회하면 쿼리 1번인 이유.
답
JPA가 엔티티를 관리하는 1차 캐시(작업 공간).
조회: 1차 캐시 → 없으면 DB.
같은 id 재조회 시 캐시에서 반환되어 SQL이 1번만 나간다.
Q5. Redis 캐시
문제
Redis를 DB 대신이 아니라 캐시로 쓰는 이유.
답
메모리(In-memory) 기반이라 DB보다 훨씬 빠르다.
Redis 먼저 조회 → 없으면 DB 조회 후 Redis에 저장.
자주 읽는 데이터의 응답 속도·DB 부하를 줄인다.
Q6. Controlled vs Uncontrolled input
문제
값을 누가 관리하는지로 차이.
답
- Controlled: 값을 React
state가 관리 (value+onChange) - Uncontrolled: 값을 브라우저(DOM)이 관리 (
defaultValue+ref로 읽기)
React도 state 변경 시 실제 DOM을 갱신한다.
Uncontrolled는 input 값을 state에 올리지 않고 DOM에 맡기는 방식.
Q7. useMemo vs useCallback
문제
각각 무엇을 캐시하나?
답
useMemo: 계산 결과(값) 캐시useCallback: 함수 참조 캐시
컴포넌트 캐시 = React.memo, API 캐시 = React Query 등.
오늘 한 줄 암기
- static = 클래스 단위, 인스턴스 필드 직접 접근 X
- REST stateless = 서버가 요청 간 상태 안 들고 있음
- DNS = 도메인 → IP
- 영속성 컨텍스트 = JPA 1차 캐시
- Controlled = state / Uncontrolled = DOM
다음 목표
- stateless를 “세션 만료”랑 섞지 않기
- Controlled/Uncontrolled를 input 값 소유 주체로 설명하기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 15 (풀스택 / Java·Spring·React) (0) | 2026.08.27 |
|---|---|
| # 면접 CS 정리 Day 14 (풀스택 / Java·Spring·React) (0) | 2026.08.25 |
| # 면접 CS 정리 Day 12 (풀스택 / Java·Spring·React) (0) | 2026.08.19 |
| # 면접 CS 정리 Day 11 (풀스택 / Java·Spring·React) (0) | 2026.08.18 |
| # 면접 CS 정리 Day 10 (풀스택 / Java·Spring·React) (0) | 2026.08.14 |
