메모장
프론트엔드 면접질문(기타)
KIMJAVAN
2025. 1. 11. 01:27
728x90
1. 데이터 구조
- 데이터 구조란 무엇인가요?
- 답: 데이터를 효율적으로 저장, 관리, 처리하기 위한 체계적인 방식입니다. 예: 배열, 리스트, 스택, 큐, 트리, 그래프.
- 스택과 큐의 차이점은?
- 답:
- 스택: LIFO(Last In, First Out) 방식. 마지막에 들어온 데이터가 먼저 나감.
예: 브라우저의 뒤로 가기 기능. - 큐: FIFO(First In, First Out) 방식. 먼저 들어온 데이터가 먼저 나감.
예: 프린터 작업 대기열.
- 스택: LIFO(Last In, First Out) 방식. 마지막에 들어온 데이터가 먼저 나감.
- 답:
- 해시맵(HashMap)이란 무엇인가요?
- 답: 키-값 쌍으로 데이터를 저장하는 데이터 구조로, 빠른 데이터 검색이 가능합니다.
시간 복잡도는 일반적으로 O(1). 예: 자바스크립트의 Map 객체.
- 답: 키-값 쌍으로 데이터를 저장하는 데이터 구조로, 빠른 데이터 검색이 가능합니다.
- 트리와 그래프의 차이점은?
- 답:
- 트리: 계층적 구조, 루트 노드에서 시작하며 사이클이 없음.
예: DOM(Document Object Model). - 그래프: 노드와 엣지로 구성되며 사이클이 있을 수 있음.
예: 소셜 네트워크.
- 트리: 계층적 구조, 루트 노드에서 시작하며 사이클이 없음.
- 답:
2. 알고리즘
- 시간 복잡도(Time Complexity)란 무엇인가요?
- 답: 알고리즘이 처리하는 데 걸리는 시간을 입력 크기에 따라 수학적으로 표현한 것입니다.
예: 배열 탐색은 O(n), 이진 탐색은 O(log n).
- 답: 알고리즘이 처리하는 데 걸리는 시간을 입력 크기에 따라 수학적으로 표현한 것입니다.
- 정렬 알고리즘의 종류와 차이점은?
- 답:
- 버블 정렬: O(n²). 인접 요소를 비교하며 정렬. 느림.
- 퀵 정렬: O(n log n). 피벗을 기준으로 분할. 빠름.
- 병합 정렬: O(n log n). 분할 정복 기법. 안정 정렬.
- 삽입 정렬: O(n²). 정렬된 부분에 데이터를 삽입. 간단한 데이터에 효율적.
- 답:
- 이진 탐색(Binary Search)이란?
- 답: 정렬된 배열에서 가운데 값을 기준으로 탐색 범위를 반씩 줄이는 알고리즘.
시간 복잡도는 O(log n).
- 답: 정렬된 배열에서 가운데 값을 기준으로 탐색 범위를 반씩 줄이는 알고리즘.
- DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)의 차이점은?
- 답:
- DFS: 한 경로를 끝까지 탐색 후 다음 경로를 탐색. 스택 기반.
- BFS: 동일 레벨의 노드를 먼저 탐색. 큐 기반.
- 답:
3. 네트워크
- HTTP와 HTTPS의 차이점은?
- 답:
- HTTP: 텍스트 기반 통신. 암호화되지 않음.
- HTTPS: SSL/TLS를 사용한 암호화된 통신. 보안성이 높음.
- 답:
- DNS(Domain Name System)는 무엇인가요?
- 답: 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
예: www.google.com → 142.250.74.142.
- 답: 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
- HTTP 요청의 주요 메서드는?
- 답:
- GET: 데이터 조회.
- POST: 데이터 생성.
- PUT: 데이터 수정.
- DELETE: 데이터 삭제.
- 답:
- TCP와 UDP의 차이점은?
- 답:
- TCP: 연결 지향 프로토콜. 신뢰성이 높고 데이터 손실이 적음. 예: HTTP, FTP.
- UDP: 비연결 지향 프로토콜. 속도가 빠르지만 신뢰성이 낮음. 예: 스트리밍, 게임.
- 답:
- REST API 설계 원칙은?
- 답:
- **자원(Resource)**는 URI로 식별.
- HTTP 메서드를 통해 작업 표현.
- 상태 비저장성(stateless).
- 캐싱 사용.
- 답:
4. 운영체제(OS)
- 프로세스와 스레드의 차이점은?
- 답:
- 프로세스: 실행 중인 프로그램. 독립적 메모리 공간 사용.
- 스레드: 프로세스 내 실행 단위. 메모리를 공유함.
- 답:
- 동기(Synchronous)와 비동기(Asynchronous)의 차이는?
- 답:
- 동기: 작업이 순차적으로 처리됨. 이전 작업이 끝나야 다음 작업 시작.
- 비동기: 작업이 동시에 실행. 결과는 나중에 처리.
- 답:
- Deadlock(교착 상태)이란?
- 답: 두 개 이상의 프로세스가 서로를 기다리며 무한 대기 상태에 빠지는 현상.
- 캐시(Cache)는 무엇이며, 왜 사용하나요?
- 답: 자주 사용하는 데이터를 임시로 저장해 성능을 높이는 메모리.
예: 브라우저 캐시로 정적 리소스 로드 속도 향상.
- 답: 자주 사용하는 데이터를 임시로 저장해 성능을 높이는 메모리.
5. 데이터베이스
- SQL과 NoSQL의 차이점은?
- 답:
- SQL: 관계형 데이터베이스. 고정된 스키마. 예: MySQL, PostgreSQL.
- NoSQL: 비관계형 데이터베이스. 유연한 스키마. 예: MongoDB.
- 답:
- 데이터베이스에서 인덱스(Index)는 무엇인가요?
- 답: 검색 속도를 높이기 위해 테이블의 특정 열을 기반으로 만든 데이터 구조.
단점: 인덱스를 많이 만들면 쓰기 속도가 느려짐.
- 답: 검색 속도를 높이기 위해 테이블의 특정 열을 기반으로 만든 데이터 구조.
- JOIN의 종류는?
- 답:
- INNER JOIN: 교집합 데이터 반환.
- LEFT JOIN: 왼쪽 테이블의 모든 데이터와 오른쪽의 매칭 데이터.
- RIGHT JOIN: 오른쪽 테이블의 모든 데이터와 왼쪽의 매칭 데이터.
- FULL JOIN: 두 테이블의 모든 데이터.
- 답: