curriculum HAN-136 asurada draft 2026-05-21

CS 인터뷰 커리큘럼 + 문제 뱅크

TL;DR — 채널톡 1차 면접(2026-05-26) D-5. Java/Spring 7년 기반, CS 기초 복습. 단기 집중 도메인: 자료구조 → 알고리즘 → 네트워크 → OS → DB. 아는 것은 말로 설명할 수 있는 수준으로, 모르는 것은 개념만이라도 확보.

---

학습 일정 (D-5 플랜)

날짜주제우선도
5/21 (오늘)자료구조 전체 훑기★★★
5/22알고리즘 복잡도 + 정렬/탐색★★★
5/23네트워크 HTTP/TCP + OS 기초★★★
5/24DB 인덱스/트랜잭션/격리수준★★★
5/25전체 복습 + 예상 질문 소리 내어 답변★★★
5/26면접 당일 — 가볍게 훑기만

---

1. 자료구조

1.1 내 베이스라인 (7년 Spring 기준)

개념수준비고
Array / ArrayListJava 일상
LinkedList개념, 구현 다소 rusty
Stack / QueueDeque 사용 경험
HashMap / HashSet일상 사용, 해시 충돌 설명 가능해야
Tree (BST, Heap)🔄개념 OK, 직접 구현 rusty
Graph (DFS/BFS)🔲이론 알지만 코딩 rusty
Trie🔲개념만

1.2 핵심 개념 정리

Array vs LinkedList

Stack / Queue

HashMap 내부 동작

Tree

1.3 예상 질문

Q1. HashMap과 HashTable의 차이는?
Q2. ArrayList와 LinkedList 언제 각각 쓰나?
Q3. Stack을 구현해보세요.

```java

class Stack {

private final Deque deque = new ArrayDeque<>();

public void push(T val) { deque.push(val); }

public T pop() { return deque.pop(); }

public T peek() { return deque.peek(); }

public boolean isEmpty() { return deque.isEmpty(); }

}

```

---

2. 알고리즘 복잡도

2.1 내 베이스라인

개념수준
Big O 표기법
시간 복잡도 분석🔄
공간 복잡도🔄
정렬 알고리즘 (이름)
정렬 알고리즘 (구현)🔲
이진 탐색
DFS / BFS🔲
DP 기초🔲

2.2 핵심 개념

Big O 요약

표기예시
O(1)HashMap 조회
O(log n)이진 탐색, BST
O(n)배열 순회
O(n log n)Merge Sort, Quick Sort 평균
O(n²)Bubble Sort, 중첩 반복문

정렬 알고리즘 요약

알고리즘평균최악특징
Bubble SortO(n²)O(n²)인접 교환
Selection SortO(n²)O(n²)최솟값 선택
Insertion SortO(n²)O(n²)거의 정렬된 데이터에 강
Merge SortO(n log n)O(n log n)Stable, 분할정복
Quick SortO(n log n)O(n²)평균 빠름, Unstable
Heap SortO(n log n)O(n log n)In-place, Unstable
Java Arrays.sortO(n log n)O(n log n)Dual-pivot Quick + Merge

이진 탐색

DFS / BFS

2.3 예상 질문

Q1. Quick Sort의 최악 케이스는 언제?

피벗이 항상 최솟값 또는 최댓값일 때 (이미 정렬된 배열에서 첫 번째 요소를 피벗으로 선택). O(n²). 랜덤 피벗으로 방지.

Q2. Merge Sort와 Quick Sort 비교
Q3. BFS로 최단 경로 찾는 이유

BFS는 레벨 단위로 탐색 → 처음 도달한 경로가 최단. DFS는 최단 보장 X.

---

3. 네트워크

3.1 내 베이스라인

개념수준
HTTP 메서드 / 상태코드
REST 원칙
HTTPS / TLS🔄
TCP 3-way handshake🔄
TCP vs UDP🔄
DNS🔄
쿠키 / 세션 / JWT
WebSocket🔄

3.2 핵심 개념

HTTP/1.1 vs HTTP/2 vs HTTP/3

TCP 3-way handshake

1. SYN (클라 → 서버)

2. SYN-ACK (서버 → 클라)

3. ACK (클라 → 서버)

TCP vs UDP

TCPUDP
연결연결 지향비연결
신뢰성보장 (재전송)미보장
순서보장미보장
속도느림빠름
용도HTTP, 파일전송DNS, 스트리밍, 게임

HTTPS / TLS

1. TCP 연결

2. TLS Handshake: 서버 인증서 검증 + 대칭키 교환 (비대칭키로 암호화)

