Tech Interview List

그 동안 기술면접을 준비하며 정리했던 내용과 면접에서 나온 질문들을 정리해보았습니다.

Operating System

  • 운영체제 종류(Windows & Linux & Mac)

  • 32 Bit & 64 Bit 시스템의 특징과 차이점

  • Little-Endian과 Big-Endian 설명

  • 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…

  • 디자인 패턴이란?