Tech Interview List
그 동안 기술면접을 준비하며 정리했던 내용과 면접에서 나온 질문들을 정리해보았습니다.
Operating System
-
운영체제 종류(Windows & Linux & Mac)
-
Process & Thread 특징 및 차이점
-
메모리 영역의 Stack과 Heap에서 새로 할당받을 때 빠른 것
-
(User-Level & Kernel-Level) Thread 의 정의와 차이점
-
Multi Programming & Multi Processing & Multi Thread
-
CPU 스케쥴링 알고리즘
-
I/O 종류
-
DISK 스케쥴링
-
RAID 설명
-
파일 시스템 구조 설명
-
Concurrency 병행성
-
Deadlock & Starvation 설명
-
Mutual Exclusion(Mutex) & Synchronization
-
메모리 Partitioning 종류 및 정의
-
페이징 & 세그먼테이션 정의와 차이점
-
가상메모리 정의와 설명
-
가상메모리 페이지 Replacement Algorithm
-
Thrashing 쓰레싱 정의와 설명
Network & Web
-
OSI 7 Layer 설명
-
HTTP 설명
-
웹 페이지 통신과정 설명
-
3-Way Handshake(Connection) & 4-Way Handshake(Close)
-
TCP & UDP 특징 및 차이점
-
라우팅 테이블
-
Session 과 Cookie의 특징과 차이점
-
Client & Server 통신 시 사용할 수 있는 Socket의 수는 Network BandWidth에 비례하는가 ?
-
HTTP 연결 keep-alive 사용하면 그 이후 모든 HTTP 연결 TCP, SYN, FIN 패킷이 발생하는가 ?
-
IPv4 & IPv6 특징 및 차이점
-
Apache & Nginx 특징
-
RESTful API (REpresentational State Transfer) 란
-
Jquery 란?
-
JSON & XML
-
Ajax 란?
-
JPA 란? (+ JPA 도입 시, 데이터베이스(MyBatis)등이 필요없는가? )
-
JSP & Servlet, Spring 특징 및 차이점?
-
스프링 IOC, OOP와 AOP에 대한 차이, POJO가 무엇인가요?
-
Java Web & Python Web
-
Django & Flask 특징 및 차이점
-
XSS(크로스 사이트 스크립팅, cross-site scripting)
-
MD5 해시 알고리즘 설명
Data Structure & Algorithm
-
기본 자료구조 특징 및 차이점
-
Trie 구조
-
해시 함수(해싱) 정의, 특징 및 유의점
-
해시 테이블과 이진검색트리를 비교하고 장단점. 메모리 한정기기 자료구조 설계 시 어떤 쪽?
-
탐색 알고리즘 특징 및 차이점
-
정렬 알고리즘 특징 및 차이점
Database & Distributed System
-
데이터베이스란?
-
RDBMS 와 NoSQL DBMS의 특징과 차이점
-
DDL / DML / DCL
-
Key 정의
-
데이터베이스 모델링
-
데이터베이스 스키마의 정의와 설명
-
데이터베이스 정규화 정의와 설명
-
반정규화란?
-
인덱스란?
-
Sorting 방법은?
-
트랜잭션 정의와 설명
-
데이터베이스 프로시저 & 트리거 정의
-
데이터 설계 변경 시 프로그램, 데이터 설계 어느 것을 우선할 것인가?
-
성능개선 옵티마이저의 개념설명
-
데이터베이스 커넥션 풀이 무엇인가?
-
빅데이터란?
-
분산시스템이란?
-
분산 시스템 아키텍처 모델
-
Middeware
-
RMI & RPC
-
Client-Server Architecture : Most common 2-3 Tier Architecture
-
Web Service Stack
-
확장 Scale-up & Scale-out 정의 및 차이점
-
MVC 패턴이란?
-
Flux 패턴이란?
-
하둡이란?
-
하둡 분산 파일 시스템(HDFS)
-
Map / Reduce란?
-
하둡 1.0 / 2.0 차이점은?
-
검색엔진이란?
-
각 검색엔진인 solr/lucene, elasticsearch 특징 및 차이점
-
Facebook 아키텍처
-
Twitter 아키텍처
-
카카오 아키텍처
-
Ebay 검색엔진
-
Hadoop, HBase, Yarn, Spark, Storm, Kafka 특징 및 차이점
Language
-
절차지향 VS 객체지향
-
C vs Java
-
상속이란?
-
Overriding 와 Overloading 특징 및 차이점
-
Java – 접근 제어 지시자
-
Java – 각 기본형(Primitive Type) 변수 크기
-
Java – Static & Final 키워드 특징 및 차이점
-
Java – String & StringBuilder & StringBuffer 특징 및 차이점
-
Java – 추상 클래스와 인터페이스 특징과 차이점
-
Java – Equals 특징 및 정의
-
Java – JVM 설명 및 동작과정
-
Java - Garbage Collection (GC) 설명
-
GC 튜닝 방법
- Java - 동적 메모리 할당 & 해제
- 최상위 Object 클래스의 메소드인 finalize 호출 (소멸자)
- Garbage Collection 실행 요청 메소드 System.gc()
- 동적 메모리 할당 해제를 원하는 객체에 null 할당
- java.lang.ref 패키지 를 통해 Garbage Collection과 깊은 연동(Root Set의 Reachability 판단)
- Soft Reference : GC를 실행했지만, 메모리가 충분하다면 계속 참조
- Weak Reference : GC 실행전까지 계속 참조
- Phantom Reference : finalize 메소드 호출 이후에도 참조
-
Java – Synchronous & Asynchronous 특징과 차이점
-
Java – Block & Non-Block 특징과 차이점
-
Java – Collection & Generic 이란?
-
Java – Collection 내 클래스 특징
- C++ - Virtual 키워드에 대한 설명
Etc…
- 디자인 패턴이란?