3. 대칭키로 실제 데이터 암호화

HTTP 상태 코드 핵심

3.3 예상 질문

Q1. GET과 POST의 차이
Q2. 브라우저에 URL 입력하면 무슨 일이?

1. URL 파싱 → 프로토콜/호스트/경로

2. DNS 조회 → IP 주소

3. TCP 연결 (+ TLS handshake if HTTPS)

4. HTTP 요청 전송

5. 서버 처리 → HTTP 응답

6. 브라우저 렌더링 (HTML 파싱, CSS, JS 로딩)

Q3. REST API 설계 원칙

1. Stateless: 서버가 클라 상태 저장 X

2. Client-Server 분리

3. Uniform Interface: 일관된 URI + HTTP 메서드

4. Cacheable

5. Layered System

6. (선택) Code on Demand

실무 주의: 동사 URI 금지 (/getUser X, /users/{id} O)

---

4. OS

4.1 내 베이스라인

개념수준
프로세스 vs 스레드🔄
Context Switching🔲
메모리 (Stack vs Heap)✅ (JVM 기준)
가상 메모리🔲
데드락🔄
뮤텍스 / 세마포어🔲
스케줄링 알고리즘🔲

4.2 핵심 개념

프로세스 vs 스레드

프로세스스레드
정의실행 중인 프로그램프로세스 내 실행 단위
메모리독립 주소 공간코드/힙/데이터 공유
통신IPC (파이프, 소켓)공유 메모리 직접
생성 비용높음낮음
장애 격리강함약함 (한 스레드 크래시 → 프로세스 종료)

Context Switching

데드락 4가지 조건

1. 상호 배제 (Mutual Exclusion)

2. 점유 대기 (Hold and Wait)

3. 비선점 (No Preemption)

4. 순환 대기 (Circular Wait)

뮤텍스 vs 세마포어

JVM 메모리 (Java 개발자로서 강점)

4.3 예상 질문

Q1. 프로세스와 스레드 차이, 언제 멀티프로세스 vs 멀티스레드?
Q2. 데드락 해결 방법

예방: 자원 할당 순서 고정 (Lock Ordering)

탐지 후 복구: 데드락 감지 알고리즘 + 프로세스 kill

회피: Banker's Algorithm (이론적)

실무: tryLock(timeout) 사용, 락 순서 문서화

---

5. DB

5.1 내 베이스라인 (Spring JPA 경험 강함)

개념수준
인덱스 (B-Tree 구조)
복합 인덱스 / 커버링 인덱스🔄
트랜잭션 ACID
격리 수준 4가지🔄
N+1 문제
정규화 (1NF~3NF)🔄
샤딩 / 파티셔닝🔲
MVCC🔲

5.2 핵심 개념

인덱스

ACID

격리 수준

수준Dirty ReadNon-Repeatable ReadPhantom Read
READ UNCOMMITTEDOOO
READ COMMITTEDXOO
REPEATABLE READXXO
SERIALIZABLEXXX

MVCC (Multi-Version Concurrency Control)

N+1 문제

5.3 예상 질문

Q1. 인덱스를 사용하면 무조건 빠른가?

아니다. 인덱스는 읽기 최적화, 쓰기 비용 증가. 카디널리티 낮은 컬럼에 인덱스 → 풀스캔보다 느릴 수 있음. 소량 데이터 테이블도 풀스캔이 빠를 수 있음. EXPLAIN으로 실행 계획 확인 필요.

Q2. REPEATABLE READ와 READ COMMITTED 차이를 실무 예로
Q3. N+1을 어떻게 해결했나?

1. JPQL Fetch Join: SELECT o FROM Order o JOIN FETCH o.items

2. @EntityGraph: 메서드 위에 선언

3. Batch Size: @BatchSize(size=100) — IN 쿼리로 묶어서 조회

4. QueryDSL fetchJoin()

상황에 따라 다름: 단순 조회면 Fetch Join, 페이징 + 컬렉션이면 Batch Size 추천.

---

6. 시스템 설계 (장기 유지 / 면접 준비 보조)

면접 질문이 나올 경우 기본 틀:

1. 요구사항 명확화 (기능 / 비기능)

2. 규모 추정 (DAU, QPS, 저장 용량)

3. 고수준 설계 (컴포넌트 다이어그램)

4. 핵심 컴포넌트 상세 설계

5. 병목 해결 (캐싱, 샤딩, CDN, 로드 밸런싱)

---

학습 상태 추적

도메인개념 읽기질문 소리 내어 답변완료
자료구조
알고리즘
네트워크
OS
DB

---

참고