면접 CS 정리 Day 11 (풀스택 / Java·Spring·React)
Q1. interface vs abstract class
문제
interface랑 abstract class 차이? 다중 상속, 필드, 생성자 기준.
답
- interface: 여러 개 구현 가능, 생성자 없음, 상수 위주
- abstract class: 클래스는 하나만 상속, 생성자 있음, 인스턴스 필드 가능
- 둘 다 직접
new불가. abstract 생성자는 자식이super()로 호출
역할(계약)만이면 interface, 공통 구현·상태를 물려줄 때면 abstract class.
Q2. @Component / @Service / @Repository
문제
셋 다 Bean 등록인데 왜 나누나?
답@Service / @Repository는 @Component의 특화(스테레오타입). 셋 다 스캔되어 Bean이 된다.
- 계층 의미: Repository=DB, Service=비즈니스, Component=기타
@Repository는 DB 예외를DataAccessException으로 변환
인터페이스라서 붙이는 게 아니라 역할 따라 붙인다.
Q3. Virtual DOM
문제
Virtual DOM이 뭔지, 실제 DOM을 매번 안 건드리는 이유.
답
실제 DOM을 흉내 낸 가벼운 JS 객체 트리.
이전/이후를 diff해서 바뀐 부분만 실제 DOM에 반영한다.
실제 DOM 조작이 비싸서 전체를 다시 그리지 않는다.
Q4. HTTPS
문제
HTTPS가 HTTP보다 안전한 이유? HTTP + ? = HTTPS인지.
답
HTTPS = HTTP + TLS. (SSL은 옛 이름)
클라이언트↔서버 구간을 암호화하고, 인증서로 서버를 검증하며 위변조도 막는다.
Q5. OFFSET 페이징
문제LIMIT 10 OFFSET 100000이 느릴 수 있는 이유 + 대안.
답
OFFSET은 앞 행을 건너뛰려고 읽고 버린다. 페이지가 깊을수록 느리다.
대안: 커서(keyset) 페이징 — WHERE id < 마지막id ORDER BY id DESC LIMIT 10
Q6. REQUIRED vs REQUIRES_NEW
문제
트랜잭션이 이미 있을 때 각각?
답
REQUIRED: 기존에 참여REQUIRES_NEW: 새 트랜잭션 (기존은 잠시 보류)
없을 때는 둘 다 새로 시작.있으면 쓰고 없으면 안 씀 = SUPPORTS. 이름 철자: REQUIRES_NEW.
Q7. Dirty / Non-repeatable / Phantom
문제
세 현상 + 막는 최소 격리수준.
답
- Dirty Read: 커밋 전 읽기 →
READ COMMITTED - Non-repeatable Read: 같은 행 값 변경 →
REPEATABLE READ - Phantom Read: 행이 늘거나 줄어듦 →
SERIALIZABLE
SUPPORTS는 트랜잭션 전파이지 격리수준이 아니다.
오늘 한 줄 암기
- interface = 다중 구현, 생성자 없음 / abstract = 단일 상속, 생성자 있음
@Repository= Component 특화 + 예외 변환- HTTPS = HTTP + TLS
- OFFSET 깊을수록 느림 → 커서 페이징
- Phantom 막는 수준 =
SERIALIZABLE(SUPPORTS 아님)
다음 목표
- 격리수준 3종을 현상 한 줄 + 이름까지 세트로 말하기
- SUPPORTS(전파) vs SERIALIZABLE(격리) 섞지 않기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 13 (풀스택 / Java·Spring·React) (0) | 2026.08.24 |
|---|---|
| # 면접 CS 정리 Day 12 (풀스택 / Java·Spring·React) (0) | 2026.08.19 |
| # 면접 CS 정리 Day 10 (풀스택 / Java·Spring·React) (0) | 2026.08.14 |
| # 면접 CS 정리 Day 9 (풀스택 / Java·Spring·React) (0) | 2026.08.13 |
| # 면접 CS 정리 Day 8 (풀스택 / Java·Spring·React) (0) | 2026.08.12 |
