> 프론트엔드 개발자 면접 질문

# 목차
## CS 질문
### 기초 운영체제
- 콘보이 현상(convoy effect)이란 무엇이고, 콘보이 현상이 발생될 수 있는 CPU 스케줄러 알고리즘은 무엇인지 설명해주세요.
- 선점형 스케줄링과 비선점형 스케줄링의 차이를 설명해주세요.
- 동기와 비동기의 차이에 대해 설명해주세요.
- Critical Section(임계영역)에 대해 설명해주세요.
- 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이에 대해 설명해주세요.
- 페이지 교체 알고리즘에 대해 설명해주세요.
- 컨텍스트 스위칭(Context Switching)이 무엇인지 설명해주세요.

### 네트워크
- HTTP 프로토콜에 대해 설명해주세요.
- HTTP와 HTTPS의 차이점은 무엇인가요?
- 쿠키(Cookie)와 세션(Session)의 차이점에 대해 말해주세요.
- www.naver.com에 접속할 때 생기는 과정에 대해 설명해주세요. (웹 동작 방식 이해)
- TCP와 UDP의 차이를 설명해주세요.
- 3 way-handshaking 얘기 해주셨는데, TCP 통신은 종료시에도 3 way-handshaking을 사용하나요?
- 3 way-handshake와 4 way-handshake를 설명해주세요.
- OSI 7 layer와 각 계층에 대해 아는대로 설명해주세요.
- HTTP Method와 각각이 사용되는 경우에 대해서 설명해주세요.
- GET과 POST의 차이에 대해 설명해주세요.
- 세션 기반 인증과 토큰 기반 인증의 차이에 대해 얘기해주세요.
- 그렇다면 Stateful한 세션 기반의 인증 방식을 사용하게 된다면 어떠한 단점이 있을까요?
- 그렇다면 세션 기반 인증과 토큰 기반 인증은 각각 어느 경우에 적합한가요?
- JWT 토큰에 대해 설명해주세요.
- Connection Timeout과 Read Timeout의 차이에 대해 설명해주세요.
- 공인(public) IP와 사설(private) IP의 차이에 대해 설명해주세요.
- CORS에 대해 설명해주세요.
- CORS를 방지할 수 있는 방법을 설명해주세요.
- CSRF에 대해 설명해주세요.
- XSS에 대해 설명해주세요.
- 캐시 서버 종류에 대해 설명해주세요.

## 언어 질문
### JavaScript
### TypeScript


## 라이브러리 질문
### React, Vue(대중적임)
### Svelte

## 프레임워크 질문
### Next.js
### Remix...?

## 프론트엔드 생태계 질문
### 트랜스파일러
### 번들러
### CI/CD
### 테스팅

## 코드 품질에 대한 질문
### 함수형 프로그래밍
### 객체 지향 프로그래밍
### 테스트 주도 개발
### 컴포넌트 주도 개발
### 행위 주도 개발
### 클린 코드
