면접 CS 정리 Day 5 (풀스택 / Java·Spring·React)
Q1. == vs equals (문자열)
문제
자바에서 문자열 비교할 때 == 쓰지 말고 equals 쓰는 이유?
답
==: 주소(참조) 비교equals: 값(내용) 비교
값이 같아도 객체가 다르면 ==는 false, equals는 true.
문자열은 항상 equals로 비교한다.
Q2. IoC / DI
문제
Spring IoC랑 DI가 뭔지 한 줄씩, 왜 new로 직접 안 만들고 주입받는지?
답
- IoC: 객체 생성·조립 제어를 컨테이너에 넘김
- DI: 필요한 의존 객체를 컨테이너가 주입
new 대신 주입하는 이유:
- 결합도 감소
- 테스트 시 mock 교체 용이
- 생명주기·AOP(트랜잭션 등) 적용이 쉬움
(메모리 절약만의 이유는 아님)
Q3. PUT vs PATCH
문제PUT이랑 PATCH 차이?
답
PUT: 리소스 전체 교체 (빠진 필드가 null로 덮일 수 있음)PATCH: 부분 수정 (넘어온 필드만 변경)
Q4. final 키워드
문제
자바 final이 변수 / 메서드 / 클래스에 붙으면 각각 뭐가 막히는지?
답
- 변수: 재할당 불가
- 메서드: 오버라이드 불가
- 클래스: 상속 불가
final이라고 해서 객체 내부 필드까지 무조건 불변은 아니다.
Q5. 전역 예외 처리
문제
API 예외를 컨트롤러마다 try-catch 안 하고 공통 JSON으로 내리려면 Spring에서 뭘 쓰는지?
답@RestControllerAdvice + @ExceptionHandler로 전역 처리한다.
비즈니스 예외(보통 unchecked)를 던지고, 여기서 잡아 상태코드·JSON 포맷을 통일한다.
Q6. 인덱스 + 컬럼 함수
문제
인덱스가 있는데도 WHERE YEAR(created_at) = 2024처럼
컬럼에 함수를 씌우면 왜 느려질 수 있는지?
답
인덱스는 보통 컬럼 원본 값 기준으로 만들어진다.
컬럼에 함수를 씌우면 인덱스와 바로 매칭되지 않아 인덱스를 못 타고 풀스캔이 나기 쉽다.
개선 예:created_at >= '2024-01-01' AND created_at < '2025-01-01'
Q7. state vs props
문제
React에서 state랑 props 차이 한 줄씩.
답
state: 컴포넌트 내부 상태, 해당 컴포넌트가 변경 가능props: 부모가 자식에게 내려주는 값, 자식은 읽기 전용
오늘 한 줄 암기
=== 주소 /equals= 값 (반대 주의)- IoC = 제어를 컨테이너에 / DI = 의존성 주입
- PUT 전체 / PATCH 부분
- final: 변수=재할당X, 메서드=오버라이드X, 클래스=상속X
- 컬럼에 함수 씌우면 인덱스 못 탈 수 있음
다음 목표
==/equals매일 한 번씩 복습 (반복 오답)- IoC/DI를 “테스트·결합도” 관점으로 말하기
'기타 > CS 질문' 카테고리의 다른 글
| # 면접 CS 정리 Day 7 (풀스택 / Java·Spring·React) (0) | 2026.08.12 |
|---|---|
| # 면접 CS 정리 Day 6 (풀스택 / Java·Spring·React) (0) | 2026.08.10 |
| # 면접 CS 정리 Day 4 (풀스택 / Java·Spring·React) (0) | 2026.08.03 |
| # 면접 CS 정리 Day 3 (풀스택 / Java·Spring·React) (0) | 2026.07.31 |
| # 면접 CS 정리 Day 2 (풀스택 / Java·Spring·React) (0) | 2026.07.30 |
