Skip to content

Latest commit

 

History

History
173 lines (156 loc) · 8.53 KB

File metadata and controls

173 lines (156 loc) · 8.53 KB

📌 Opearing System

  • ✨프로세스와 스레드의 차이점에 대해 설명하시오.
  • ✨Race Condition에 대해 설명하시오.
  • ✨메모리가 부족하면 OS 가 어떤일을 할까?(iOS 측면도 )
  • ✨교착상태(데드락, Deadlock)이 발생하기위한 조건과 해결책
  • ✨CPU 스케쥴링의 종류
  • race condition(경쟁상태)를 방지하기 위한 조건
  • 프로세스에 할당되는 메모리의 각 영역에 대해서 설명해 주세요.
  • 메모리 구조의 순서가 어떻게 되는가? CPU에서 가까운 순으로 말해보시오.
  • Cache Memory의 역할은 무엇인가
  • Caching Locality와 Cache Hit Ratio에 대해 설명하시오
  • 운영체제란
  • 멀티 프로세스와 멀티 스레드의 차이점
  • First Fit, Best Fit, Worst Fit
  • 외부단편화, 내부단편화
  • 페이지와 세그멘테이션
  • 페이지 교체 알고리즘의 종류
  • 가상 메모리의 개념과 사용할시의 장단점
  • 시스템 콜
  • IPC
  • 인터럽트
  • 뮤텍스와 세마포어의 차이
  • Context Switching의 개념과 과정
  • 임계구역
  • 프로세스 혹은 스레드의 동기화란 무엇인가요?
  • 사용자 수준의 스레드와 커널 수준의 스레드의 차이는 무엇인가요?
  • fork()란 무엇인가요?
  • child process 와 zombie process
  • 동기와 비동기, 블로킹과 넌블로킹의 차이는 무엇인가요?
  • Swapping
  • 은행원 알고리즘
  • Bounded- Buffer Problem
  • Readers and Writers Problem
  • Dining Philosophers Problem

Advanced

  • Call Stack에 대해 설명하시오
  • Heap Corruption에 대해 설명하시오
  • Heap 메모리는 무엇이고 사용하는 이유는 무엇인가
  • Heap과 Stack의 장단점 비교 (속도, 크기 등)
  • 거짓 에 대해 설명하시오

📌 Network

📌 Algorithm

  • ✨LinkedList vs ArrayList의 차이점에 대해 설명하시오 (+Array는 추가적인 메모리 확보가 )
  • call by Value 와 call by Reference 의 차이점에 대해 설명하시오.
  • 빅오 표기법에 대해서 설명해주세요
  • DFS & BFS
  • 다익스트라 알고리즘에 대해서 설명해 주세요.
  • 프림 알고리즘에 대해서 설명해 주세요.
  • 크루스칼 알고리즘과 프림 알고리즘에 대해서 설명해 주세요.
  • 인접행렬과 인접리스트에 대해 설명하시오
  • HashTable vs HashMap의 차이점에 대해 설명하시오
  • 공간복잡도
  • 54321 배열이 있을 때, 어떤 정렬을 사용하면 좋을까요?
  • 랜덤으로 배치된 배열이 있을때, 어떤 정렬을 사용하면 좋을까요?
  • 자릿수가 모두 같은 수가 담긴 배열이 있을 때, 어떤 정렬을 사용하면 좋을까요?

정렬

  • ✨병합 정렬(Merge Sort)
  • 거품 정렬(Bubble Sort)
  • 선택 정렬(Selection Sort)
  • 삽입 정렬(Insertion Sort)
  • 퀵 정렬(Quick Sort)
  • 힙 정렬(Heap Sort)
  • 기수 정렬(Radix Sort)
  • 계수 정렬(Count Sort)
  • 이분 탐색(Binary Search)

