by Chat GPT
자료구조와 알고리즘을 암기해서 대답 할 수 있는가
CS 면접 단골 질문 모음 (핵심만)
자료구조(Data Structure)
- 배열(Array) vs 연결 리스트(Linked List) 차이
- 스택(Stack)과 큐(Queue)의 차이 / 사용 예시
- 해시 테이블(Hash Table)의 동작 방식
- 트리(Tree)와 그래프(Graph)의 차이
- 이진 탐색 트리(BST) vs 힙(Heap)
- 시간 복잡도(Big-O notation)를 설명해보세요.
⚙️ 알고리즘(Algorithm)
- 정렬 알고리즘 종류와 차이 (퀵/병합/버블/삽입 등)
- 그리디 알고리즘이란? 예시
- DP(동적 계획법)과 메모이제이션의 차이
- DFS vs BFS 차이
- 해싱 충돌 해결 방식 (체이닝 vs 오픈 어드레싱)
운영체제(OS)
- 프로세스 vs 스레드 차이
- 컨텍스트 스위칭(Context Switching)은 무엇인가
- CPU 스케줄링 알고리즘 종류
- 뮤텍스(Mutex) vs 세마포어(Semaphore) 차이
- 메모리 구조(Heap, Stack 차이)
- 가상 메모리(Virtual Memory)란?
- 교착상태(Deadlock) 조건 4가지
네트워크(Network)
- TCP vs UDP 차이
- 3-way handshake / 4-way handshake 설명
- DNS가 뭐고 어떻게 동작하는가
- HTTP vs HTTPS
- 쿠키(Cookie), 세션(Session), JWT 차이
- REST API의 특징
- OSI 7계층 각 계층 역할
Database
- SQL vs NoSQL 차이
- 트랜잭션(Transaction) ACID
- 인덱스(Index)는 어떻게 동작하는가
- JOIN 종류
- 정규화(Normalization)
기본 보안
- 암호화(대칭키 vs 비대칭키) 차이
- XSS, CSRF 설명
- 해시 함수(Hash Function)의 특징
프론트
🚀 React + JS/TS 프론트엔드 면접 단골 질문 모음
React 기본 개념
- React의 핵심 개념(Declarative, Component-based, Virtual DOM)을 설명해보세요.
- Virtual DOM이 무엇이며 어떻게 렌더링 성능을 높이나요?
- React의 렌더링 과정(Reconciliation)을 설명해보세요.
- Props vs State 차이
- 부모 → 자식 데이터 전달 말고, 자식 → 부모로 전달하는 방법
- Key를 왜 사용하나요? Key가 없으면 어떤 문제가 생기나요?
Hooks
- useState 내부 동작 원리
- useEffect는 언제 실행되나요?
- 의존성 배열을 잘못 넣으면 어떤 문제가 생기나요?
- useEffect cleanup 함수는 언제 호출되나요?
- useMemo / useCallback 차이
- useRef의 역할 및 렌더링과의 관계
- 커스텀 훅을 왜 쓰나요?
컴포넌트 구조/패턴
- Presentational & Container 패턴
- 상태 끌어올리기(Lifting State Up)
- Controlled vs Uncontrolled Component
- Atomic Design 적용 경험
- Render Props 패턴 / HOC를 설명해주세요.
- React Router v6의 큰 변화
성능 최적화
- React 렌더링 최적화 방법
- memo
- useMemo, useCallback
- React.lazy + Suspense
- 컴포넌트 분리
- 불필요한 리렌더링이 무엇이며 어떻게 방지하나요?
- React에서 리스트 랜더링 성능 최적화 어떻게 하나요?
상태관리
- Context API 문제점(리렌더링)
- Redux vs Zustand vs Recoil 차이
- React Query를 왜 쓰나요? (서인은 이거 자주 물어볼 듯)
- 서버 상태 vs 클라이언트 상태 차이
- JWT 기반 인증 흐름
JavaScript 기본기
- var / let / const 차이
- 호이스팅(Hoisting)
- Closure(클로저)란 무엇인가
- Event Loop와 Call Stack 설명
- Promise / async-await 차이
- Debounce / Throttle
- 얕은 복사 vs 깊은 복사
TypeScript
- 타입 추론(Type inference)
- interface vs type 차이
- 유니온 타입 / 교차 타입
- 타입 좁히기(Narrowing)
- 제네릭(Generics) 왜 사용하나요?
- Partial, Pick, Omit 같은 유틸리티 타입 언제 쓰나요?
브라우저 동작 원리
- 브라우저 렌더링 과정(Critical Rendering Path)
- Reflow/Repaint 차이
- CSR vs SSR vs SSG
- 웹스토리지(LocalStorage/SessionStorage) 차이
네트워크(프론트엔드 필수)
- HTTP vs HTTPS
- 쿠키 / 세션 / JWT 차이
- CORS가 왜 발생하나요? 해결 방법은?
- HTTP status code 자주 쓰는 것들
프로젝트/경험 기반 질문
- 프로젝트에서 어떤 상태관리 도구를 썼고, 왜 선택했나요?
- API 요청 실패 시 어떻게 에러 핸들링했나요?
- React Query 사용 시 캐싱 전략은 어떻게 했나요?
- 컴포넌트 구조 설계 시 어떤 기준으로 나누나요?
- 렌더링 최적화 실제로 적용한 예시 설명해보세요.
'STUDY' 카테고리의 다른 글
| 오픈소스 (2) (0) | 2025.12.10 |
|---|---|
| 개발문화와 오픈소스 (1) | 2025.12.09 |
| generate snippets in VSCode (0) | 2025.12.03 |
| 개발자가 가져야 할 역량 (1) | 2025.11.26 |
| Google Antigravity 사용해보았다 (0) | 2025.11.26 |