📌 Data Structure

  • 스택과 큐에 대해서 설명해 주세요.
  • ✨해시테이블에 대해서 설명해 주세요.
  • 배열과 링크드 리스트의 차이점에 대해서 설명해 주세요.
  • 시간 복잡도란 무엇인가
  • 시간 복잡도는 실제 수행 시간과 어떤 관계가 있는가?
  • 시간복잡도가 작은 알고리즘은 무조건 빠른가?
  • 최악의 복잡도는 나쁘지만 실제로는 자주 사용되는 알고리즘을 나열하시오
  • 분할정복에 대해 설명하고 그 예시를 드시오
  • Dynamic Programming가 무엇이고 왜 어떻게 사용하는가?
  • Memoization 에 대해 설명하시오

Tree

  • 그래프와 트리의 차이점에 대해서 설명해 주세요.
  • 힙 자료구조에 대해 설명해 주세요.
  • 힙의 삽입과 삭제는 어떻게 이루어지나요?
  • 포화(Perfect) 이진트리, 완전(Complete) 이진트리, 정(Full) 이진트리의 차이점에 대해 각각 설명해주세요
  • Binary Search Tree
  • 레드 블랙 트리에 대해 설명해주세요.
  • 레드 블랙 트리의 삽입과 삭제 과정에 대해서 말해보세요.
  • B-Tree에 대해서 설명해 주세요.
  • 최소 신장 트리에 대해서 설명해 주세요.

📌 Datebase

  • ✨인덱스란 무엇인가요? 어떻게 동작 하나요?
  • ✨결합인덱스
  • NoSQL vs RDBMS
  • 트랜잭션이란 무엇인가요? 4가지 원칙을 포함해서 설명해 주세요.
  • 트랜잭션의 격리 수준과 각 수준에서 발생할 수 있는 문제들에 대해 말해보세요.
  • 인덱스의 알고리즘에는 어떤 것들이 있나요?
  • JOIN에 대해서 설명해 주세요.
  • 내부 조인과 외부 조인의 차이는 무엇인가요?
  • 정규화에 대해서 설명해 주세요.
  • 파티셔닝과 샤딩에 대해서 설명해 주세요.
  • 스키마란 무엇인가요?
  • ORM이란 무엇인가요?

📌 ETC

  • ✨함수형 프로그래밍에 대해서 설명해 주세요.
  • 오버로딩과 오버라이딩의 차이는 무엇인가요?
  • ✨reference와 value는 각각 어디에 메모리 할당되는가
  • ✨heap, stack에 메모리 할당하는 것 중 어떤 것이 더 빠른가? 그 이유는?
  • ✨TDD (도입한 이유, 느낀점, 테스트코드를 고쳐야할 때도 있을텐데?)
  • ✨CRUD 개념과 구현해본 경험
  • ✨싱글톤의 개념과 사용경험
  • ✨shared instance의 장단점
  • ✨Generic
  • ✨PKI
  • ✨공유자원을 동시에 접근하면 왜 안되는가?
  • ✨GC, ARC의 개념
  • ✨왜 GC를 런타임에 해야할까?
  • ✨Retain Cycle
  • ✨GC로 Retaind cycle을 피할 수 있을까?
  • ✨여러 언어에서 다중상속을 지원하지 않는이유
  • ✨현실세계에서는 다중상속이 가능한데 왜 프로그래밍 언어에서는 안될까?
  • ✨다중상속을 하면 어떤 문제가 발생하는가, 어떻게 해결할 수 있나?
  • ✨immutability의 개념과 필요성
  • ✨if를 지양하는 것이 좋은데 그 이유과 극복방법
  • 프레임워크와 라이브러리 차이는 무엇인가요?
  • 컴파일러와 인터프리터의 차이는 무엇인가요?
  • 1급 객체에 대해서 설명해 주세요.
  • 클래스, 객체, 인스턴스 차이에 대해서 설명해 주세요.
  • 순수 추상 클래스와 인터페이스의 차이는 무엇인가요?
  • 순수 추상 클래스와 인터페이스의 차이는 무엇인가요?
  • 디자인 패턴이란 무엇인가요?
  • 클린코드란?
  • 애자일 기법이란?
  • 객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠?
  • 객체지향 SOLID 원칙에 대해서 설명해 주세요.
  • 객체지향 4가지 특징에 대해서 설명해 주세요.
  • 데이터 타입과 변수의 차이는 무엇인가요?
  • AOP란 무엇인가요?